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 |