태태개발일지 - 클러스터링

Clustering Methods
비지도 학습의 가장 기초적인 테스크로, label이 되어있지 않는 클래스를 나누는 역할, 유사도를 통해서 분류한다.
* 기준에 따라 결과 값이 달라진다.
그중 대표적으로 k-means clustering이 있다.
K-means Clustering
각각의 중앙값에 가까운것으로 분류를 한다.
장점: k-means clustering은 단순하고 빠르게 처리가 가능한 기법이다.

위의 식을 해석해보자면,
1. Rnk는 0과 1로 나누어져있어서 k에 속하면 1 아니면 0을 반환한다.
2. rnk의 옆은 중심값에 비해서 얼마나 떨어져있는 가를 나타낸다.
1번과 2번을 각각 번갈아 가면서 J를 최소화 하는 문제로 바뀌게 된다.
뮤(2번) 을 고정하고 rnk를 우선 찾는다.
rnk를 고정하고 편미분을 통해서 0이 되는 값을 구하면된다. 편미분을 하게되면, 그냥 평균점이 나오게 된다. 즉 평균점을 옮기게 된다.
k 즉 클러스터의 개수에 따라 달라진다.
k를 너무 높히면 의미가 없게 된다.

k-mean의 한계는
1. 중앙으로 부터 클래스 자체가 구형이다라는 점이다.
2. 확률적인 방법이 아니라, 애매한경우 딱딱 떨어진다. ex) 서로 겹쳐있을 때 하나로 결정이 나야함.
GMM
가우시안 자체를 cluster로 보는 것이다.
장점:
1. mean값이 아니라 구형이아니다.
2. 결과가 hard하지않고, soft하다, 애매한경우 반반 주면된다.

아래와같이 log안에 시그마가 있는 경우, liklyhood를 구하기 어렵다.
여기서 등장한 개념이 EM 알고리즘이다.

이 3가지 변수를 하나씩 미분해가면서 동기화해 나가면 되는 알고리즘이다.
그 이유는 각 매개변수로 미분하게되면, 감마 JK의 정의와 같아져서, 결국 0이되는 지점을 찾으면 되기때문이다.
Hierarchical Clustering
클러스터의 계층 구조를 알고싶을 때 사용/ 덴드로그램이라고도 명명
클러스터의 갯수를 정하지않고, 점차적으로 계층구조를 확인한다는 특징을 가진다.
계층의 구조
1. Agglomerative(개개인으로부터 큰 범위로 늘리는것)
2. Divisive(전체를 보고 쪼개나가는 것)
계층을 나눌 때, 서로의 거리와 집단의 거리를 나누는 수많은 방식이 있다.
클러스터 2개를 합치고, 2개의 집단의 각각의 자체분산을 뺴줘서 변화량을 통해 확인하기도 한다.