Clustering
# Tag:
- Source/KU_ML
Clustering
기본적으로 비지도 학습 방식으로 어떤 label 없이 데이터 내에서 거리가 가까운 것들끼리 각 cluster로 묶어내는 방법이다.
즉, 각 cluster에 속하는지에 대한 여부가 Latent Variable이 되며, label이 주어져 있지않으므로 Latent Variable를 Estimate해내는 비지도 학습 방식이다.
Error
이를 판단하는 기준은 Distance가 된다.
따라서, clusters간의 Distance를 판단하는 기준이 필요하다.
Distance between two clusters
Single-link distance
:각 Cluster의 element 중 가장 서로 가까이 있는 element간의 거리.
Complete-link distance
:각 Cluster의 element 중 가장 서로 멀리 있는 element간의 거리.
Average-link distance
:모든 거리의 합을, 각 클러스터의 개수로 나누어준다.
Centroid distance
: 각 cluster내에 속한 element들의 평균 간의 거리.
Bhattacharyya distance
:Gaussian Distribution의 Bhattacharyya distance.
두 Probability Distribution 간의 유사도(겹침)를 측정하는 지표.
거리가 작을수록 구분이 어렵고, 거리가 클수록 구분이 쉽다.
Cluster error
같은 Cluster내에 있는 데이터는 최대한 뭉쳐 있어야 하므로, Data point간의 distance가 클수록 Cluster error가 크다고 판단한다.
Clustering error
모든 cluster error의 합이 된다.
: 각 cluster error에 전체 데이터 중 각 cluster의 element 개수를 곱해 더한다.
즉, 일종의 cluster element 개수를 반영한 weighted sum이라 볼 수 있다.
같은 cluster 내에서는 Variance가 작고, cluster들 끼리는 variance가 큰 것이 좋으므로 이는 곧, LDA를 Error의 기준으로 활용할 수도 있다.
:분자는 cluster내에서의 요소 간 거리, 분모는 cluste들 간의 거리라 볼 수 있다.
Algorithm
clustering을 하는 algorithm은 여러가지가 존재한다.
Agglomerative Clustering algorithm
- 모든 cluster에는 하나의 Datapoint만 포함시키고, 각 cluster를 하나의 그룹 로 묶는다.
- 가 최소인 , 를 찾는다.
- 를 묶어 새로운 cluster 를 찾는다.
- 에서 를 제거하고 를 추가한다.
- 원하는 클러스터의 개수 에 도달할 때까지, 혹은 clustering error threshold일 때까지 반복한다.

Divisive Clustering Algorithm
- 모든 데이터를 묶어 하나의 cluster 으로 두고, 이를 그룹 에 포함시킨다.
- cluster error가 가장 큰 cluster 를 찾는다.
- clustering error theshold 라면, 중단한다.
- clustering error가 최소화되는 방법으로 를 두 개의 cluster 로 분리한다.
- 그룹 에서 를 추가하고 를 제거한다.
- 만일 원하는 cluster 개수 에 도달했다면 중단.

K-means Clustering
How to find Optimal K?
방법은 다양하지만, Validation과정을 통해 가장 적은 error를 가져오는 를 점진적으로 증가시켜 나가면서 찾는다.
PCA, Color quantization, Cross Validation등의 방법이 이용될 수 있다.