2015-07-03 44 views
-1

我在Python(scikit-learn)中使用K-Means對文本數據進行聚類。 如何獲取該行所屬的集羣?K-means文本數據聚類:獲取文本所屬的集羣

例: 數據=「紅,黃,藍的顏色」,「冰淇淋是我最喜愛的食物」,「你現在可以得到草莓味太冰淇淋」,​​「天空是藍色的」]

在用n_clusters = 2執行K-Means之後,我預計會形成兩個集羣st

「紅色,黃色和藍色是顏色」,「天藍色」在一個羣集中,「冰淇淋是我最喜歡的食物」,「你現在可以得到草莓味道的冰淇淋」。

我該如何得知這一點,即哪一行在哪個簇?

代碼K-手段:

vectorizer = TfidfVectorizer(stop_words='english') 
X = vectorizer.fit_transform(data) 
model = KMeans(n_clusters=true_k, init='k-means++', max_iter=500, n_init=20) 
model.fit(X) 

回答

2

嘗試使用predict功能。

實施例 -

model.predict(X) 

documentation -

預測(X)

預測在X每個樣品屬於最接近的羣集。

在矢量量化文獻中,cluster_centers_被稱爲代碼簿,並且由predict返回的每個值都是代碼簿中最近代碼的索引。

參數:
X:{陣列狀,稀疏矩陣},形狀= [N_SAMPLES次,n_features] 新數據來預測。

返回:
標籤:陣列,形狀[N_SAMPLES次,] 每個樣品屬於集羣的索引。

這似乎是返回每個樣本屬於的聚類索引數組。

也許你也可以使用 - fit_predict()函數。

您可以使用屬性 - cluster_centers_獲得集羣中心,在您的情況下 - model.cluster_centers_和每個樣本的標籤 - model.labels_