[ML/Clustering] GMM (Gaussian Mixture Model)
GMM 군집화는 확률기반 군집화로, 군집화를 적용하고자 하는 데이터가 여러개의 가우시안 분포를 가진 데이터 집합들이 섞여서 생성된것이라는 가정하에 군집화를 수행한다. (정규분포로도 알려진 가우시안 분포는 좌우 대칭형 종 형태를 가진 통계학에서 가장 잘 알려진 연속확률 함수다.)
즉, 전체 데이터세트는 서로 다른 정규분포 형태를 가진 여러가지 확률 분포 곡선으로 구성될 수 있으며 이러한 서로 다른 정규 분포에 기반해 군집화를 수행하는 것이 GMM 군집화다.
점선은 개별 데이터에 대한 정규분포 / 실선은 전체 데이터에 대한 확률분포를 의미한다. image ref
예를 들어 1000개의 데이터세트가 있다면 이를 구성하는 여러개의 정규 분포 곡선을 추출하고, 개별 데이터가 이중 어떤 정규분포에 속하는지 결정하는 방식이다. 이와같은 방식은 GMM에서 모수 추정이라고 하는데, 모수 추정은 대표적으로 2가지를 추정한다.
- 개별 정규분포의 평균, 분산
- 각 데이터가 어떤 정규 분포에 해당되는지의 확률
이러한 모수 추정을 위해 GMM은 EM(Expectation and Maximization) 방법을 적용한다.
Tutorial
1 | |
치우쳐진 데이터의 경우, Kmeans 보다 GMM이 더 효과적인 것을 알 수 있다.
Kmeans는 군집내 데이터의 평균거리를 이용하기 때문에 치우쳐진 데이터보다 원형인 데이터에 더 효과적이다.
데이터의 특성을 파악해 유용한 clustering 방식을 선택하는 게 중요하다.
Practice
- Clustering link
Reference
- 파이썬 머신러닝 완벽가이드 서적