边缘情况下准确率和召回率的正确值是多少?

机器算法验证 精确召回
2022-01-26 09:27:57

精度定义为:

p = true positives / (true positives + false positives)

true positivesfalse positives接近 0 时,精度接近 1 是否正确?

召回的相同问题:

r = true positives / (true positives + false negatives)

我目前正在实施一个需要计算这些值的统计测试,有时分母为 0,我想知道在这种情况下要返回哪个值。

PS:请原谅不合适的标签,我想使用recallprecisionlimit,但我还不能创建新标签。

4个回答

给定一个混淆矩阵:

            predicted
            (+)   (-)
            ---------
       (+) | TP | FN |
actual      ---------
       (-) | FP | TN |
            ---------

我们知道:

Precision = TP / (TP + FP)
Recall = TP / (TP + FN)

让我们考虑分母为零的情况:

  • TP+FN=0 :表示输入数据中没有正例
  • TP+FP=0 :表示所有实例都被预测为负数

答案是肯定的。未定义的边缘情况发生在真阳性 (TP) 为 0 时,因为这是 P 和 R 的分母。在这种情况下,

  • 当 FN=0 时召回 = 1,因为 100% 的 TP 被发现
  • 当 FP=0 时精度 = 1,因为没有没有虚假的结果

这是@mbq 评论的重新表述。

我熟悉不同的术语。你所说的精确度就是阳性预测值(PPV)。你所说的回忆我称之为敏感性(Sens)。

http://en.wikipedia.org/wiki/Receiver_operating_characteristic

在敏感性(召回)的情况下,如果分母为零(正如 Amro 指出的那样),则没有阳性案例,因此分类没有意义。(这不会阻止 TP 或 FN 为零,这将导致限制灵敏度为 1 或 0。这些点分别位于 ROC 曲线的右上角和左下角 - TPR = 1 和 TPR = 0。 )

PPV的限制是有意义的。测试截止值可能设置得如此高(或低),以致所有病例都被预测为阴性。这是 ROC 曲线的原点。可以通过考虑 ROC 曲线在原点之前的最后一段来估计截止点到达原点之前的 PPV 的极限值。(这可能更好地建模,因为 ROC 曲线是出了名的嘈杂。)

例如,如果有 100 个实际正数和 100 个实际负数,并且 ROC 曲线的最终段从 TPR = 0.08,FPR = 0.02 逼近,则限制 PPV 将是 PPR ~ 0.08*100/(0.08*100 + 0.02*100 ) = 8/10 = 0.8 即 80% 的概率是真阳性。

在实践中,每个样本都由 ROC 曲线上的一段表示 - 水平表示实际负数,垂直表示实际正数。可以通过原点之前的最后一段来估计限制 PPV,但这将给出 1、0 或 0.5 的估计限制 PPV,这取决于最后一个样本是真阳性、假阳性(实际阴性)还是做出的TP 和 FP 相等。建模方法会更好,也许假设数据是双正态的 - 一个常见的假设,例如: http: //mdm.sagepub.com/content/8/3/197.short

这取决于您所说的“接近 0”​​是什么意思。如果假阳性和假阴性都以比真阳性更快的速度接近零,那么这两个问题都是肯定的。但除此之外,不一定。