误警概率和ROC曲线的绘制

4
如何绘制一个关于误报率与漏检率(或虚警概率)和使用视频的目标检测应用中的ROC(接收器操作曲线)的每个窗口的图形?如何确定假阳性和正确检测的数量?一个例子会非常有用。

你有测试集吗?假阳性是指机器认为是“真实”的项目,但实际上它们是“虚假”的。 - amit
1个回答

2
很简单。将所有真正的正例(H0)值存储在一个数组中,将所有真正的负例(H1)值存储在另一个数组中。
对两个列表进行排序。
找到两个列表中的最高值和最低值。将范围除以适当的数字(例如1000),这将是您的步骤。
现在按步长从最小值到最大值进行步进。
对于每个评估值,在h0和h1数组中找到大于该值的点。将此索引除以h0 / h1数组中的值的数量并乘以100(给出百分比)。
假拒绝(fr)= h0索引百分比。
虚假接受(fa)= 100-(h1索引百分比)。
绘制fa与100-fr。
要计算EER,需要找到上述fr和fa之间的最小距离。
float diff = fabsf( fr - fa );
if ( diff < minDiff )
{
    minDiff = diff;
    minFr   = fr;
    minFa   = fa;
}

最后,EER的计算方法如下:

float eer = (minFr + minFa) / 2.0f;

编辑: H0和H1的值仅是得分值,表示您的匹配是否正确的“可能性”。您必须在某个地方计算这些数字,因为您必须根据此得分做出是否识别对象的决定。

H0列表是当您有确定匹配时获得的得分。H1列表是当您有确定的非匹配时获得的得分。


谢谢您的回复。但是,我不明白您所说的“将所有真正的阳性(H0)值存储在一个数组中,将所有真正的阴性(H1)值存储在另一个数组中。对两个列表进行排序”。它们是什么样的数字?假设我有20张要检测的物体图像。真实匹配数为15,剩下的5个是错误匹配。那么需要排序的列表包含什么?您能用代码解释一下吗? - Shreya M
@ShreyaM 嗯,如果不知道真正的阳性和真正的阴性,就无法计算ROC/DET图。 - Goz
通常情况下,真阴性(H1)的数量比真阳性(H0)的数量要多得多。 - Goz
很抱歉打扰您了,但是您能否用一个简单的例子来解释一下真正的积极和真负数据是什么...它们是否可以使用计数器来确定,例如计算有多少匹配项。 - Shreya M
@ShreyaM:你所说的“放置分数”是什么意思?这些值是概率。通常它们是对数似然(因为这是GMM和其他算法的输出),但得分可以是任何东西。通常情况下,得分越高,表示该得分代表胜利的可能性就越大。 - Goz
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接