GMM(Gaussian Mixture Model) 군집화 알고리즘 :
데이터가 여러 다른 모양의 가우시안 분포(Gaussian Distribution)로 결합되어 있다는 가정 하에
개별 데이터를 동일한 가우시안 분포별로 묶어주는 비지도 학습 알고리즘이다.
- 기하학적인 모양의 군집, 서로 겹치는 군집에 대해서도 클러스터링이 잘 수행된다.
(K-Means 군집화 알고리즘의 한계점을 보완) - 개별 데이터 포인트에 대해 각 정규 분포(가우시안 분포)에 속할 확률을 계산하여 할당하고, 최대 우도 추정법으로 개별 정규 분포의 평균과 분산 추정을 반복하며 학습이 진행된다.
이 시간에는 GMM 알고리즘 수행 단계를 정리해보고자 한다. 👀
GMM 알고리즘 수행 단계
GMM 알고리즘은 '예측(Expectation)'과 '최대화(Maximization)' 이렇게 크게 2단계로 구분된다.
*보통 줄여서 EM방법이라고 부른다.
1. 예측(Expectation)
개별 데이터 포인트가 각 정규 분포로부터 생성되었을 가능도(likelihood)를 계산하여, 가장 높은 확률을 가진 정규 분포에 할당한다.
* 처음에는 각 정규분포에 데이터 포인트를 임의로 배정한다.
군집화 대상이 되는 데이터 분포가 위처럼 정규 분포 3개의 결합이라고 가정한다면,
위 그림처럼 빨간 색으로 표시된 각 데이터 포인트에 대해 각 정규 분포에 속할 확률을 계산한 후, 가장 큰 확률을 갖는 정규 분포로 할당한다. 파란색 정규 분포에 5개의 데이터 포인트가, 주황색 정규 분포에 3개의 데이터 포인트가, 초록색 정규 분포에 5개의 데이터 포인트가 할당되는 것을 확인할 수 있다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2. 최대화(Maximization)
위 1번 단계에서 개별 데이터 포인트를 모두 할당한 후, 각 그룹의 데이터 포인트를 이용하여 Maximum Likelihood Estimation(최대 우도 추정)으로 모분포의 모평균과 모분산을 추정한다.
개별 데이터 포인트로 각 정규 분포의 모수를 추정한다. 위 그림에서 정규 분포의 평균과 분산이 변경된 것을 확인할 수 있다. 개별 데이터들의 소속과 정규 분포의 모수(평균과 분산)가 변하지 않을 때까지 1,2 단계를 반복 수행한다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
개별 데이터 포인트를 특정 그룹에 먼저 할당하고, 그룹에 속한 데이터들로 기준 값을 다시 계산한다는 점에서, GMM 알고리즘은 K-Means 알고리즘 수행 방식과 유사한 것을 확인할 수 있다. K-Means 군집화에서는 개별 데이터 포인트들을 Centroid에 할당하고, 할당된 데이터 포인트로 다시 Centroid를 계산한다.
2021.05.30 - [머신러닝] - [머신러닝] K-Means 군집화
GMM 알고리즘의 장점
- 데이터가 기하학적 모양의 군집을 갖는 경우, K-Means 알고리즘보다 성능이 좋다.
- Mixture Model 중에서는 학습 속도가 빠른 편이다.
GMM 알고리즘의 단점
- 군집 개수를 의미하는 가우시안 분포의 개수를 사용자가 지정해야 한다.
* 하지만 BIC(Bayesian Information Criterion) 방식으로 최적화 개수를 찾을 수는 있으며, scikit-learn 패키지에서도 해당 기능을 제공하고 있다. - 가우시안 분포마다 충분한 데이터 포인트들이 있어야, 모수 추정이 잘 이뤄진다.
- 계산량이 많은 편이다.
참고자료
GMM 알고리즘을 정리하며, 통계 공부를 더 열심히 해야겠다는 생각이 들었다. 💦
꾸준히 해보쟈 🚀
'머신러닝' 카테고리의 다른 글
[분석 방법론] Ensemble Learning(1) - Overview (0) | 2022.11.23 |
---|---|
[분석 방법론] Anomaly Detection - Isolation Forest (0) | 2022.11.23 |
[머신러닝] 클러스터링 평가지표 - 실루엣 계수(2) (0) | 2021.07.21 |
[머신러닝] 클러스터링 평가지표 - 실루엣 계수 (1) (3) | 2021.06.15 |
[머신러닝] K-Means 군집화 (4) | 2021.05.30 |
댓글