机器学习基础---分类评价指标---AP,mAP
AP和mAP是图像分类任务中的评价方法。
为什么需要PR曲线
Precision and Recall (PR曲线):用于稀有事件检测,如目标检测、信息检索、推荐系统。
负样本非常多(????_很大),因此???????????? = FP⁄(FP+TN)很小,比较TPR和FPR没有太大意义(ROC曲线中只有左边很小一部分有意义)
因此只讨论正样本
Precision and Recall (PR曲线):阈值变化时的P和R。
- Precison=TP/(TP+FP), 精度、准确率:预测结果为真的样本中真正为真的比例
- TPR/Recall=TP/(TP+FN) 召回率:预测结果召回了多少真正的真样本
特征:
PR曲线越往往右上角越好。
AP
- 首先,AP也是对所有图片内的某一类来说的。
-
AP: 对不同召回率点上的精度进行平均(即PR曲线下的面积):
mAP
物体检测中经常用mAP(Mean Average Percision, mAP)评价模型性能:
- mAP是针对多类来说的
- mAP:多个物体类别的AP的平均
- mAP的对象是所有类的所有图片,衡量的是学出的模型在所有类别上的好坏。
计算如下所示,其中C为类别数目.
AP的计算方法:
1、首先使用训练好的模型获得所有测试样本的confideutnce score,每个类别(如person、car等)都会获得一组confidence score,假设现在共有20个测试样本,如下给出这20个样本的id、confidence score、真实标签ground truth label。
2、按照上图中的score值从大到小对所有样本进行排序,排序后结果如下图所示:
3、计算precision和recall值
在计算之前首先举个例子通俗地解释一下什么是precision和recall。
precision(准确率):你预测出的结果有多少是正确的。
recall(召回率):正确的结果有多少被你给出来了。
假设一个不透明的盒子里有8个红球和3个蓝球,现在让你取出了所有红球,你取出来了5个球,但里面有3个红球,2个蓝球。
precision=3/5 指你取出来的5个球里面只有3个是正确的。
recall=3/8 指8个红球只有3个被你取出来了。
用(True Positive+False Positive)来表示分类任务中我们取出来的结果,如在测试集上取出Top-5的结果为
其中id为4和2的样本图片为True Positive,id为13、19、6的样本为False Positive。剩余排在Top-5之外的元素时我们没有取出来的。如下:
这个例子中precision=2/5,recall=2/6。
实际的任务中通常不会满足只用Top-5来衡量模型的好坏。
4、计算AP
设总数为N的样本中总共有M个正样本,则从Top-1至Top-N可以有M个recall值,分别为(1/M,2/M,…,M/M),对于每个recall值r,可以从对应的(r’>=r)中计算出一个最大的precision,对这M个precision求平均得到AP,如下图所示:
在上图所示中,共有6个正例,因此共有6个recall值,分别为1/6、2/6、3/6、4/6、5/6、6/6,
当recall=1/6时,r’为1/6、2/6、3/6、4/6、5/6、6/6,最大的precision=1;
当recall=2/6时,r’为2/6、3/6、4/6、5/6、6/6,最大的precision=2/2=1;
当recall=3/6时,r’为3/6、4/6、5/6、6/6,最大的precision=4/7;
当recall=4/6时,r’为4/6、5/6、6/6,最大的precision=4/7;
当recall=5/6时,r’为5/6、6/6,最大的precision=5/11;
当recall=6/6时,r’为6/6,最大的precision=6/16。
。
此时AP表示训练出来的模型在当前类别上的好坏。