当分母等于 0 时,准确率和召回率的正确值是多少?

机器算法验证 精确召回
2022-02-07 16:53:11

精度定义为:

p = 真阳性 /(真阳性 + 假阳性)

如果(真阳性 + 假阳性)= 0,精度的值是多少?它只是未定义吗?

召回的相同问题:

r = 真阳性 /(真阳性 + 假阴性)

在这种情况下,如果(真阳性 + 假阴性)= 0,召回的值是多少?

PS这个问题与边缘情况下精确率和召回率的正确值是什么问题非常相似?.

3个回答

链接的较早问题的答案也适用于此处。

如果(真阳性 + 假阴性)= 0,则输入数据中没有阳性案例,因此对该案例的任何分析都没有信息,因此没有关于如何处理阳性案例的结论。您想要 N/A 或与比率结果类似的东西,避免除以零错误

如果(真阳性 + 假阳性)= 0,则所有案例都被预测为阴性:这是 ROC 曲线的一端。同样,您希望识别并报告这种可能性,同时避免除以零错误。

这里提供了一个有趣的答案: https ://github.com/dice-group/gerbil/wiki/Precision,-Recall-and-F1-measure

该模块的作者根据真阳性、假阳性和假阴性是否都为 0 ,输出不同的精度和召回分数。如果是,则结果表面上是好的。

在极少数情况下,Precision 或 Recall 的计算可能会导致除以 0。关于精度,如果注释者的答案中没有结果,则可能会发生这种情况,因此,真阳性和假阳性均为 0 . 对于这些特殊情况,我们定义了如果真阳性、假阳性和假阴性都为0,则精度、召回率和F1-measure为1。这可能发生在金标准包含没有任何文档的文档的情况下注释和注释器(正确)不返回注释。如果真阳性为 0 且其他两个计数器之一大于 0,则准确率、召回率和 F1 度量为 0。

我不确定这种评分在特殊情况之外的其他情况下是否有用,但值得深思。

在高阈值下评估分类器时,当召回率为 0 时,精度可能(通常实际上)不是 1。通常为 N/A!我认为人们绘制 P/R 曲线的方式有问题。从避免奇点样本的意义上说,避免 N/A 样本是一种偏差。我计算了忽略 N/A 样本的平均召回率的平均精度,并且我从来没有得到一个分类器,从 1 开始,对于对象检测中的浅层神经网络的 0 召回。对于使用 tp,fp,fn 数计算的曲线也是如此。用纸和铅笔用一张图片很容易验证。例如:我有一个输出单个图像的分类器: preds=[.7 .6 .5 .1 .05] truth=[nynny ] 通过计算具有各种阈值的混淆矩阵:tp=[2 1 1 1 0 0],fn=[0 1 1 1 2 2],fp=[3 3 2 1 1 0]。召回rec=[1 .5 .5 .5 0 0],精度=[.4 .25 1/3 .5 0 NaN]。我看不出用 1 替换 NaN 或精度(@recall==0)有什么意义。1 应该是上限,而不是我们替换精度(@recall==0)的值。