2015-07-03 15 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_