본문 바로가기
스터디/인공지능, 딥러닝, 머신러닝

[Clustering] Cluster Evaluation (silhouette coefficient, proximity matrix, clustering tendency)

by 궁금한 준이 2023. 6. 3.
728x90
반응형

 

Measures of Cluster Validity

Unsupervised measure, Internal index

  • goodness of a clustering structure w/o respect to external information
  • Cluster Cohesion (compactness, tighness)
  • Cluster Seperation (isolation)

 

Supervised measure, External index

  • which cluster labels match externally supplied class labels
  • Entropy

 

Relative measure

  • Compare two different clustering results
  • unsupervised/supervised measure 모두 적용 가능

Unsupervised Cluster Evaluation

Cohesion and Seperation

Notation Table

\begin{align*} \text{Cluster SSE} &= \sum_{\mathbf{x} \in C_i} dist(\mathbf{c}_i, \mathbf{x})^2 \\ &= \cfrac{1}{2 m_i}\sum_{\mathbf{x} \in C_i} \sum_{\mathbf{y} \in C_i} dist(\mathbf{x}, \mathbf{y})^2 \end{align*}

 

\begin{align*} \text{Total SSB} &= \sum_{i=1}^{K} m_i dist(\mathbf{c}_i, \mathbf{c})^2 \\ &= \cfrac{1}{2K} \sum_{i=1}^{K} \sum_{j=1}^{K} \cfrac{m}{K} dist(\mathbf{c}_i, \mathbf{c}_j)^2 \end{align*}

 

SSE를 최소화하는 것은 SSB를 최대화하는 것과 동일하다.

 

Silhouette Coefficient

cohesion과 seperation을 모두 고려하는 지표이다.

하지만 클러스터 전체가 아니라 각 data point에 대한 지표이다.

 

$i$번째 object에 대하여 $a_i,\ b_i$를 계산하고 실루엣 계수를 구한다.

$a_i$: 같은 클러스터 내의 모든 다른 object들과의 평균거리

$b_i$: 다른 클러스터 내의 모든 다른 object들과의 평균거리의 최솟값

\[ s_i = \cfrac{(b_i - a_i)}{\max(a_i, b_i)} \]

$s_i$의 범위는 $[-1, 1]$이고, $1$에 가까울 수록 (클러스터링의 결과가) 좋다는 뜻이다.

($a_i$가 $0$에 가까우면 $s_i = b_i / b_i = 1$에 가까워진다.)

border에 가까울 수록 $s_i$는 작아진다.

Silhouette Coefficient
Example Silhouette Coefficient

1번 클러스터(오렌지색)의 $s_i$의 최솟값은 다른 클러스터의 $s_i$의 최솟값보다 크다.

 

Proximity Matrix

correlation을 이용한 cluster validity 계산방법이다.

Proximity Matrix, Incidence Matrix 2개의 행렬을 이용한다. (matrix is symmetric)

높은 correlation은 same cluster를 의미한다.

그러나 density/contiguity based cluster에는 적합하지 않다.

Example of Correlation

Good cluster라면, 같은 클러스터 내의 correlation은 매우 높고 다른 클러스터끼리의 correlation은 낮을 것이다.

Judging a clustering visually by its similarity matrix
Clusters in random data are not so crisp (랜덤 데이터에서는 분명하지 않다.)

 

Determining the Correct Number of Clusters

분명히 10개의 클러스터가 존재하고 k-mean 알고리즘을 통해 클러스터 개수 K에 따른 SSE 그래프를 그려보자.

K값이 증가할 수록 SSE는 감소한다. 그러나 K=10 이후에는 SSE의 향상도가 나아지지않는다. 따라서 적절한 클러스터 개수는 K=10이 된다.

Plot the SSE-number of clusters

Clustering Tendency

이전까지 소개한 지표들은 클러스터링이 수행된 이후에 얼마나 잘 클러스터링 되었는지 알아보았다.

 

clustering tendency는 데이터 자체가 클러스터링이 될 수 있는지 판단하는 지표를 알아보자.

즉 클러스터링 알고리즘을 수행하기 이전에 사용할 수 있는 지표이다.

 

전체 data space에서 랜덤하게 $p$개의 데이터를 생성하고(not real data point, artificial points) \, 실제 data point에서 $p$개의 sample을 추출한다. 그리고 가장 가까운 이웃 거리(nearest neighbor distance)를 구한다.

 

$u_i$: artificial point에서 구한 nearest neighbor distance

$w_i$: sample point에서 구한 nearest neighbor distance

 

자주 사용되는 지표는 Hopkins statistic $H$이다.

\[ H = \cfrac{\sum_{i=1}^{p}w_i }{ \sum_{i=1}^{p} u_i + \sum_{i=1}^{p}w_i } \]

$H$가 $0$에 가까우면 highly cluster된 것이고, $H$가 $1$에 가까우면 clustering tendency가 거의 없다는 것이다.

즉 sample point(real data)끼리는 clustering되어 값이 작고, artificial point에서의 거리가 크면 $H$의 값은 작아지는 것이다. 반대로 $u_i \approx = 0$이면 원래 데이터가 거의 균등하게 (uniformly spread) 분포한다는 것이다.

Example of Hopkins Statistics

Note: $H$의 threshlold는 정하기 나름이나, $0.5$가 threshold로 본다.

Supervised Measures for Cluster Validity

Classification-oriented measures

Example of Classification-Oriented Measures

LA Document dataset에서 K-mean 알고리즘을 수행한 결과이다. $i$-clss에 속한 $j$-cluster에 대한 확률을 $p_{ij}$라 하면 $p_{ij} = \frac{m_{ij}}{m_j}$이다.

이때 entropy는 $e_j = \sum_{i=1}^{L} p_{ij} \log_2 p_{ij}$ ($L$은 class 개수이다)

total entropy는 $e = \sum_{i=1}^{K} \frac{m_i}{m} e_j$ 이다.

purity는 $purity_{j}=\max p_{ij}$이고 전체 purity는 $\sum_{i=1}^{K} \frac{m_i}{m}purity_{j}$

 

(6개의 클러스터 중에서) 3번째 클러스터가 낮은 entropy, 높은 purity를 가지므로 좋은 클러스터라고 할 수 있다.

 

Similarity-oriented measures

ideal cluster similarity matrix와 ideal class similarity matrix를 이용할 수 있다.

5개의 data point $p_1, \dots, p_5$에 대하여 클러스터($C$)와 class($L$)가 다음과 같다고 하자.

$C_1 = \{p_1, p_2, p_3 \},\ C_2 = \{p_4, p_5 \}, \quad L_1 = \{ p_1, p_2\},\ L_2 = \{p_3, p_4, p_5 \}$

Example of Similarity-Oriented Measures

binary similarity를 이용할 수 있다. (예: Jaccard coefficient)

 

Assessing the Significance of Measures

위에서 구한 다양한 measure를 어떻게 해석하는지 생각해보자. 

예를 들어 어떤 evaluation 결과가 $10$일 때, good/fair/poor 인지 어떻게 판단할 수 있을까?

 

random chance에 기반하여 값을 비교할 수 있다.

728x90
반응형