군집화는 분류(Clasification)와 비슷해 보일 수 있으나 성격이 많이 다르다. 데이터 내에 숨어 있는 별도의 그룹을 찾아서 의미를 부여하거나 동일한 분류 값에 속하더라도 그 안에서 더 세분화된 군집화를 추구하거나 서로 다른 분류 값의 데이터도 더 넓은 군집화 레벨화 등의 영역을 가지고 있다.
비지도학습의 특성상 어떠한 지표라도 정확하게 성능을 평가하긴 어렵다 그럼에도 군집화의 성능을 평가하는 대표적인 방법으로 실루엣 분석을 이용한다.
실루엣 분석(silhouette analysis)
각 군집 간의 거리가 얼마나 효율적으로 분리돼 있는지를 나타낸다.
효율적으로 잘 분리됐다는 것은 다른 군집과의 거리는 떨어져 있고 동일 군집끼리의 데이터는 서로 가깝게 잘 뭉쳐 있다는 의미이다.
실루엣 분석은 실루엣 계수(silhouette coefficient)를 기반으로 한다. 실루엣 계수는 개별 데이터가 가지는 군집화 지표이다. 즉, 개별 데이터가 가지는 실루엣 계수는 해당 데이터가 같은 군집 내의 데이터와 얼마나 가깝게 군집화 돼 있고, 다른 군집에 있는 데이터와는 얼마나 멀리 분리돼 있는지를 나타내는 지표이다.
a(i) : 해당 데이터 포인트와 같은 군집 내에 있는 다른 데이터 포인트와의 거리를 평균한 값
b(i) : 해당 데이터 포인트가 속하지 않은 군집 중 가장 가까운 군집과의 평균 거리
두 군집 간의 거리가 얼마나 떨어져 있는가 b(i) - a(i), 정규화 -> MAX( a(i), b(i) )
i번째 데이터 포인트의 실루엣 계수 s(i) = (b(i) - a(i)) / MAX( a(i), b(i) )
이는 -1 ~ 1 값을 가지며 1에 가까울 수록 근처의 군집과 멀리 떠떨어져 있고, 0에 가까울 수록 근처의 군집과 가깝다는 말이다. - 값은 아예 다른 군집 데이이터 포인트가 할당 됐음을 의미
좋은 군집화의 기준
1. 전체 실루엣 계수의 평균값이 0 ~ 1사이, 1에 가까울수록 좋다.
2. 개별 군집의 평균 값의 편차가 크지 않아야 한다. -> 개별 군집의 실루엣 계수가 전체 실루엣 계수의 평균값에서 크게 벗어나지 않아야 한다.
'AI > ML(비지도학습)' 카테고리의 다른 글
[군집화(Clustering)] DBSCAN(Density based Spatial Clustering of Applications with Noise) (0) | 2021.07.21 |
---|---|
[파이썬 머신러닝 완벽가이드 - 군집화(Clustering)] GMM(Gaussian Mixture Model) (0) | 2021.07.21 |
[파이썬 머신러닝 완벽가이드 - 군집화(Clustering)] 평균 이동(Mean Shift) (0) | 2021.07.21 |
[파이썬 머신러닝 완벽가이드 - 군집화(Clustering)] K-means Clustering (0) | 2021.07.21 |