是 kmeans_lables 或 kmeans.predict 为数据集中的每个样本分配标签
Posted
技术标签:
【中文标题】是 kmeans_lables 或 kmeans.predict 为数据集中的每个样本分配标签【英文标题】:is kmeans_lables or kmeans.predict to assign label for each sample in dataset 【发布时间】:2022-01-04 01:58:26 【问题描述】:在对数据帧应用 kmeans 聚类后,我想为数据帧中的每个样本添加簇号。首先,我想知道 kmeans.lables_ 和 kmeans.predict() 是否返回相同的结果?我都试过了,但我发现不匹配。我想知道用哪一个?
from sklearn.cluster import KMeans
kmeans5 = KMeans(n_clusters=5, max_iter=20, verbose=1)
kmeans5.fit(wdf)
clusters5 = kmeans5.predict(wdf)
同样的方法,我初始化了kmeans3和kmeans2,得到了clusters3和clusters2然后我尝试了这个
wdf2=wdf.copy()
wdf2['c5']=clusters5
wdf2['l5']=kmeans5.labels_
wdf2['c3']=clusters3
wdf2['l3']=kmeans3.labels_
wdf2['c2']=clusters2
wdf2['l2']=kmeans2.labels_
我在wdf2[['c5','l5','c3','l3','c2','l2']].head(7)之后得到了以下内容,可以看到c5和l5是不匹配!。
id c5 l5 c3 l3 c2 l2
40419 0 2 2 2 1 1
41060 3 0 2 2 1 1
43284 3 3 2 2 1 1
45664 3 1 0 0 1 1
52014 3 0 2 2 1 1
53488 3 1 0 0 1 1
53895 0 2 2 2 1 1
谢谢
【问题讨论】:
【参考方案1】:它们应该在训练数据集上保持一致。
来自docs:
“此外,估计器将在最后一次迭代后重新分配标签,以使标签_与训练集上的预测一致。”
【讨论】:
是聚类,所以我使用的是fall数据集。我不知道为什么我得到不同的结果,你认为顺序不同吗? 如果您发布您正在使用的代码,那么我们可以为您提供更好的帮助。 我添加了代码并编辑了帖子以上是关于是 kmeans_lables 或 kmeans.predict 为数据集中的每个样本分配标签的主要内容,如果未能解决你的问题,请参考以下文章