【发布时间】:2019-05-15 13:07:04
【问题描述】:
我有非常简单的 AffinityPropagation 模型函数用于一些文本聚类:
def fit_affprop(X, damping=0.5):
affprop = AffinityPropagation(affinity='euclidean', damping=damping)
affprop.fit_predict(X)
clustering = collections.defaultdict(list)
for idx, label in enumerate(affprop.labels_):
clustering[label].append(idx)
terms = vec.get_feature_names()
print(terms)
print(affprop.cluster_centers_indices_)
问题是,我无法弄清楚,如何打印出每个集群的热门词?我已经尝试修改我对 k-means 的方法:
print("Top terms per cluster:")
order_centroids = km_model.cluster_centers_.argsort()[:, ::-1]
terms = vec.get_feature_names()
for i in range(clusters):
print("Cluster %d:" % i, end='')
for ind in order_centroids[i, :10]:
print(' %s' % terms[ind], end='')
argsort 会出错,因为聚类中心的形式与 k-means 不同。
【问题讨论】:
-
affprop.cluster_centers_indices_的形状是什么?
-
1xn 向量,其中 n 是簇的数量。即 [0 1 2 3]
标签: scikit-learn cluster-analysis