【发布时间】:2021-03-01 15:58:16
【问题描述】:
我正在运行 k 均值算法 (k=5) 来对我的数据进行聚类。为了检查我的算法的稳定性,我首先在整个数据集上运行算法一次,然后在我的数据集的 2/3 上多次运行算法(使用不同的随机状态进行分割)。我使用结果来预测剩余 1/3 数据的集群。最后,我想将预测的集群与我在整个数据集上运行 k-means 时得到的集群进行比较。这就是我卡住的地方。
由于 k-means 总是为(或多或少)相同的集群分配不同的标签,我不能只比较它们。我尝试使用.value_counts() 根据标签的频率重新分配标签 0 到 4。但是因为我多次运行此检查,所以我需要一些可以循环工作的东西。
基本上当我使用.value_counts() 时,我会得到这样的结果:
PredictedCluster
4 55555
0 44444
2 33333
1 22222
3 11111
我希望我可以把它变成一个数组,其中的标签按大小排序:
a = [[4, 55555],[0,44444],...,[3,11111]]
谁能告诉我如何做到这一点或我可以使用哪些其他方法来解决我的问题?
【问题讨论】:
标签: python arrays pandas numpy k-means