vij*_*555 6 python cluster-analysis machine-learning k-means scikit-learn
我正在学习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.
Run Code Online (Sandbox Code Playgroud)
我具有k均值的工作知识,并且了解tf-ids概念。
- 如何生成群集标签?
我不确定您的意思。除群集1,群集2,...,群集外,您没有群集标签n
。这就是为什么将其称为无监督学习的原因,因为没有标签。
您是说实际上拥有标签,并且想查看聚类算法是否恰好根据标签对数据进行了聚类?
在这种情况下,您链接到的文档提供了一个示例:
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_))
Run Code Online (Sandbox Code Playgroud)
- 如何识别集群成员以进行进一步处理。
预测(X)
参数:X:{类似数组的稀疏矩阵},形状= [n_samples,n_features]要预测的新数据。
返回:
标签:数组,形状[n_samples,]每个样本所属的簇的索引。
如果您不想预测新的事物,则km.labels_
应该对训练数据进行预测。
哦,这很容易
我的环境:scikit-learn 版本“0.20.0”
.labels_
只需使用文档中的属性:https: //scikit-learn.org/stable/modules/ generated/sklearn.cluster.KMeans.html
from sklearn.cluster import KMeans
import numpy as np
Run Code Online (Sandbox Code Playgroud)
工作示例:
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_)
Run Code Online (Sandbox Code Playgroud)
输出:
[2 2 3 3 3 0 0 1 1 1]
正如您所看到的,我们有 4 个簇,X_2D 数组中的每个数据示例都相应地分配了一个标签。
归档时间: |
|
查看次数: |
16768 次 |
最近记录: |