准确率(Accuracy), 精确率(Precision), 召回率(Recall) 和 F1-Measure
====
举个栗子:
假设我们手上有60个正样本,40个负样本,我们要找出所有的正样本,系统查找出50个,其中只有40个是真正的正样本,计算上述各指标。
- TP: 将正类预测为正类数 40
- FN: 将正类预测为负类数 20
- FP: 将负类预测为正类数 10
- TN: 将负类预测为负类数 30
准确率(accuracy) = 预测对的/所有 = (TP+TN)/(TP+FN+FP+TN) = 70%
精确率(precision) = TP/(TP+FP) = 80%
召回率(recall) = TP/(TP+FN) = 2/3
BTW, precision 和 recall 的抽取样本方式不同:召回率是从数据集的同一标签的样本抽样;而准确率是从已经预测为同一类别的样本抽样。
Precision, Recall, AP,mAP 粗定义
准确率 Precision = TP / (TP + FP)
简单来说,准确率只是表示,对一个物体进行预测(一定能得到 对于错 的反馈之一)。假如你对十个物体进行检测,其中三个反馈的信息是正确的,而七个反馈的信息是错误,那么你的 Precision = 3 / ( 3 + 7 ) = 30 %
召回率 Recall = TP / (TP + FN)
简单来说,召回率可以这样理解,就是对某一类物体的预测信息。假设,你有苹果和梨共20个,其中苹果10个,梨有10个,现在有一个预测机器对所有的物体品种进行了预测(假设预测不是苹果就是梨),其中预测出14个梨,6个苹果(6个苹果中,其中1个被预测错了)。
那么对于苹果的 recall = (6 - 1)/ 10 = 50 % , precision = 5 / 6 = 83 %
梨的 recall = ( 14 - 4 - 1) / 10 = 90% , precision = 9 / 14 = 64.2 %
AP( Average Precision )
类别 AP 是 P-R 曲线所围成下面积。具体计算可如下图所见:
这是一张,判定预选框和GT( Ground Truth ) 的对比。
通过这张图,我们可以将每个候选框的预测信息所标记出来。(这里我们设定IOU > 0.3 即为 True, 小于 0.3 即为 负)
根据这张图的信息,我们可以画出 P-R 曲线图。我们按照 置信度进行一次新的排序,就会更清晰明了。
由此可知,我们将这些点标记在坐标轴中:
然后根据此信息,画出其 P-R 曲线后进行计算。
mAP(mean Average Precision )
假设这里有非常多的物体类别,如,猫,狗,老鼠,牛,虎等等。那么每一项物体信息都会有其AP值的信息,这里将其做了一个平均操作。
【资料参考】
【1】https://github.com/rafaelpadilla/Object-Detection-Metrics
【2】https://www.zhihu.com/question/53405779
【3】 http://nooverfit.com/wp/david9%E7%9A%84%E6%99%AE%E5%8F%8A%E8%B4%B4%EF%BC%9A%E6%9C%BA%E5%99%A8%E8%A7%86%E8%A7%89%E4%B8%AD%E7%9A%84%E5%B9%B3%E5%9D%87%E7%B2%BE%E5%BA%A6ap-%E5%B9%B3%E5%9D%87%E7%B2%BE%E5%BA%A6%E5%9D%87/