为什么我们使用 F1 分数而不是互信息?

数据挖掘 机器学习 分类
2021-09-14 20:23:12

如果我们没有假阳性和假阴性的先验成本函数,我们经常使用最大化F1 分数的分类阈值。

这平衡了对精确度和召回率的要求。如果其中一个为 0,则 F1 分数为 0;如果我们有一个完美的分类,那么 F1 分数就是 1。

另一方面,我很难找到一个总体上最大化 F1 的科学理由,或者是我们需要最大化 F1 的业务问题。

F1 不对称。如果我们有一个 60/40 的二元分布并选择 40% 的类作为正类,并且我们将所有内容归类为正类,那么对于 0.4 的 F1 分数,我们将获得 100% 的召回率和 40% 的准确率。(如果我们将所有内容归类为负面,则 F1=0)。如果我们选择 60% 的类别为正面,并将所有内容分类为正面,我们得到的 F1 分数为 0.6。

为什么不使用互信息,从而最大限度地减少预测与实际的意外?

当我们通过最小化对数损失来估计概率时,我们也在最小化信息论意义上的KL 散度或熵或惊喜。如果 50/50 概率预测包含 1 位熵或意外,则最小化对数损失可以最小化我们的预测与实际中的熵或意外位数。

而在信息论中,如果我们没有概率并且想要测量噪声信号传递的信息,我们使用互信息

并且互信息是对称的,0代表全1或0的信号。在某种意义上预测所有的 1 或 0 不会提供有关响应变量的基本事实的信息。

在某种程度上,预测就像一个从现在到未来的嘈杂通道,而像互信息这样的信息论概念似乎是选择分类阈值的有根据的标准,而 F1 似乎是任意的。

有什么理由为什么 F1 比互信息更受欢迎?

1个回答

使用任何特定评估度量的原因应该基于任务的语义。推论:没有适合每项任务的独特评估方法。显然,还需要考虑技术限制,但恕我直言,仅考虑性能优化的技术方面是 ML 应用程序中最常见的错误。

例如,OP 提到了 F1 分数的非对称性:在某些任务中,使用非对称度量是完全有意义的,例如任何目标是提取特定元素的任务,例如命名实体识别。此外,对称性问题仅对二元分类有意义,并且许多任务涉及超过 2 个可能的类别。在这种情况下,通常使用微观或宏观 F 分数,但这又取决于人们想要测量的内容。同样重要的是要记住,单个指标始终是性能的简化,往往还有很多其他相关的方面。例如,特定类别的错误可能比其他类别的错误代价更高,例如在医疗预测系统的情况下,假阴性意味着患者没有得到可能挽救生命的治疗(请注意,通用 F 分数可以加权以考虑到这一点)。

性能度量的可解释性也非常重要。在许多应用程序中,需要估计某种非专家可以理解的平均错误率,否则 ML 系统对其用户来说只是一个神奇的黑匣子,这可能会导致严重的伦理和实际问题。