더북(TheBook)

k-means는 어떻게 작동하는가?

k-means 알고리즘의 개념은 개체 그룹을 클러스터 몇 개로 나누는 것이다. 얼마나 많은 클러스터를 정의하느냐는 여러분에게 달려 있다. 예를 들어 나는 개체 1,000개를 모아 놓고 클러스터 4개를 찾고자 한다.

n (개체) = 1000

k (클러스터) = 4

클러스터 각각은 센트로이드(centroid, 평균이라고도 부르므로 ‘k-means’라는 이름이 붙었다), 즉 개체 간 거리를 측정했을 때 그 중심 지점이 있다. 클러스터는 센트로이드에서 가장 가까운 개체와의 거리를 반복 계산하며 정해진다. 이것이 비지도 학습이다. 알고리즘이 알아서 처리하고 결과를 조사하게 두면 된다. 개체가 더 이상 다른 센트로이드로 이동하지 않는 지점까지 반복하여 계산한다. 더 이상 반복이 없으면 k-means 클러스터링은 끝난 것이다.

다음 의사코드에서 무슨 일이 일어나는지 알 수 있다.


최초값을 계산하여 m[1],m[2],m[3],m[4]의 평균을 구한다
 
개체를 가장 가까운 중심에 할당한다
 
while(평균 위치에 변화가 있는 동안){
    클러스터로 분류할 평균을 추정한다
    for(i in to k)
        m[i]=클러스터 i에 대한 샘플의 평균
    }
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.