MAP(Mean Average Precision) 、AP、精确率等评测指标个人总结
最近涉及到了MAP指标的学习,网上查找资料时,总找不到自己需要的,看了半天,还是半懂不懂的,因此,总结一下自己的看法,有错误的地方请路过的大佬指导一下。
混淆矩阵 |
预测结果 |
||
正例 |
反例 |
||
真实情况 |
正例 |
TP(真正例) |
FN(假反例) |
反例 |
FP(假正例) |
TN(真反例) |
理解MAP之前先了解一下混淆矩阵,不了解还真容易混淆(大概名字就是这么来的 /doge),假如我们将样本分为两类:正例和反例,那么就会出现下面四种情况:
//下面所表示的都是样本个数,设总样本数为10,6个正例,4个反例
TP (True positives ): 样本为正例,预测对了的个数,例如6个正例中我只预测对了5个,即TP=5
FN (False negatives):样本为正例,预测错了的个数,上面的例子,9个正例预测对5个,那么预测错了1个,即FN=1
FP (False positives ):样本为反例,预测错了的个数,假如4个反例中,我预测结果是1个正例,3个反例,即FP=1
TN (True negatives):样本为反例,预测对了的个数,有4个反例,FP=1,那么TN=4-1=3.
然后就是主要的评测指标
Precision (精确率)=
(预测正确的正样本数 / 预测的所有正样本数)
Recall(召回率)=
(预测正确的正样本数 / 所有正样本数)
Accuracy(准确率)=
(预测正确的样本数 / 所有样本数)
PR曲线:(以 recall 和 precision 作为 横、纵轴坐标 的二维曲线)
还需要知道平均精确度AP(Average Precision)
严格来说,平均精度是贯穿召回率从0到1间全部值对应的精确度的平均值:
也与曲线下面积相等, 在实践中,该积分的值近似于在每个可能的阈值处的精确度乘以召回率的变化值之和:
AP其实就是PR曲线下的面积。
于是MAP(Mean Average Precision)一目了然,即将每个类别的AP取平均值。
一般来说影响 mAP 的原因有很多,主要有以下几个:
- 不好的训练数据。
- 训练数据不够多。
- 标注的框不准确。
- 数据的多变性。
有的时候增加训练数据可能 mAP 并不会增加多少。当然了,使用表现更好的网络,其 mAP 自然地也会更加的高。