이너셔 값을 시각화하는 이유는 앞에서도 잠깐 언급한 엘보 기법을 사용하기 위해서다. y축의 이너셔 값은 가장 가까운 군집의 중심과 샘플의 거리 제곱합이다. 중심과 샘플의 거리가 가까울수록 군집이 잘 되었다고 볼 수 있기 때문에 이너셔 값이 작을수록 군집이 잘 되었다고 평가한다.
반복문을 통해 이너셔 값을 구할 때 첫 군집은 랜덤하게 군집의 중심을 설정하기 때문에 높은 값이 나올 수밖에 없다. 다음 군집부터는 거리를 계산해 군집의 중심을 이동하므로 중심과 군집은 점점 가까워지고 값이 점점 낮아지는 그래프가 그려진다. 이상적인 군집이라면 마치 팔꿈치가 꺾이듯이 이 값이 낮아지는 클러스터가 나타난다. 급격하게 꺾이는 부분이 있다면 그 값을 참고해 클러스터의 수를 정한다. 전처리가 잘 된 정형 데이터라면 팔꿈치처럼 급격하게 꺾이는 부분이 이상적으로 등장할 수 있지만 예제에서 사용하고 있는 비정형 텍스트 데이터에서는 이론처럼 급격하게 꺾이는 부분은 나타나지 않는다.
yellowbrick이라는 머신러닝 시각화 도구를 설치해 시각화해 볼 수도 있다.
!pip install yellowbrick
from yellowbrick.cluster import KElbowVisualizer KElbowM = KElbowVisualizer(kmeans, k=70) KElbowM.fit(feature_tfidf.toarray()) KElbowM.show()