Artificial.Intelligence

[AI-13] 단순하지만 강력하게 평균으로 모으기 : K-means Clustering

De-v-signer 2024. 11. 22. 09:04

통계에서 means는 의미가 아닌 '평균'을 의미하는 말로, K-means의 means 역시 이름을 보면 평균을 활용하는 군집분석(Clustering)일 것임을 알 수 있다. 그렇다면 K-는 무엇일까? 일반적으로 K-라는 말이 상징하는 수많은 단어들이 떠오르지만, 사실 여기에서 K는 큰 의미가 없이 단지 미지수 x나 정해지지 않은 숫자를 표현할 때 주로 사용되는 n과 같은 의미이다, 일상에서는 이러한 경우에 n이 더 많이 사용되지만, 수학이나 알고리즘에서는 k가 많이 사용되는 것이 그 이유라고 할 수 있다.

즉 이 방법의 이름을 정리하면 K개의 평균으로 군집화하는 분석이라고 설명할 수 있다.

그래서 K-means Clustering의 가장 첫 번째 절차는 몇 개(k)의 군집을 만들 것인지를 정하는 것이다. 예를 들어 k=4인 분석을 실시한다면 총 4개의 군집을 만드는 분석이 실행된다. 그리고 각 k개의 그룹의 대표성을 가질 만한 점을 선택하는 것으로 K-means Clustering이 시작된다.

K-means Clustering는 EM 알고리즘을 따른다고 하는데, Expectation-Maximization이 그것이다. 먼저 Expectation으로, 각각의 점으로부터 데이터까지의 거리를 측정하고 이들을 군집화하여 1차로 군집을 형성한다. 즉 각각의 데이터가 k개의 점들 중 가장 가까운 점으로 소속되는 단계이다.

그 다음 Maximazation인데, 이번에는 완성된 군집에서 다시 각 데이터 간의 거리가 최소가 되는 새로운 평균점을 찾는다. 처음에 입력된 점으로 데이터가 모였지만, 그 최초의 점은 데이터를 반영하고 있지는 않기 때문에 다시 데이터를 최대한 반영하는 점을 찾아 업데이트하는 것이다.

그 다음은 다시 새로운 군집점으로 Expectaion 단계를 반복한다. 즉, 다시 모든 데이터와 군집점들 간의 거리 계산을 통해 새로운 군집으로 분류해보는 것이다. 그리고는 Maximization 단계로 넘어가 또 다시 평균을 통해 가운데 점을 찾는다.

위의 단계가 반복되다 보면 처음 정했던 k개의 군집점들의 정합성이나 군집의 복잡한 분포들을 어느 정도 보정하면서 전체 데이터 분포를 반영하는 상당히 신뢰도 높은 군집들을 얻을 수 있는데, 이 때문에 다수의 경우에서 K-means Clustering이 사용된다. 분포의 목표 갯수를 정하는 것 외에는 데이터에서 답을 찾아내는 방식이기 때문에 운영자의 지도가 없이 데이터 자체에서 답을 찾아낸다는 점에서  비지도(unsupervised) 학습에 속한다.

 

반응형