본문 바로가기

Machine Learning & Deep Learning

클러스터링 평가하기 (Clustering Evaluation)

Goal : 클러스터링 간에 비교하여 적절한 클러스터 개수를 구하기

 

1. Elbow method

- K-means의 경우 cost function이 존재

- 이걸로 평가하면 안될까? 문제가 있다!

=> 클러스터의 개수가 증가할수록 centroid와 데이터 포인트 간의 거리가 작아져, cost가 계속해서 감소한다.

=> 그렇다면, 클러스터 개수가 많을 수록 좋은건가? 그것도 아니다.

- 다음은 cost의 마이너스를 붙여서 계속 증가하는 그림이다. 의미는 똑같다.

 

- 그래프를 보면 처음에는 급격히 cost가 감소하다가 어느 순간 정체 된다.

- 감소세가 정체되는 지점에서 클러스터 개수를 정하자. 적당히 끊자!

- 이를 elbow method라고 한다.

 

 

2. Silhouette

- 실루엣 값은 한 클러스터 안의 데이터들이 다른 클러스터와 비교해서 얼마나 비슷한가를 나타낸다.

1. 클러스터 안의 거리가 짧을 수록 좋고(cohesion), 다른 클러스터와의 거리는 멀수록 좋다(separation)

2. 실루엣은 -1 부터 1사이의 값을 가진다. (실루엣이 1일수록 잘 부합하는 거고, -1일수록 필요없는 데이터)

3. 높을 수록 좋다.

- 구하는 방법

 

 

 

* 어떤 클러스터링 알고리즘이든지 상관없다.

* i번째 데이터 포인트에 대해서,

1. a(i) : 같은 클러스터 안에 있는 다른 데이터 포인트와의 평균거리(dissimilarity)

a(i)는 i번째 데이터 포인트가 클러스터에 얼마나 잘 맞는지 측정한다.

낮을수록 더 잘 속해있는 것

2. b(i)는 i가 속하지 않은 다른 클러스터와의 평균 거리 중 가장 작은 거리이다.

가장 작은 거리라는 건, 내가 속하지 않은 가장 가까운 클러스터, 즉 이웃 클러스터(neighbouring cluster)라는 뜻

 

* 해석

1. b가 a보다 많이 클수록 1에 가까워지고 좋다.

2. 0이면 지금 클러스터나 이웃 클러스터나 어디 있든 상관 없다.

 

 

- 빨간 점선은 score의 평균

- n_cluster = 2일 경우, 한쪽 클러스터에 데이터가  몰려있다. (0에 더 몰려있다.)

  0번 클러스터는 여기에 있어도 되나 싶은 애들이 많이 들어 있다. 0에 너무 몰려있으니까 K를 1 늘리자!

  그래도 여전히 0번 클러스터에 필요없는 애들이 많다. 0번 클러스터에 데이터가 많이 몰려있다.

- 꺾이는 부분이 평균보다 낮다 => 필요없는 애들이 더 몰려있다.

  꺾이는 부분이 평균보다 높다 => 더 뭉쳐있다.

 

 

 

 

반응형

'Machine Learning & Deep Learning' 카테고리의 다른 글

03. 초기화  (0) 2017.08.03
01. 활성함수(activation function) - Sigmoid, ReLU  (0) 2017.08.03
00. 뉴럴 네트워크  (0) 2017.08.03
군집화(Clustering)  (0) 2017.07.16
02. 머신러닝 프로젝트  (0) 2017.07.10