评估K意味着使用python进行聚类

评估K意味着使用python进行聚类,python,scipy,Python,Scipy,我有一个类似的数据集,如下所示: 我使用以下代码执行了K均值聚类: from scipy.cluster.vq import kmeans, vq data=np.matrix(dataAll.ix[:,:-1]) centers, _ = kmeans(data, 3, iter=100) cluster, _ = vq(data, centers) 在这里,我想问一下如何评估k意味着聚类。我想获得精度、准确度、f度量值等值如果您有金标准/基本真值,您可以使用我的代码[]计算成对精度、召回

我有一个类似的数据集,如下所示:

我使用以下代码执行了K均值聚类

from scipy.cluster.vq import kmeans, vq
data=np.matrix(dataAll.ix[:,:-1])
centers, _ = kmeans(data, 3, iter=100)
cluster, _ = vq(data, centers)

在这里,我想问一下如何评估k意味着聚类。我想获得精度、准确度、f度量值等值

如果您有金标准/基本真值,您可以使用我的代码[]计算成对精度、召回率、FScore和NMI

请注意,这篇文章是用印度尼西亚语写的,但是不要担心,您可以跳过所有的解释,直接转到文章底部的代码。[我编写了Matlab和Python实现]
python代码是可用的分支

这些测试只有在您知道正确的集群标签应该是什么(即,您知道每个数据点属于哪个集群)的情况下才能工作。通常,这不是评估集群的方式,集群通常与无监督学习相关。因此,您可以考虑查看簇内方差和簇间差异。distances@inspectorG4dget我已经读过,k表示可以返回标签,所以我认为我们可以得到精度、准确度和f度量,因为我们已经知道每个数据的标签。我只是这样想,也许我错了。是的,k-means返回类标签。但是,如果不知道正确的标签,就无法测量精度/准确度,以检查k-means是否正确。这就是我在上一篇文章中所说的comment@inspectorG4dget是的,我知道了,谢谢:)@inspectorG4dget我正在编写我自己的应用程序,我知道类标签。那么我该如何评估呢?