feature_array = feature_vector.toarray() labels = np.unique(prediction) ————➊ df_cluster_score = [] df_cluster = [] for label in labels: id_temp = np.where(prediction==label) ————➋ x_means = np.mean(feature_array[id_temp], axis = 0) ————➌ sorted_means = np.argsort(x_means)[::-1][:n_clusters] ————➍ features = vectorizer.get_feature_names_out() best_features = [(features[i], x_means[i]) for i in sorted_means] # 클러스터별 전체 스코어를 구한다. df_score = pd.DataFrame(best_features, columns = ['features', 'score']) df_cluster_score.append(df_score) # 클러스터 대표 키워드 df_cluster.append(best_features[0])
점수가 클수록 예측 정확도가 높다. MiniBatchKMeans로 예측한 값을 기준으로 정렬해 각 클러스터에서 점수가 높은 단어를 추출한다.
pd.DataFrame(df_cluster, columns = ['features', 'score']).sort_values(by=["features", "score"], ascending=False)