2015-09-26 81 views
2

我知道我可以使用scikit-learn使用以下代碼獲取K均值聚類中特定集羣的內容。譜集羣Scikit學習集羣中的打印項目

order_centroids = model.cluster_centers_.argsort()[:, ::-1] 
    terms = vectorizer.get_feature_names() 
    for i in range(true_k): 
     print "Cluster %d:" % i, 
     for ind in order_centroids[i, :10]: 
      print ' %s' % terms[ind], 
     print 

對於譜聚類,我如何進行相同的操作,因爲譜聚類沒有屬性'cluster_centers_'?我正在嘗試在文本文檔中對術語進行聚類。

回答

3

已更新: 對不起,我第一次沒有正確理解你的問題。

我認爲用Spectral Clustering做你想做的事是不可能的,因爲光譜聚類方法本身並不計算任何中心,它根本不需要它們。它甚至不在原始空間中的採樣點上運行,Spectral Clustering將您的數據集轉換爲不同的子空間,然後嘗試在此數據集上聚集點。而且我不知道如何在數學上反轉這個轉換。

A Tutorial on Spectral Clustering

也許你應該問你的問題上的SO數學相關的社區更多的理論。

spectral = cluster.SpectralClustering(n_clusters=2, eigen_solver='arpack', affinity="nearest_neighbors") 
spectral.fit(X) 
y_pred = spectral.labels_.astype(np.int) 

here

+0

仍然沒能得到每簇個體而言,使用labels_我剛得到像[2 2 0 0 2 3 1 2 2 2 2]的數組四個簇,但我需要爲了獲得每個集羣內的條款,是否有實現這一目標? – sand

+0

@sand,已更新。 –