2015-10-06 38 views
1

我想使用譜聚類來對文本文檔中存在的術語進行聚類。在進行聚類之後,我想獲得每個羣集中存在的術語。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 

回答

1

如果我理解正確的話,你必須先擬合模型,即model.fit(X)。根據擬合模型訪問屬於集羣kX的元素,請執行X[model.labels_==k]