본문 바로가기

Machine Learning/군집(Clustering)

Clustering - 모델 평가 : Silhouette

반응형
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으로 어느정도 적절히 클러스터링 되었다고 볼 수 있다.

 

 

시각화

K-means, 군집 수 : 3

 

 

 

2) Hierarchical Clustering, 군집 수는 3개로 고정

 

 

2-1) AgglomerativeClustering, single linkage

 

 

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

 

 

시각화

single linkage

 

 

 

2-2) AgglomerativeClustering, average linkage

 

 

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

 

 

시각화

average linkage

 

 

 

 

 

2-3) AgglomerativeClustering, complete linkage

 

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

 

 

시각화

complete linkage

 

 

 

이처럼 실루엣 지표를 이용해 최적의 클러스터 개수를 검증해볼 수 있다.

 

 

 

다음 포스팅에선 실루엣 값을 포함해 총 3가지 방법으로 적절한 군집의 개수를 찾는 방법을 알아본다.

 

 

참고

ratsgo.github.io/machine%20learning/2017/04/16/clustering/

반응형