为什么F-Measure是一个调和均值而不是精确和召回措施的算术平均值?

时间:2014-10-14 08:22:06

标签: machine-learning classification data-mining

当我们计算考虑精度和召回的F测量时,我们采用两个测量的调和平均值而不是简单的算术平均值。

采用调和均值而不是简单平均值背后的直观原因是什么?

5 个答案:

答案 0 :(得分:62)

要解释一下,例如,考虑30mph和40mph的平均值是多少?如果你以每个速度开车1小时,那么2小时内的平均速度确实是算术平均值,每小时35英里。

然而,如果你以每个速度驾驶相同的距离 - 比如10英里 - 则超过20英里的平均速度是30和40的调和平均值,大约34.3英里每小时。

原因是,为了使平均值有效,您确实需要将值设置为相同的缩放单位。每小时的里程需要在相同的小时数内进行比较;比较你需要平均每英里小时数相同的里程数,这正是调和平均值所做的。

精确度和召回率在分子和不同的分母中都有正数。为了平均它们,平均它们的倒数实际上是有意义的,因此调和平均值。

答案 1 :(得分:58)

因为它会更多地惩罚极端值。

考虑一个普通的方法(例如总是返回A类)。 B类有无限数据元素,A类有单个元素:

Precision: 0.0
Recall:    1.0

当取算术平均值时,它将有50%正确。尽管是最差可能的结果!使用调和平均值,F1测量值为0。

Arithmetic mean: 0.5
Harmonic mean:   0.0

换句话说,要拥有一个高F1,你需要两个具有高精度和召回。

答案 2 :(得分:21)

调和平均值等于应该用算术平均值平均的量的倒数的算术平均值。更确切地说,使用调和平均值,您可以将所有数字转换为"可平均值"形式(通过取倒数),你取其算术平均值然后将结果转换回原始表示(再次采用倒数)。

精确度和召回率自然是#34;倒数,因为它们的分子是相同的,它们的分母是不同的。当它们具有相同的分母时,通过算术平均值对分数更敏感。

为了更直观,假设我们保持真阳性项的数量不变。然后通过取精度和召回的调和平均值,你隐含地得到假阳性和假阴性的算术平均值。它基本上意味着当真正的积极因素保持不变时,误报和漏报对你来说同样重要。如果一个算法有N个假阳性项,但N个假阴性(同时具有相同的真阳性),则F-measure保持不变。

换句话说,F-measure适用于:

  1. 错误同样不好,无论是误报还是假阴性
  2. 相对于真实阳性的数量来衡量错误的数量
  3. 真正的否定是无趣的
  4. 第1点可能或可能不是,如果此假设不为真,则可以使用F-度量的加权变量。第2点是很自然的,因为如果我们只是对越来越多的点进行分类,我们可以预期结果会扩展。相对数字应该保持不变。

    第3点非常有趣。在许多应用中,否定是自然默认,甚至可能很难或任意指定真正的负面因素。例如,每当普朗克时间过去时,火警每秒,每纳秒都有一次真正的负面事件。即使是一块岩石也一直有这些真正的负面火灾探测事件。

    或者在面部检测案例中,大多数情况下您<#> 正确地没有返回&#34;图像中有数十亿个可能的区域,但这并不有趣。有趣的情况是,当你返回建议的检测时,或应该返回它时。

    相比之下,分类准确性同样关注真阳性和真阴性,如果样本总数(分类事件)定义明确且相当小,则更为合适。

答案 3 :(得分:15)

以上答案得到了很好的解释。这只是为了快速参考,以了解算术平均值的性质和图中的调和平均值。从图中可以看出,将X轴和Y轴视为精度和调用,将Z轴视为F1分数。因此,从调和均值的曲线来看,精度和召回都应该对F1得分的均匀贡献,而不像算术均值。

这是算术平均值。

enter image description here

这是为了谐波的意思。

enter image description here

答案 4 :(得分:1)

在这里,我们已经有了一些详尽的答案,但是我认为有关此问题的更多信息对于一些想深入研究(尤其是为什么使用F度量)的人会有所帮助。

根据度量理论,复合度量应满足以下6个定义:

  1. 连通性(可以订购两对)和传递性(如果e1> = e2并且e2> = e3则e1> = e3)
  2. 独立性:两个组成部分独立地影响其有效性。
  3. 汤姆森条件:假设在恒定的召回率(精确度)下我们发现两个精度值(召回率)在有效性上存在差异,则无法通过更改常数值来消除或逆转这种差异。
  4. 受限的溶解度。
  5. 每个组成部分都是必不可少的:一个组成部分的变化而另一个常量保持不变,则有效性会有变化。
  6. 每个组件的
  7. Archimedean属性。它只是确保组件上的间隔是可比较的。

然后我们可以derive and get发挥作用的功能: enter image description here

通常我们不使用有效性,而是使用简单得多的F得分because
enter image description here

现在我们有了F测度的一般公式:

enter image description here

我们可以通过设置beta来提高回忆性或准确性,因为beta的定义如下:

enter image description here

如果权重召回比精度更重要(选择了所有相关项),则可以将beta设置为2并获得F2度量。而且,如果我们进行反向运算和权重精度高于召回率(尽可能多的选定元素相关,例如在某些CoNLL语法错误纠正方案中),我们只需将beta设置为0.5并获得F0.5度量即可。很明显,我们可以将beta设置为1以获得最常用的F1度量(精度和查全率的谐和均值)。

我认为在某种程度上我已经回答了为什么我们不使用算术平均值。

参考文献:
1. https://en.wikipedia.org/wiki/F1_score
2. The truth of the F-measure
3. Information retrival