我正在尝试测量试图检测视频中对象的计算机视觉程序的性能。我有3个不同版本的程序,它们有不同的参数。 我对每个版本进行了基准测试,得到了3对(假阳性百分比,假阴性百分比)。
现在我想将这些版本相互比较,然后我想知道将误报和漏报结合到单个值中是否有意义并使用它来进行比较。例如,取等式falsePositives / falseNegatives,看看哪个更小。
答案 0 :(得分:6)
除了@alchemist-al提到的热门Area Under the ROC Curve (AUC)
指标外,还有一个得分结合了精确度和召回(在称TP / FP / TN / FN的术语称为F-measure,从0变为1(0表示最差,1表示最佳):
F-measure = 2*precision*recall / (precision+recall)
,其中
precision = TP/(TP+FP) , recall = TP/(TP+FN)
答案 1 :(得分:3)
其他几种可能的解决方案:
- 您的假阳性率(fp)和假阴性率(fn)可能取决于阈值。如果绘制y值为(1-fn)的曲线,x值为(fp),则绘制接收器 - 操作员特征(ROC)曲线。 ROC曲线下面积(AUC)是一种流行的质量指标。
如果存在某些感兴趣的区域,可以加权-AUC- 报告等误差率。对于某个阈值,fp = fn。报告此值。
答案 2 :(得分:1)
这取决于您在比较中需要多少细节。
结合这两个数字将给你一个整体的误差范围,但没有洞察到什么样的错误,所以如果你只是想知道整体意义上的“更正确”那么它就没问题了。
另一方面,如果您真的想要使用结果来更深入地确定该过程是否适合特定问题那么我会想象保持它们分离是一个好主意。 例如有时,假阴性是真实世界环境中误报的一个非常不同的问题。机器人是否只是避开了那里没有的物体......或者没有注意到它正从悬崖边走去?
简而言之,没有硬性和快速的全局规则来确定基于一个超级计算的有效视觉效果。这取决于您计划如何处理重要信息。
答案 3 :(得分:1)
您需要考虑“重要”假阳性与假阴性的相关程度。
例如,如果您的程序旨在识别人脸,则误报和误报同样无害,您可以将它们线性组合。
但是如果你的程序是为了检测炸弹而设计的,那么误报并不是一件大事(即当它实际上不是“这是一个炸弹”)而是假阴性(即说“这不是一个炸弹“当它实际上 时”将是灾难性的。
答案 4 :(得分:1)
嗯,一种传统的方法是为两种事件类型中的每一种分配权重(例如,一些整数以指示每种事件对模型验证的相对重要性)。然后,
将每个实例乘以 适当的加权因子;
然后将它们对齐;
总结条款;
取平方根
这会留下一个数字 - “总错误”。
答案 5 :(得分:1)
如果您想最大化真阳性和真阳性,您可以使用诊断效率:
诊断效率=灵敏度*特异性
WHERE ...
灵敏度= TP /(TP + FN)
特异性= TN /(TN + FP)
(TP =真阳性数,FN =假阴性数,TN =真阴性数,FP =假阳性数)
此指标适用于具有不平衡类数的数据集(即数据集偏斜)