Scikit 学习谱聚类获取每个聚类的项目
Scikit learn spectral clustering get items per cluster
我正在尝试使用谱聚类对文本文档中出现的术语进行聚类。进行聚类后,我想获得每个聚类中的术语。
我试过的代码如下,
true_k = 4
vectorizer = TfidfVectorizer(stop_words='english',decode_error='ignore')
X = vectorizer.fit_transform(documents)
terms = vectorizer.get_feature_names()
model = SpectralClustering(n_clusters=true_k ,eigen_solver='arpack',affinity='nearest_neighbors')
model.fit(X)
从这里开始,我一直在获取每个集群的术语,使用 'labels_' 没有帮助,因为它仅 returns 集群标签
编辑:已解决,下面的代码成功了,
print("Terms per cluster:")
for i in range(true_k):
print "Cluster %d:" % i,
T=X[model.labels_==i].indices
for ind in T:
print terms[ind]
print
如果我没理解错的话,你必须先拟合模型,即model.fit(X)
。要根据拟合模型访问属于集群 k
的 X
的元素,请执行 X[model.labels_==k]
.
我正在尝试使用谱聚类对文本文档中出现的术语进行聚类。进行聚类后,我想获得每个聚类中的术语。
我试过的代码如下,
true_k = 4
vectorizer = TfidfVectorizer(stop_words='english',decode_error='ignore')
X = vectorizer.fit_transform(documents)
terms = vectorizer.get_feature_names()
model = SpectralClustering(n_clusters=true_k ,eigen_solver='arpack',affinity='nearest_neighbors')
model.fit(X)
从这里开始,我一直在获取每个集群的术语,使用 'labels_' 没有帮助,因为它仅 returns 集群标签
编辑:已解决,下面的代码成功了,
print("Terms per cluster:")
for i in range(true_k):
print "Cluster %d:" % i,
T=X[model.labels_==i].indices
for ind in T:
print terms[ind]
print
如果我没理解错的话,你必须先拟合模型,即model.fit(X)
。要根据拟合模型访问属于集群 k
的 X
的元素,请执行 X[model.labels_==k]
.