【问题标题】:Plot of probability of false alarm and ROC curve虚警概率和 ROC 曲线图
【发布时间】:2013-01-18 05:09:28
【问题描述】:

对于使用视频的对象检测应用程序,如何绘制每个窗口的误报率与未命中率(或误报概率)和 ROC(接收器操作曲线)的关系图?如何确定误报和命中的数量?示例将非常有用。

【问题讨论】:

  • 你有测试集吗?误报只是机器认为是“真”而实际上是“假”的项目。

标签: c implementation probability false-positive roc


【解决方案1】:

它非常简单。将所有真阳性 (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个错误匹配。那么该列表包含哪些需要整理的内容?你也可以用代码解释一下吗?
  • @ShreyaM 好吧,如果不知道你的真阳性和真阴性,你就无法计算 ROC/DET 图......
  • 一般情况下,你加载的真阴性 (H1s) 多于 rue 阳性 (H0s)
  • 另外,要获得一个好的 ROC 图,您需要超过 20 次测试......只有 20 次,您会得到一个非常糟糕的图......
  • 所以,再次为打扰表示歉意,但你能用一个小例子解释一下真正的阳性和真正的阴性的数据实际上是什么......他们是否使用计数器确定,比如计算有多少匹配项.
猜你喜欢
  • 2013-01-26
  • 2015-11-24
  • 2014-07-20
  • 2016-11-06
  • 2020-04-18
  • 2018-01-03
  • 2019-12-26
  • 2016-01-13
  • 1970-01-01
相关资源
最近更新 更多