9-2. 군집(Clustering) - K평균 클러스터링(2)

2021. 5. 20. 21:04Machine Learning

K-mean 클러스터링 과정


K-mean 클러스터 알고리즘은 다음과 같다. 

1. 센트로이드를 랜덤하게 초기화한다. 

2. 센트로이드를 중심으로 샘플에 레이블을 할당한다. 

3. 센트로이드를 업데이트한다. 

4. 샘플에 레이블을 할당한다. 

위 과정을 반복하여 가장 최적의 센트로이드를 추출한다. 

 

 

이너셔(Inertia), 엘보우(Elbow)


이너셔(Inertia)

출처 : https://www.kdnuggets.com/2019/08/introduction-image-segmentation-k-means-clustering.html

 

K-mean 클러스터링의 성능 지표를 이너셔(Inertia)라고 한다. 

 

이너셔는 각 샘플과 가장 가까운 센트로이드 사이의 평균 제곱 거리를 측정한 수치이다. 

 

이전 장에서는 클러스터 수를 5개로 지정해줬는데, 그렇지 않은 모델에서는 어떻게 적정 파라미터를 지정할까?

 

클러스터 수에 따른 이너셔

출처 : https://www.analyticsvidhya.com/blog/2019/08/comprehensive-guide-k-means-clustering/

위 그래프에서 확인할 수 있다시피, 클러스터 수와 이너셔는 반비례 관계에 있는데

 

좋은 모델을 만들기 위해서 이너셔를 성능 지표로 선택하는 것은 좋은 생각이 아니다. 

 

이너셔를 줄이기 위해서 클러스터의 수를 실제 훈련 세트에 있는 클러스터 수보다 많이 생성할 것이기 때문이다. 

 

따라서 클러스터 수가 늘어감에 따라 이너셔가 급격하게 감소하고 어느 지점에서는 완만하게 감소하는데

 

이 지점을 엘보우(Elbow)라고 하는데, 이를 모델의 적정 클러스터 수로 지정할 수 있다. 

 

 

 

실루엣 점수(Silhouette score)


최적 클러스터 수를 선정하는 방법은 실루엣 점수(Silhouette score)를 측정하는 것이다. 

 

실루엣 점수는 모든 샘플의 실루엣 계수의 평균인데, 샘플의 실루엣 계수 공식은 다음과 같다. 

출처 : https://blog-dot-platform-ai-prod.appspot.com/blog/page/11/the-silhouette-loss-function-metric-learning-with-a-cluster-validity-index/

 

a는 샘플(i)과 동일 클러스터의 샘플들과의 거리이고

 

b는 (자신이 속한 클러스터 외에) 가장 가까운 클러스터까지의 거리이다.

 

위 실루엣 점수를 통해 적정 클러스터 수를 결정할 수 있다.

 

출처 : https://www.datanovia.com/en/lessons/determining-the-optimal-number-of-clusters-3-must-know-methods/

출처 : https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html

또한 실루엣 다이어그램을 통해 더 많은 정보를 확인할 수 있다. 

 

위 그래프의 높이클러스터가 포함하는 샘플의 개수를 의미하고, 

 

너비이 클러스터에 포함된 샘플의 정렬된 실루엣 계수를 의미한다. 

 

수직 파선클러스터 개수에 해당하는 실루엣 점수를 나타낸다. 

 

위의 예시에서는 k=4 일 때 각 클러스터가 수직 파선을 넘고 있지만, k=6일 때는 그렇지 못한 모습을 보인다. 

 

실루엣 다이어그램에서는 각 클러스터의 실루엣 점수가 수직 파선을 넘고 클러스터별 높이가 균등한 경우가

 

좋은 클러스터 개수를 선정한 케이스라고 할 수 있다.