본문 바로가기
Archive/데이터 분석 관련

[Data] 군집화 결과 평가

by 다람이도토리 2022. 7. 15.

들어가기

군집화를 실시했을 때, 군집이 잘 나누어졌는지 어떻게 평가할 수 있을까? 
다른 분류나 회귀 문제 같은 경우는 어느정도의 정답이 있기에 f1-score나, R^2같은 명백한 지표가 존재한 반면, 군집화의 경우는 어떻게 평가해야 할지에 대해 고민해야 할 것이다. 이 방법을 알아보자.

어떤 것이 좋은 분류일까?

군집이 잘 분류가 되었다는 것의 의미닌, "군집 내 분산"은 최소로, "군집 간 분산"은 최대로 만드는 것이다.
즉, 집단이 차이가 있다면 최대한 이질성을 부여하고, 집단이 같다면 동질성을 최대한 높여주는 것이다.

큰 분류

군집화의 평가 방법은 크게, 내부 평가와 외부 평가로 나뉠 수 있다.

내부평가 : 스스로 클러스터링된 데이터를 바탕으로 평가. (밀도, 유사도 등을 판정!)
외부평가 : 이미 정해진 정답을 바탕으로, 얼마나 클러스터링 알고리즘의 정확도가 높은지 판별
                 사전에 만들어진 dataset(benchmark 분류들)과 유사한지를 확인.

 

실루엣 분석

군집화의 평가 방법 중 하나인 Silhoutte Analysis에 대해 알아보자.
실루엣 분석은, 각 군집 간의 거리가 얼마나 효율적으로 분리되어 있는지를 나타낸다.

즉, 같은 군집에서는 다른 데이터와 얼마나 가까이 위치해있는지, 다른 군집과는 얼마나 멀리 분포되어있는지를 나타내준다.

실루엣 분석의 계산법

하나의 데이터 포인트에서의 실루엣 계수를 계산하는 방법은 다음과 같다.

- a(i) : i가 속한 클러스터 내에서 다른 점들과의 거리의 평균
- b(i) : i가 속하지 않은 클러스터들과의 거리 평균 중, 가장 가까운 것. 
* cf. 분모를 거리로 나누어 주면서, 군집간의 거리가 scaling 되는 효과를 가지고 있다.

실루엣 계수의 해석

- s(i)가 0에 가깝다는 것의 의미는 b(i)와 a(i)가 비슷하다는 것이므로, 두 군집이 잘 구분되지 않았다는 의미이다.
- s(i)가 1에 가깝다는 것의 의미는 b(i)와 a(i)의 차이가 크다는 것이므로, 군집이 잘 구분되었다는 의미이다.
- 그러나, s(i)가 -1에 가까워진다면, 반대로 i는 상대 클러스터에 더 가깝다는 의미로, 군집이 잘못 분류되었다는 의미이다.

실루엣 계수의 경우는, 모든 데이터 포인트의 평균을 두고 고려하며, 각 군집별로도 비교할 수 있을 것이다.

Davis-Bouldin Index

다른 지표로, Davis-bouldin Index를 활용할 수 있다.

Davis-Bouldin Index의 경우는 특정 군집과 가장 유사한 다른 군집과의 평균 거리를 고려한다.
여기서, 평균 거리는 군집의 중심점을 활용한다. 중심점을 활용하기에, 계산량이 Silhouette score보다는 적게 된다.

d(c_i, c_j) : 두 군집의 중심간의 거리
σ_i :  군집 내에 속한 데이터와 해당 군집의 중심과의 평균 거리.
n : cluster 개수

DB 지표의 경우는 해당 값이 작을수록 군집이 잘 되었다고 판정한다. 그 이유는, max 안에 들어가는 부분이 최소화가 되어야 하는 것일텐데 max값은 군집간의 거리가 가장 잛고, 군집 내에서는 밀도가 얇은 케이스를 선택할 것이다. 이 max값을 최소화했다는 의미는 분류가 잘 되었다는 의미가 될 것이다.

* 그 외 다른 지표들

이 이외에도 자카드 거리나 Calinski-Harabasz index 같은 다양한 지표가 존재한다.