더북(TheBook)

코드 11-8 라이브러리 호출 및 데이터 로딩

import numpy as np
import matplotlib.pyplot as plt
from sklearn.mixture import GaussianMixture
X_train = np.load('..\chap11\data\data.npy') ------ ①

① 파일을 배열로 불러오는 방법은 다음과 같습니다.

- np.load(): np.save()로 저장된 data.npy 파일을 배열로 불러옵니다.

- np.save(): 배열 한 개를 넘파이 형식의 바이너리 파일로 저장합니다.

즉, data.npy는 배열 한 개가 넘파이 형식으로 저장된 것이며, 이 파일을 배열로 불러오겠다는 의미입니다.

클러스터링은 비지도 학습으로, 입력은 정답(레이블)이 없는 2D(2차원) 형식을 갖습니다. 사이킷런의 GaussianMixture 클래스를 사용하여 가우시안 분포 두 개가 겹쳐 보이도록 구성합니다. 사이킷런의 GaussianMixture 클래스를 사용하면 코드 몇 줄로도 쉽게 GMM을 생성할 수 있습니다.

코드 11-9 GMM 생성

gmm = GaussianMixture(n_components=2) ------ n_components는 가우시안 개수를 의미하므로, 가우시안 두 개가 겹쳐 보이게 구성
gmm.fit(X_train)

print(gmm.means_)
print('/n')
print(gmm.covariances_)

X, Y = np.meshgrid(np.linspace(-1,6), np.linspace(-1,6))
XX = np.array([X.ravel(), Y.ravel()]).T
Z = gmm.score_samples(XX)
Z = Z.reshape((50,50))

plt.contour(X, Y, Z)
plt.scatter(X_train[:,0], X_train[:,1])
plt.show()
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.