비지도 학습에서 데이터 샘플들을 별개의 군집(cluster)으로 그룹화하는 것
비지도 학습에서의 분류 알고리즘
데이터의 특징에 따라 세분화하는데 사용
이상 검출(anomaly detection)에 사용
유사성이 높은 데이터를 동일한 그룹으로 분류
서로 다른 군집은 특성이 상이하도록 군집화 함
클러스터 내부의 분산(within 분산) 최소화, 클러스터 간의 분산(between 분산) 최대화

모수적(parametric) 추정: 주어진 데이터가 특정 데이터 분포를 따른다고 가정
ex) Gaussian Mixture Model(GMM)
비모수적(non-parametric) 추정: 데이터가 특정 분포를 따르지 않는다는 가정 하에서 확률 밀도를 추정
ex) K-means, Mean Shift, DBSCAN
K-means의 한계점
- 군집의 개수, centroid에 대한 초기 설정값에 따라 성능 편차가 심함
- 군집 크기나 밀도가 다를 경우, 학습이 잘 안 될 수가 있음
- 데이터 분포가 특이할 경우에도 군집 학습이 어려움
군집 수 k=2 인 상황

처음 군집의 centroid는 랜덤하게 설정함

샘플들을 가장 가까운 centroid에 할당해 군집을 생성 -> E 단계

군집의 새로운 centroid를 계산 -> M 단계

샘플들을 가장 가까운 centroid에 할당해 군집을 생성 -> E 단계

군집의 새로운 centroid를 계산 -> M 단계

군집들이 얼마나 효율적으로 분리되어 있는지를 보여줌
각 샘플들이 가지고 있는 실루엣 계수(silhouette coefficient)를 기반으로 함
전체 실루엣 계수의 평균값이 클수록, 개별 군집의 평균값의 편차가 작을수록 좋음
가장 가까운 타 군집 하나와의 거리를 통해 계산
실루엣 계수는 -1 ~ 1 사이의 값을 가짐, 1에 가까울수록 더 좋은 군집을 의미

실루엣 계수의 평균값이 크고 편차가 작도록, K-means 알고리즘의 군집 개수(k)를 결정함



평균 이동(mean shift)
각 샘플을 기점으로 주변에 데이터가 가장 밀집된 곳으로 이동하는 것을 수렴할 때까지 반복
모든 데이터에 대해 수렴 지점을 계산하여 군집의 개수를 결정
각 샘플들을 가장 가까운 중심점을 가진 군집으로 할당

군집 개수에 대한 하이퍼파라미터가 불필요
sliding window의 크기를 조절해 주변 어느 정도까지 볼지 결정해야 함

비모수(non-parametric) 방법의 모델
KDE(kernel density estimation)를 통해 밀도가 가장 높은 곳을 찾아냄
Mean Shift 한계점
- sliding window의 크기와 bandwidth h에 대한 선택이 필요함
- 여전히 데이터 분포가 특이할 경우에 군집 학습이 어려움
density-based spatial clustering of applications with noise
밀도가 높은 부분을 중심으로 군집화를 하는 방법론
어떤 점을 기준으로 반경 ε 내에 샘플이 minpoints보다 많으면 같은 군집으로 할당

군집으로 할당된 샘플들을 해당 군집의 corepoint로 설정해 계속 반복
minpoints 개수를 만족 못하는 borderpoint 샘플이 나올 경우 멈춤
모든 데이터 샘플에 대해 진행하여 cluster point와 noise point를 구분
(장점) 다양한 형태의 군집 유형을 구분할 수 있음
(장점) 아웃라이어(noise point)를 찾아낼 수 있음
(단점) 군집의 개수 설정에선 자유롭지만 ε과 minpoints에 대한 설정이 필요
(단점) 연산량이 크기 때문에 시간이 오래 걸림
모수적 추정의 방법론으로 주어진 데이터를 k개의 gaussian 분포의 혼합으로 가정
EM 알고리즘을 통해 모델을 학습함

E 단계: 현재의 추정된 모수를 통해 샘플을 군집에 할당하는 단계. responsibility(책임값)를 계산하여 샘플마다 가장 큰 값을 도출하는 군집으로 할당
M 단계: 로그 가능도(likelihood)의 기댓값을 최대화하는 모수를 추정하는 단계
(장점) 각 유형별 데이터의 밀도가 일정하지 않거나 경계가 모호해도 군집화가 잘됨
(단점) 클러스터 개수 k에 대한 설정이 필요
(단점) 데이터가 정규 분포의 조합으로 표현된다는 가정이 어긋나면 성능이 떨어짐
(단점) 연산량이 크기 때문에 대량의 데이터에 사용하기 어려움


