目标检测算法之评价指标
作者:互联网
1 混淆矩阵(Confusion Matrix)
说明:
假设有一个算法,其预测某种癌症的准确率为99.9%,这个算法好吗?99.9%看上去很高,但是如果这种癌症本身的发病率只有0.1%,即使不训练模型,直接预测所有人都是健康的,准确率也能达到99.9%,更极端的情况,如果这种癌症的发病率只有0.01%,算法预测的准确度还不如直接预测所有人都是健康的。对于这种极度偏斜的数据(癌症患者和健康的人的差别特别大)(skewed data),用准确率评价分类算法的好坏有局限性
解决方案:混淆矩阵
工具:混淆矩阵,以二分类为例
- 00代表9978人没有患病,模型预测9978人有没患病
- 01代表12人没患病,但是却预测了12人患病
- 10代表2人患病,模型却预测了2人没患病
- 11代表8人患病,模型也正确预测了8人患病
2、查准率和召回率
精准率:表示预测我们关注事件的准确率
1 是我们关注的部分
- TN:负样本被正确识别为负样本
- TP: 正样本被正确识别为正样本
- FN:正样本被错误识别为负样本
- FP:负样本被错误识别为正样本
召回率:所有的正样本中,被正确识别为正样本的比例。
3、PR曲线
改变识别阈值,使得系统依次识别前k张图片,阈值的变化同时会导致Precision和Recall值发生变化,从而得到曲线。曲线图如下:
- P-R曲线图可以直观的显示出学习器在样本总体上的查准率和召回率,在进行比较的时候,若一个学习器的P-R曲线被另外一个学习器完全包住,则可断言后者的性能优于前者,例如:图2.3中A的性能优于C的性能。
- 如果两个学习器的P-R曲线发生交叉,如2.3中的A与B,则很难断言谁的性能好,只能在具体的查准率和召回率条件下进行比较。
- 很多情况下,人们任希望把学习器A与B比出个高低,比较合理的就是比较P-R曲线下的面积,他在一定程度上表征了学习器在查准率和召回率取得相对双高的比例。但是这个值不太容易估计,因此,人们设计了一些综合考虑查准率和召回率的性能度量。
4、平均精度(Average-Precision,AP)和mAP
- AP就是Precision-Recall曲线下的面积,通常来说,一个越好的分类器,AP值越高。mAP就是AP的平均值。这个mean的意思是对每一个类的AP再求平均,得到的就是mAP值。mAP值的大小一定在[0,1]之间,越大越好。该指标是目标检测算法中最重要的一个。
5、ROC曲线
- ROC曲线的横轴是 假正率(False positive rate,FPR),FPR= FP/(TN + FP),代表所有的负样本中,被错误预测为正样本的概率。
- ROC曲线的纵轴 真正率(True positive rate,TPR),TPR= TP/(FP+TN),代表了所有正样本中预测正确的概率。
- (0,1)点,即左上角的坐标对应理想模型。曲线越接近左上角,代表模型的效果越好。
ROC曲线绘制
- 1 根据每个测试样本属于正样本的概率从大到小排序
- 2 从高到底,依次将‘Score’值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,认为是他是正样本,否则是负样本。
- 3 每次选取一个不同的threshold,我们可以得到一组TPR和FPR,即ROC曲线上的一点。当我们将threshold设置为1和0时,可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)连起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。
6、AUC(Area Uner Curve)
即为ROC曲线下的面积,AUC越接近于1,分类器的性能越好。AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然AUC值越大,当前算法可能将正样本排在负样本前面的概率越大,即更好的分类。
PR曲线和ROC曲线选用时机
目标检测中用的最多的就是MAP值,但我们最好了解一下PR曲线和ROC曲线的应用场景,在不同的数据集中选择合适的评价指标判断模型是否训练好了。
P-R 曲线
从P-R曲线的计算公式可以看出,PR曲线聚焦于正例。类别不平衡问题中主要关心正例,所以再次情况下PR曲线被广泛认为由于RPC曲线。
ROC曲线
- 当测试集中的正负样本的分布发生变化时,ROC曲线可以保持不变。因为TPR聚焦于正例,FPR聚焦于与负例,使其成为一个比较均衡的评估方法。
- 但是在关心正例的预测准确性的场景,ROC曲线就不能更好的反应模型的性能了,根据FPR公式 ,当负例N的数量远超正例P时,FP的大幅增长只能换来FPR的微小改变。结果是虽然大量负例被错判成正例,在ROC曲线上却无法直观地看出来。【 FTP= FP/(TN+FP)TN贼大,FP稍微多一点对结果来说变化不大】
总结:
- 相同类别分布,选择PR曲线
- 类别不均衡,选择ROC曲线。
IOU值
- 1、先为计算mAP值做了一个铺垫,即IOU值是如何影响Precision和Recall值的?比如在PASCAL VOC竞赛中用的IOU值是0.5,COCO竞赛中计算mAP值比较复杂,其计算了一系列的IOU值(0.05-0.95)下的mAP作为最后的mAP值。
- 2、要想得到PR曲线,首先要对模型的检测结果按照目标置信度降序排列,然后给定一个rank值,Recall和Precision仅在置信度高于该rank值的预测结果中计算,然后改变rank值,相应的就改变了Recall和Precision值,然后选择了11个不同的rank值,也得到了11组Precision和Recall值,然后AP值就是这11个Recall下Precision的平均值,其可以表征整个PR曲线下的面积。
- 3、还有另外一种差值的计算方式,即对于某个Recall值r,Precision取所有Recall值大于r中的最大值,这样PR曲线就是单调递减的(Recall是置信度降序排序,给定rank计算出来的,所以越来越小),避免曲线出现摇摆。
- 4、2010年后,计算AP值去了所有的数据点,不仅仅是11个Recall值,我们在计算出AP值后,就能计算出所有类别平均后的mAP值了,是目标检测算法用的最多的评价指标。
- 5、AP50,AP60,AP70等等代表什么意思?代表IOU阈值分别取0.5,0.6,0.7等对应的AP值。
标签:mAP,ROC,检测,曲线,Precision,算法,样本,Recall,评价 来源: https://blog.csdn.net/weixin_46263207/article/details/123222054