코드 3-33 적당한 K 값 추출
Sum_of_squared_distances = [] ------ ①
K = range(1, 15) ------ K에 1부터 14까지 적용해 봅니다.
for k in K:
km = KMeans(n_clusters=k) ------ 1~14의 K 값 적용
km = km.fit(data_transformed) ------ KMeans 모델 훈련
Sum_of_squared_distances.append(km.inertia_)
plt.plot(K, Sum_of_squared_distances, 'bx-')
plt.xlabel('k')
plt.ylabel('Sum_of_squared_distances')
plt.title('Optimal k')
plt.show()
코드를 실행하면 다음 그림과 같이 적당한 K 값이 출력됩니다.
▲ 그림 3-34 K-평균 군집화 예제 실행 결과