영화 클러스터의 상위 용어
이제 희소 행렬을 만들었으니, 클러스터 중심을 구하고 각 클러스터에서 상위 세 개 용어를 출력해 봅시다. kmeans() 함수가 처리할 수 있도록 희소 행렬 tfidf_matrix를 .todense() 메서드로 일반 행렬로 변환하세요. 그런 다음 .get_feature_names() 메서드를 사용해 tfidf_vectorizer 객체에 포함된 용어 목록을 가져오세요. Python의 zip() 함수는 두 리스트를 묶어 줍니다.
이 연습 문제에서는 앞에서 만든 tfidf_vectorizer 객체와 희소 행렬 tfidf_matrix가 그대로 제공됩니다. SciPy에서 kmeans가 임포트되어 있습니다.
데이터 포인트가 많을수록 생성되는 클러스터가 더 명확해집니다. 다만 계산 비용이 커지므로, 여기 연습 문제에서는 크게 확장하기 어렵다는 점을 참고하세요.
이 연습은 강의의 일부입니다
Python으로 배우는 군집 분석
연습 안내
kmeans()함수를 사용해 클러스터 중심을 구하세요.tfidf_vectorizer객체에서 용어 목록을 가져오세요.- 각 클러스터의 상위 3개 용어를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
num_clusters = 2
# Generate cluster centers through the kmeans function
cluster_centers, distortion = ____
# Generate terms from the tfidf_vectorizer object
terms = tfidf_vectorizer.____()
for i in range(num_clusters):
# Sort the terms and print top 3 terms
center_terms = dict(zip(____, ____))
sorted_terms = sorted(____, key=center_terms.get, reverse=True)
print(____)