본문 바로가기
Machine Learning

클러스터링 평가 지표(Clustering Evaluation Metrics)

by hyez 2022. 9. 19.

지도학습 -> labeled data

비지도 학습 -> unlabeled data를 통한 학습,

  • e.g. clustering, constrative learning
  • 비지도학습의 핵심은 알고리즘의 성능을 올바르게 측정하는 것.

 

Clustering 평가 지표

1. Silhouette Score

Silhouette score는 군잡 간 separation distance를 측정하는데 사용한다. 즉, 군집의 각 점이 인접한 군집의 점에 얼마나 가까운지 나타내는 측도를 표시한다. 측정값의 범위는 [-1, 1]이며 "similarities within clusters and differences across clusters"를 시각적으로 표현 가능하다.

실루엣 점수는 각 표본의 mean intra-cluster distance $i$와  mean nearest-cluster distance $n$을 사용하여 계산된다. 

The Silhouette Coefficient for a sample:

$$(n-i)\over \max(i, n)$$

  • $n$은 각 표본과, 표본이 포함되지 않은 가장 가까운 군집 사이의 거리
  • $i$ 각 군집 내 평균 거리

Silhouette Plots은 y축에 있는 cluster label을 나타내며, x축에는 실제 실루엣 점수를 나타낸다. 실루엣의 크기/두께도 해당 군집 내의 표본 수에 비례함

An example Silhouette Plot. On the y-axis, each value represents a cluster while the x-axis represents the Silhouette Coefficient/Score. (출처: reference 참고)

  • Silhouette Coefficients가 높을 수록(1에 근접), 군집의 표본은 인접한 군집과의 거리가 멀다.
  • 값이 0이면, 두 인접 군집 사이의 결정 경계에 있거나 매우 가깝다.
  • 낮으면(-1에 근접), 해당 표본이 잘못된 군집에 할당되었음을 나타냄

실루엣 계수를 평균하면 단일 값으로 전체 모집단의 성능을 설명 가능 : Global Silhouette Score

 

python으로 계산하기 위해 아래  sklearn 코드를 작성

sklearn.metrics.silhouette_score(X, labels, *, metric='euclidean', sample_size=None, random_state=None, **kwds)

 

2. Rand Index, RI

예측된 군집과 실제 군집의 표본 쌍을 고려한 두 군집 사이의 유사성 측도

The formula of the Rand Index is:

$$RI = {Number\ of\ Agreeing\ Pairs \over Number\ of\ Pairs}$$

  • [0, 1]
  • ground-truth가 있다고 가정 -> 완벽한 비지도학습이 아니다.

python으로 계산하기 위해 아래  sklearn 코드를 작성

sklearn.metrics.rand_score(labels_true, labels_pred)

 

3. Adjusted Rand Index

 “adjusted for chance” 

$$ARI = {RI - Expected\ RI \over \max{RI} - Expected\ RI}$$

  • [0, 1]

python으로 계산하기 위해 아래  sklearn 코드를 작성

sklearn.metrics.adjusted_mutual_info_score(labels_true, labels_pred, *, average_method='arithmetic')

 

4. Mutual Information, MI

동일한 데이터의 두 레이블 간의 유사성에 대한 측도

Mutual Information between clusters $U$ and $V$ is given as:

  • $|U_i|$ : 클러스터 $U_i$의 샘플 수
  • $|V_j|$ : 클러스터 $V_j$의 샘플 수

RI와 유사하게 해당 지표는 분포에 대한 ground truth labels을 알아야 함.

 

python으로 계산하기 위해 아래  sklearn 코드를 작성

sklearn.metrics.mutual_info_score(labels_true, labels_pred, *, contingency=None)

 

5. Calinski-Harabasz Index

Variance Ratio Criterion 라고 알려져있다.

이는 within-cluster dispersion과 between-cluster dispersion의 비율로 정의된다. C-H 지수는 ground truth labels를 필요로 하지 않기 때문에 클러스터링 알고리즘의 성능을 평가하기 위한 좋은 도구이다.

지수가 높을수록 성능이 우수함을 의미한다.

The formula is:

여기서 $tr(B_k)$s는 between group dispersion matrix의 trace(대각합) 이고, $tr(W_k)$는 within-cluster dispersion matrix의 trace이다. 아래와 같이 정의된다. 

python으로 계산하기 위해 아래  sklearn 코드를 작성

sklearn.metrics.calinski_harabasz_score(X, labels)

 

6. Davies-Bouldin Index

가장 유사한 군집을 가진 각 군집의 평균 유사성 측도로 정의된다.

  • 유사성은 within-cluster distances와 between-cluster distances의 비율이다. 
  • 더 멀리 떨어져 있고, 덜 분산된 클러스터는 더 나은 점수를 얻을 수 있다.
  • 최소점수 : 0
  • 낮을 수록 클러스터링 성능 향상

python으로 계산하기 위해 아래  sklearn 코드를 작성

sklearn.metrics.davies_bouldin_score(X, labels)

 

 0. Reference

댓글