Scikit学习光谱聚类,每个聚类获取项目



我正在尝试使用谱聚类来聚类文本文档中存在的术语。在聚类之后,我希望得到每个聚类中存在的项。

我尝试的代码如下,

    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_'没有帮助,因为它只返回集群标签

编辑:解决,下面的代码完成了这个技巧,

    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)。根据拟合模型获取X中属于k簇的元素,执行X[model.labels_==k] .

最新更新