基本概念
现在我们假设分类的目标有两类,一种是正例(Positive),另一种是负例(Negtive)。因此根据真实样例与预测样例的结果进行对比,我们可以如下表设计
真实情况 | 预测时正例 | 假例 |
gt正例 | TP | FN |
假例 | FP | TN |
1)True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数)
2)False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
3)False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
4)True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。
P代表Precision 即准确率,计算公式为 预测样本中实际正样本数 / 所有的正样本数 即 precision=TP/(TP+FP);我们易知TP+FP就是经过IOU过滤后的总量
R代表recall 即召回率, 计算公式为 预测样本中实际正样本数 / 预测的样本数即 Recall=TP/(TP+FN)。TP+FN就是真实样本总数
一般而言,Precision和recall两者是鱼和熊掌的关系,往往召回率越高,准确率越低
P-R曲线就是描述他们之间的关系的 如下图
P-R曲线是以precision为纵轴,recall为横轴的二维曲线。这个曲线是通过选取不同阈值时对应的P和R画出的
这里解释下这个阈值是怎么确定的,是根据什么确定的,阈值是置信度(类别概率,confidence score),取值范围0~1。比如阈值设置0.5,那么可以确定TP,FP,从而可以计算Precision和recall,不过这里的刷选是经过IOU之后再次进行确定。
选取大于等于这些Recall值时的Precision最大值,然后计算PR下的阴影面积作为AP值,通常来说一个越好的分类器,AP值越高。 详情看链接2
对应代码链接 https://blog.csdn.net/qq_35046132/article/details/90667211
总体趋势,精度越高,召回越低,当召回达到1时,对应概率分数最低的正样本,这个时候正样本数量除以所有大于等于该阈值的样本数量就是最低的精度值。
另外 每个类别都有一个AP值
mAP就是对每一个类别都计算出AP然后再计算AP平均值就好了
1,https://blog.csdn.net/hsqyc/article/details/81702437
2,https://www.zhihu.com/question/53405779/answer/382974995
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深度学习-目标检测的性能度量 reall ,precision P-R曲线,AP mAP - Python技术站