【问题标题】:Evaluating K means clustering using python评估 K 意味着使用 python 进行聚类
【发布时间】:2016-08-01 17:31:25
【问题描述】:

我有一个类似这样的数据集:

我已经使用此代码执行了 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 measure等值。

【问题讨论】:

  • 只有在您知道正确的集群标签应该是什么(即您知道每个数据点属于哪个集群)时,这些测试才有效。通常,这不是您评估聚类的方式,这通常与无监督学习相关。因此,您可能会考虑研究集群内差异和集群间距离
  • @inspectorG4dget 我读过this,k 表示可以返回标签,所以我认为我们可以得到精度、准确度和 f 度量,因为我们已经知道每个数据的标签。我只是喜欢那样,可能是我错了。
  • 是的,k-means 返回类标签。但是,如果不知道正确的标签,就无法测量精度/准确度,以检查 k-means 是否正确。这就是我在之前的评论中所说的
  • @inspectorG4dget 是的,我明白了,谢谢 :)
  • @inspectorG4dget 我正在编写自己的应用程序并且我知道类标签。那我该如何评价呢?

标签: python scipy


【解决方案1】:

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

请注意,这篇文章是印度尼西亚语,但不用担心,您可以跳过所有解释,直接进入文章底部的代码。 [我写了 Matlab & Python 实现] python 代码是 this work 的一个分支,可用于 here

【讨论】:

    猜你喜欢
    • 2017-08-28
    • 2020-04-20
    • 1970-01-01
    • 2018-01-22
    • 2015-09-18
    • 2013-06-04
    • 2013-05-17
    • 2020-09-06
    • 2019-04-23
    相关资源
    最近更新 更多