K-means Clustering Algorithm

 

K-means (MacQueen, 1967) 은 유명한 군집화 (Clustering) 문제를 해결하는 가장 간단한 자율학습 (Unsupervised Learning) 알고리즘중 하나이다. 사전에 정해진 어떤수의 클러스터를 통해서 주어진 데이터 집합을 분류하는 간단하고 쉬운 방법이다. k-means 는 partitional clustering 에 속한다.

data 이외에 cluster 의 수 를 input 으로 하며 이때 를 seed point 라고 한다. seed point 는 임의로 선택되며 바람직한 cluster 구조에 관한 어떤 지식들이 seed point를 선택하는데에 사용될 수 있다. Forgy' algorithm 과 다른점은 하나의 sample 이 하나의 cluster 에 합류하자마자 곧 cluster 의 centroid 가 다시 계산된다는 것이다. 또한 Forgy' algorithm 이 반복적(iterative) 한 반면에 -means algorithm 은 data set에서 단지 두 번만의 pass 가 이루어진다. 그 과정은 다음과 같다.

1. 처음에 cluster 로서 시작한다. 남아있는  sample들에 대해서는 가장 가까이 있는 centroid를 찾는다. 이것에 가장 가까이 있는 centroid를 가지는 것이 확인된 cluster 에 sample을 포함시킨다. 각각의 sample 들이 할당된 후에 할당된 cluster 의 centroid 가 다시 계산된다.

2. 그 data를 두 번 처리한다. 각 sample에 대하여 가장 가까이 있는 centroid를 찾는다. 가장 가까이 있는 centroid를 가진 것으로 확인된 cluster 에 sample을 위치시킨다. (이 step 에서는 어떤 centroid 도 다시 계산하지 않는다.)

site :

A Tutorial on Clustering Algorithms : K-means : Applet

paper :

The k-means Algorithm : Earl Gose 외

K-평균군집화(K-Means Clustering) : 장남식

K-평균 군집 방법을 이용한 가중 커널분류기 (Kernel Pattern Recognition using K-means Clustering Method) : 심정욱, 백장선, 한국통계학회 응용통계연구 13권 2호, 2000

K-평균 군집화의 재현성 평가 및 응용 (Reproducibility Assessment of K-Means Clustering and Applications) : 허명희, 이용구, 한국통계학회 응용통계연구 17권 1호, 2004