如何在kmeans-scikit中识别集群标签学习



我正在学习python scikit。这里给出的例子显示每个集群中出现最多的单词,而不是集群名称。

http://scikit-learn.org/stable/auto_examples/document_clustering.html

我发现km对象有"km.label",它列出了质心id,也就是数字。

我有两个问题

1. How do I generate the cluster labels?
2. How to identify the members of the clusters for further processing.

我有k-means的工作知识,也知道tf-ids的概念。

  1. 如何生成集群标签

我不知道你说的是什么意思。除了集群1、集群2、…之外,没有其他集群标签。。。,簇CCD_ 1。这就是为什么它被称为无监督学习,因为没有标签。

你的意思是你真的有标签,你想看看聚类算法是否碰巧根据你的标签对数据进行了聚类?

在这种情况下,您链接到的文档提供了一个示例:

print("Homogeneity: %0.3f" % metrics.homogeneity_score(labels, km.labels_))
print("Completeness: %0.3f" % metrics.completeness_score(labels, km.labels_))
print("V-measure: %0.3f" % metrics.v_measure_score(labels, km.labels_))
  1. 如何识别集群的成员以进行进一步处理

请参阅KMeans的文档。特别是predict方法:

预测(X)

参数:X:{类数组,稀疏矩阵},shape=[n_samples,n_features]要预测的新数据。

退货:
标签:阵列,形状[n_samples,]每个样本所属集群的索引。

如果你不想预测一些新的东西,km.labels_应该对训练数据这样做。

哦,很简单

我的环境:scikit学习版"0.20.0"

只需使用文档中的属性.labels_:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

from sklearn.cluster import KMeans
import numpy as np

工作示例:

x1 = [[1],[1],[2],[2],[2],[3],[3],[7],[7],[7]]
x2 = [[1],[1],[2],[2],[2],[3],[3],[7],[7],[7]]
X_2D = np.concatenate((x1,x2),axis=1)
kmeans = KMeans(n_clusters=4, init='k-means++', max_iter=300, n_init=10, random_state=0)
labels = kmeans.fit(X_2D)
print(labels.labels_)

输出:

[2 2 3 3 3 0 0 1 1 1]

正如您所看到的,我们有4个集群,X_2D数组中的每个数据示例都被相应地分配了一个标签。

相关内容

  • 没有找到相关文章

最新更新