Silhouette (실루엣)
군집을 만든 결과가 얼마나 유용한지 따지는 군집타당성지표(Clustering Validity Index) 중 하나.
한 군집 내의 데이터들이 다른 군집과 비교해 얼마나 비슷한지를 나타내는 값
수식

a(i) : i번째 개체와 같은 군집에 속한 요소들 간 거리들의 평균
b(i) : i번째 개체와 다른 군집에 속한 요소들 간 거리들의 평균을 군집마다 각각 구한 뒤,
이 가운데 가장 작은 값
즉, i번째 개체가 속한 군집과 가장 근접한 군집간, 거리의 평균 값

a(i)는 검정 사각형 표시된 데이터와 파란색 군집 내 포인트들 사이의 평균 거리
b(i)는 검정 사각형 표시된 데이터와 오렌지색 군집 내 포인트들 사이의 평균 거리

다시 한번 수식을 보면
가장 이상적인 것은 한 군집의 객체들이 정말 오밀조밀하게 다 붙어있어 a(i)가 0값을 가지는 경우.
이 경우엔 분모, 분자에 b(i)만 남기 때문에 실루엣 값은 1이 나오게 된다.
반대로 최악의 경우엔 군집간의 거리가 0으로 수렴해 (군집간의 구분이 모호해) b(i)가 0값을 가지는 경우.
이 때는 분모엔 a(i)가 남고 분자엔 -a(i)가 남기 때문에 실루엣 값은 -1이 나오게 된다.
결론적으로 실루엣 값이
1에 가까울 수록 군집화가 적절히 되었다.
-1에 가까울 수록 군집 결과가 타당하지 못하다.
라고 해석할 수 있다.
일반적으로 실루엣 지표가 0.5보다 크다면 데이터의 클러스터링이 잘 되었다고 판단한다.
실전 적용
https://steadiness-193.tistory.com/278
Clustering - K-means
Cluster (클러스터) 비슷한 특성을 가진 데이터들끼리의 묶음 Clustering (클러스터링) 데이터들을 군집(클러스터, 무리)으로 묶어주는 작업 라벨링된 데이터를 묶는 작업으로, 비지도 학습으로 분류�
steadiness-193.tistory.com
위 포스팅에서 전처리 완료한 wine 데이터셋을 이용한다.
1) K-means

군집의 개수를 3개로 설정한 뒤 측정한 실루엣 값이다.
0.56으로 어느정도 적절히 클러스터링 되었다고 볼 수 있다.
시각화

2) Hierarchical Clustering, 군집 수는 3개로 고정
2-1) AgglomerativeClustering, single linkage

Single Linkage는 실루엣 값이 0에 가까워 군집이 거의 안된 것으로 보인다.
시각화

2-2) AgglomerativeClustering, average linkage

average linkage는 실루엣 값이 0.5를 넘었다.
시각화

2-3) AgglomerativeClustering, complete linkage

complete linkage는 0.5를 넘었으나 average linkage보다는 값이 낮다.
시각화

이처럼 실루엣 지표를 이용해 최적의 클러스터 개수를 검증해볼 수 있다.
다음 포스팅에선 실루엣 값을 포함해 총 3가지 방법으로 적절한 군집의 개수를 찾는 방법을 알아본다.
참고
ratsgo.github.io/machine%20learning/2017/04/16/clustering/
'Machine Learning > 군집(Clustering)' 카테고리의 다른 글
Clustering - 최적의 군집 수 구하기 : Elbow Method, silhouette, 손실함수 (0) | 2020.09.17 |
---|---|
Clustering - DBSCAN (0) | 2020.09.16 |
Clustering - Hierarchical Clustering (0) | 2020.09.15 |
Clustering - K-means (0) | 2020.09.15 |