与 F1 相比,解释为什么不是一个好的衡量标准的最佳方法是什么?
为什么精确率和召回率的总和不是一个有价值的衡量标准?
并不是说 本身就是一个不好的衡量标准,只是就其本身而言,结果数字并不代表任何有意义的东西。不过,您走在正确的轨道上……我们正在寻找的是两种性能指标的综合平均值,因为我们不想在它们之间进行选择。
回想一下,精度和召回率定义为:
由于它们都有不同的分母,因此将它们加在一起会产生如下结果:
让我们回到将它们加在一起,并进行调整:将它们乘以 $\frac{1}{2}$,以便它们保持正确的比例,$[0-1]$。这是他们熟悉的平均值。 so that they are the stay in the correct scale, . This is taking the familiar average of them.
所以,我们有两个量,它们的分子相同,但分母不同,我们想取它们的平均值。我们做什么?好吧,我们可以把它们翻过来,取它们的倒数。然后你可以把它们加在一起。所以他们是“正面朝上”,你再次取反。
这个反相然后再反相的过程将“常规”均值变成调和均值。恰好准确率和召回率的调和平均值是F1 统计量。在处理比率时,通常使用调和平均值而不是标准算术平均值,就像我们在这里所做的那样。
最后,F1 统计量只是准确率和召回率的平均值,您使用它是因为您不想选择其中一个来评估模型的性能。
简短的回答是:您不会期望具有两个不同分母的两个百分比的总和具有任何特定含义。因此,采取平均措施的方法,例如 F1、F2 或 F0.5。后者至少保留一个百分比的属性。但是它们的含义呢?
Precision 和 Recall 作为单独的度量的美妙之处在于它们易于解释,并且它们可以很容易地与模型的业务目标相对应。精度衡量模型true positives分类的案例的百分比。召回衡量模型在所有案例中找到的百分比。对于许多问题,您必须在优化 Precision 或 Recall 之间做出选择。positivetrue positivestrue
任何平均度量都失去了上述解释,归结为您最喜欢哪种度量。F1 意味着要么你不知道你更喜欢召回还是精准,或者你对它们中的每一个都赋予相同的权重。如果您认为Recall 比Precision 更重要,那么您还应该在平均计算中为其分配更高的权重(例如F2),反之亦然(例如F0.5)。
将两者相加是一个不好的措施。如果您将所有内容标记为正面,您将获得至少 1 分,因为根据定义,这是 100% 的召回率。在此之上,你会得到一点精确的提升。F1 中使用的几何平均值强调了薄弱环节,因为它是乘法的;您至少必须在精确度和召回率方面都做得很好才能获得不错的 F1 分数。
在概率严重不对称的情况下,F1 分数特别有价值。
考虑以下示例:我们测试一种罕见但危险的疾病。让我们假设在一个拥有 1.000.000 人的城市中,只有 100 人被感染。
测试 A 检测到所有这 100 个阳性结果。但是,它也有 50% 的误报率:它错误地显示另外 500.000 人生病了。
同时,测试 B 漏掉了 10% 的感染者,但只给出了 1.000 个误报(0.1% 的误报率)
让我们计算分数。对于测试 A,精度将有效地为 0;召回率正好是 1。对于测试 B,精度仍然很小,大约为 0.01。召回率将等于 0.9。
如果我们天真地求和或取精度和召回率的算术平均值,这将为测试 A 提供 1 (0.5) 和测试 B 的 0.91 (0.455)。因此,测试 A 似乎稍微好一些。
然而,如果我们从实际的角度来看,测试 A 是毫无价值的:如果一个人被测试为阳性,他真正生病的机会是 50.000 分之一!测试B更有实际意义:你可以带1100人去医院仔细观察。F1 分数准确地反映了这一点:对于测试 A,它将接近 0.0002,对于测试 B:(0.01 * 0.9) / (0.01 + 0.9) = 0.0098,这仍然相当差,但大约好 50 倍。
这种分值与实际意义的匹配,正是F1分数的价值所在。