Processing math: 100%
본문 바로가기

Machine Learning Tasks/Clustering

Clustering - Performance (2), Total Sum of Squares

반응형

지난 포스트

[Machine Learning/Unsupervised Learning] - Clustering - Performance (1)


지난 포스트에서 라벨 없이 clustering 의 성능 평가를 위한 지표들인 silhouette score, calinski-harabasz index, davies-bouldin index 에 대해 알아봤습니다. Clustering 의 목적 자체가 전체 데이터셋 중 비슷한 데이터끼리는 같은 군집으로 비슷하지 않은 데이터끼리는 서로 다른 군집끼리는 구별되도록 묶는 알고르짐이기에 대표적인 지표들인 silhouette score, calinski-harabasz index 는 서로 모양은 다르지만 clustering 의 성능 평가를 위해서 1) 각 군집이 얼마나 잘 뭉쳐져 있는지 (compactness), 2) 각 군집이 서로 떨어져 있는지 (separation) 을 측정하게 됩니다. 

Compactness 를 측정하기 위해서 보통 각 군집에 속한 데이터와 군집의 중심간의 거리로 계산된 분산을 사용하는데요 이 분산이 낮으면 해당 군집이 잘 뭉쳐져 있다고 판단합니다. Separation 을 측정하기 위해서는 각 군집 중심 별 거리나 전체 데이터셋의 중심과 각 군집 중심간의 분산을 이용해 이 값이 크면 각 군집 별로 잘 구분되었다고 판단합니다.

Calinski-harabasz index 의 경우에 대입해보면 calinski-harabasz index 는 cluster 간의 분산과 (separation) cluster 내부의 분산의 (compactness) 비율로 clustering 성능을 판단하게 되는데요, 이를 일반적으로 확장하면 separation 을 나타내는 cluster 간의 분산과 compactness 를 나타내는 cluster 내 분산은 전체 데이터셋의 분산으로 정의할 수 있습니다.

Total sum of squares

Total sum of squares 는 전체 데이터셋의 분산 ni=1(xiˉx)2 로 정의되고 이것은 compactness 를 나타내는 SSE(within-cluster sum, Sum of Square Error) 와 separation 을 나타내는 SSB(Between group of Sum of Sqaures) 의 합으로 나타낼 수 있습니다.

SSE 는 각 군집에 속한 데이터의 군집의 중심간의 거리의 합으로 K개의 cluster 에 대해서 Kk=1nki=1zik(xiˉxk)2 로 정의되며 nkk 군집에 속한 데이터 개수이며 ˉxkk 군집의 평균입니다. zik는 indicator function 으로 xik 군집에 속하면 1, 아니면 0을 출력합니다. SSB 는 전체 데이터셋의 중심과 군집 중심간의 거리의 합으로 Kk=1nk(ˉxkˉx)2 로 정의됩니다. 따라서 TSS (Total Sum of Squares) 는 다음과 같이 정의됩니다.

TSS=SSE+SSB

ni=1(xiˉx)2 = Kk=1nki=1zik(xiˉxk)2 + Kk=1nk(ˉxkˉx)2

Proof

이것을 어떻게 증명할 수 있을까요? 먼저 위 식을 보면 전체 데이터셋의 분산이 군집 내 분산과 군집 간 분산의 합으로 이루어져 있는 것으로 보아 확률론의 law of total variance를 이용하여 전체 데이터셋의 분산을 다음과 같이 분해하고, 군집 k에 따른 데이터 x의 확률을 p(x|k)=iziknkδ(xxi)로 두고 군집 확률을 p(k)=nkn 으로 두어 증명할 수 있습니다.

Var[X]=E[Var[X|K]]+Var[E[X|K]]

Law of total variance는 linear regression 에서의 종속변수 Y와 설명변수 X에 의한 E[Y|X]=aX+b 경우에 대해서도 적용할 수 있는 것이 Y의 분산이 설명변수 X로부터 설명된 분산 (Var[E[X|K]]) 과 설명되지 못한 분산 (에러, E[Var[X|K]]) 으로 나누어진다는 것입니다.


다른 방법으로는 izik=nk,kzik=1 을 이용하여 ni=1(xiˉx)2 를 쭉 풀어쓰는 방법이 있습니다. 먼저 ni=1(xiˉx)2=ikzik(xiˉx)2 로 풀어쓰고 (xiˉx)2 부분을 (xiˉxk+ˉxkˉx)2로 다음과 같이 풀이할 수 있습니다.

https://stats.stackexchange.com/questions/147007/a-proof-of-total-sum-of-squares-being-equal-to-within-cluster-sum-of-squares-and

 

홍머스 정리

  • Clustering 에서 전체 데이터셋의 분산 (TSS) 은 군집 내 분산과 (SSE) 군집 간 분산 (SSB) 의 합으로 나타낼 수 있다. (엄밀히 말하면 분산이 아닌 중심과 데이터 간의 거리의 합)
  • Clustering 성능 평가는 군집끼리 잘 뭉쳤는지 (compactness) 군집 간 잘 벌어져있는지 (separation) 의 비율이나 합으로 평가한다.

참조

반응형