
영문으로는 K-means clustering algorithm이고 k-평균 군집화 또는 k-평균 알고리즘이라는 용어로 보통 소개됩니다.
주어진 데이터를 k개의 군집으로 묶는 과정인데, 각 클러스터의 분산을 최소화하는 방향으로 반복 수행하게 됩니다.
이러한 알고리즘을 사용하는 이유는 두서없이 주어진 데이터들을 라벨링 하기 위해서입니다.
즉 공통점과 차이점을 인식하여 분류한다는 의미입니다.
다음은 k-평균 군집화의 개념에 대한 간략한 설명입니다.
k-평균 군집화는 입력된 데이터를 그룹으로 묶는 알고리즘의 하나이다.
쉽게 말해서 모아진 데이터에 라벨을 붙여 특정 그룹으로 분류하는 작업이라고 할 수 있다.
k-평균 군집화는 벡터의 형태로 표현된 n개의 데이터에 대해 데이터가 위치한 군집의 중심과 데이터 사이의 거리가 최소가 되도록 k개의 군집 s에 할당하는 것이다.
여기서 몇 개의 군집을 설정할 것인지에 대한 문제는 연구자가 직접 설정할 필요가 있다.
각 군집은 군집 안에 하나의 중심점을 갖게 되며 각각의 군집의 중심과 거리가 가까운 데이터들이 해당 군집으로 분류될 것이다.
이때 분류의 기준이 될 평균 벡터는 추정을 통해 초기값을 입력하고 여러 차례의 반복 수행을 통해 군집 내의 평균을 산출해 평균 벡터를 수정하여 군집화를 보정해 나가게 된다.
이러한 반복 과정은 정해진 횟수만큼 반복하거나, 군집화의 목적 함수가 일정 수치 이하가 되거나 혹은 더 이상 군집의 중심이 변화하지 않을 때까지 반복하게 된다면 비교적 적절하게 군집화가 이루어졌다고 판단할 수 있다.
몇 개의 그룹으로 군집화를 할 것인지에 대한 결정은 해당 작업, 분석 혹은 연구의 목적에 맞게 고려되어야 할 것이다.
그룹 내의 데이터 분포가 어떠한 방향으로 이루어지는 것이 적절한지에 대한 기준이 먼저 설정되어야 할 것이며 2차원 좌표상을 예로 들면 y축 방향으로의 분포를 억제할 것인지 x축 방향으로의 분포를 억제할 것인지 등과 같은 기준을 통해 클러스터의 중심을 수정해 나가는 방법과 전략도 달라지게 될 것이다.
결과적으로 그룹 내에 클러스터의 중심과 각 데이터들 사이의 거리가 작으면 작을수록 좋은 군집화가 된다고 할 수 있다.
일반적으로 군집의 수 즉 k의 수가 클수록 각 데이터들 간의 분산도가 작을 것이며 좋은 군집화가 이루어질 가능성이 크지만 너무 세세하게 작은 크기로 군집화를 한다면 군집화하여 데이터를 분석하는 의미가 퇴색되어 버린다.
따라서 데이터들 간의 분산도가 작으면서도 적은 수의 군집을 설정하는 것이 k-평균 군집화의 목적에 가장 부합하는 방법이라 할 수 있다. k-평균 군집화가 갖는 의미는 특히 기계학습과 같은 분야에서 무작위 혹은 의미가 부여되지 않고 들어오는 다양한 입력과 데이터 들을 자체적으로 분류하여 의미를 부여하여 활용할 수 있다는 점이다.