cluster-analysis - 计算聚类的 F 度量

标签 cluster-analysis data-mining precision-recall

谁能帮我一起计算F-measure?我知道如何计算召回率和准确率,但不知道对于给定的算法如何计算一个 F-measure 值。

例如,假设我的算法创建了 m 个集群,但我知道相同数据有 n 个集群(由另一个基准算法创建)。

我找到了一个 pdf 但它没有用,因为我得到的集体值(value)大于 1。pdf 的引用是 F Measure explained .具体来说,我读过一些研究论文,其中作者在 F-measure 的基础上比较了两种算法,它们的总值介于 0 和 1 之间。
如果你仔细阅读上面提到的pdf,公式是F(C,K) = ∑ |词 |/N * max {F(ci,kj)}
其中 ci 是引用集群,kj 是由其他算法创建的集群,这里我从 1 到 n 运行,j 从 1 到 m 运行。让我们说 |c1|=218 这里按照 pdf N=m*n 让说 m =12 和 n=10,我们得到了 j=2 的最大 F(c1,kj)。肯定 F(c1,k2) 在 0 和 1 之间。但是通过上面的公式计算的结果值我们将得到大于 1 的值。

最佳答案

术语 f-measure 本身没有详细说明。这是调和平均 ,通常是准确率和召回率。其实你甚至应该说 F1-score 如果您的意思是未加权的版本,因为您可以对两个输入值施加不同的权重。但是没有说哪个两个值是平均的(不是算术平均值的意思!)这并没有说明多少。

https://en.wikipedia.org/wiki/F1_score

请注意,值 必须在 0-1 值范围内 .否则,您之前会遇到错误。

在聚类分析中,常用的方法是将 F1-Measure 应用于对的准确率和召回率,通常称为“对计数 f-measure”。但是您也可以对其他值计算相同的平均值。

Pair-counting 有一个很好的特性,它不直接比较簇,所以当一个结果有 m 个簇,另一个有 n 个簇时,结果是明确定义的。然而,对计数需要严格的分区。当元素未聚类或分配到多个簇时,配对计数度量很容易超出 0-1 的范围。

  • E. Achtert, S. Goldhofer, H.-P. Kriegel, E. Schubert, A. Zimek
    聚类度量和视觉支持的评估
    国际。 session 。数据工程(ICDE 2012)
    http://www.computer.org/portal/web/csdl/doi/10.1109/ICDE.2012.128

  • 讨论其中一些指标(包括 Rand 指数等)并给出“对计数 F 度量”的简单解释。

    关于cluster-analysis - 计算聚类的 F 度量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12725263/

    相关文章:

    python - 如何在 python - networkx 包中根据边缘的密度和权重找到网络簇

    algorithm - 如何找到一组数据点的中心?

    matlab - 如何在 Matlab 中将簇标签与我的 'ground truth' 标签匹配

    python - UndefinedMetricWarning : Recall and F-score are ill-defined and being set to 0. 0 标签中没有真实样本。 'recall' , 'true' , 平均值, warn_for)

    java - 如何使用apache的DBSCANClusterer

    data-mining - 谁能给我有关真实数据的帮助

    r - 如何返回向量之间的唯一元素,同时保留这些唯一元素的源向量?

    cluster-analysis - 关于余弦相似度的一些问题

    machine-learning - 如果没有正/负含义,如何计算召回率和精度?

    machine-learning - ROC曲线和精确召回曲线