가우시안 혼합 모델의 모든 파라미터 π, μ, Σ의 값이 결정되었다면, 베이즈 정리(Bayes’ theorem)를 이용하여 γ(znk)를 다음과 같이 정리할 수 있습니다.
πk와 p(znk=1)은 모두 K번째 가우시안 분포에 선택될 확률을 나타내기 때문에 수식에서 p(znj=1)이 πj로 치환되었습니다.
πk는 zk=1일 때의 사전 확률 값이며, γ(znk)는 관찰 데이터 x가 주어졌을 때의 사후 확률 값입니다. 또한, γ(zk)를 성분 K에 대한 책임 값(responsibility)이라고 합니다.
그럼 이제 코드로 확인해 보겠습니다.
사이킷런을 이용하여 GMM을 구현해 보겠습니다. 데이터셋은 data.npy 파일을 사용할 텐데, 이 파일은 배열 한 개를 넘파이 형식으로 저장해 놓은 것입니다.
먼저 필요한 라이브러리를 호출하고, 데이터를 메모리로 로딩합니다. 코드에서 사용된 data.npy 파일은 파이썬 소프트웨어 패키지가 만든 넘파이 배열 파일입니다.
코드 11-14 라이브러리 호출 및 데이터 로딩
import numpy as np
import matplotlib.pyplot as plt
from sklearn.mixture import GaussianMixture
X_train = np.load('..\chap11\data\data.npy') ------ ①