目标检测中的评价指标: Precision、Recall、F-measure、mAP、ROC、AUC、BPR等

参考博文:【机器学习笔记】:一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC_Python数据科学-CSDN博客

一、混淆矩阵

混淆矩阵(Confusion matrix):

                                                     Actual class
Positive Negative

Predicted  class

Positive True Positive (TP) False Positive (FP)
Negative False Negative (FN) True Negative (TN)

True Positive (TP):将正样本预测为正(真正)

True Negative (TN):将负样本预测为负(真负)

False Positive (FP):将负样本预测为正(假正)→ 误报 (Type I error)

False Negative (FN):将正样本预测为负(假负)→ 漏报 (Type II error)

TP+TN:所有预测正确的样本;FP+FN:所有预测错误的样本

TP+FP:所有预测为正(P)的样本;TN+FN:所有预测为负(N)的样本

TP+FN:所有正样本,即Ground Truth(GT);TN+FP:所有负样本

TP+TN+FP+FN:所有样本

二、Accuracy、Precision、Recall、mAP、F-measure

1.准确率(Accuracy):预测正确的样本占总样本的百分比

Accuracy = \frac{TP+TN}{TP+TN+FP+FN}

虽然准确率可以判断总的正确率,但是在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在总样本中,正样本占90%,负样本占10%。对于这种情况,只需要将全部样本预测为正样本即可得到90%的高准确率。

2.精确率(Precision),又称为查准率:被正确预测的正样本占所有检出(预测为正)样本的百分比例,是针对预测结果而言的

Precision = \frac{TP}{TP+FP}

3.召回率(Recall),又称为查全率:被正确预测的正样本占所有正样本(Ground Truth)的比例,是针对原样本而言的

Recall = \frac{TP}{TP+FN}

注:Precision和Recall是相互排斥的 

4.平均精度(Average Precision, AP):精确率-召回率曲线(Precision-Recall Curve)下的面积

计算方法:目标检测中的mAP是什么含义? - 知乎

代码:pycocotools/cocoeval.py

计算流程:

P = TP + FP

N = TN + FN

GT = TP + FN

inference + (nms):

score >= score_threshold --> P(positives、dets)

score < score_threshold --> N(negatives)

evaluate:

iou_threshold = np.linspace(0.5, 0.95, 10)  *注意此处的iou_threshold和nms中的iou_threshold含义不同

iou(pred_bbox, gt_bbox) >= iou_threshold --> TP

iou(pred_bbox, gt_bbox) < iou_threshold --> FP

pred_bbox(dt)按score从大到小排序,分高的优先进行匹配。匹配时,给定一个dt,gt逐一与其进行匹配。

5.mAP:对每个class的AP求平均


遥感方向:

1.检出率

P_{d} = Recall = \frac{TP}{TP + FN}

2.漏检率、漏警率(Missing Alarm)

P_{m} = 1 - Recall = 1 - \frac{TP}{TP + FN} = \frac{FN}{TP + FN}

3.虚警率(False Alarm)

P_{f} = 1 - Precision = \frac{FP}{TP + FP}

4.F值(F-measure):precision和recall的加权调和平均

F\ measure = (1+\beta ^{2})\frac{Precision*Recall}{\beta ^{^{2}}*Precision+Recall}

当β=1时,称为F1-Score

三、Sensitivity、Specificity、TPR、FPR、ROC、AUC

1.灵敏度(Sensitivity)

Sensitivity = \frac{TP}{TP + FN}

2.特异度(Specificity) 

Specificity = \frac{TN}{TN+FP}

3.真正率(TPR)

 TPR = \frac{TP}{TP + FN}

4.假正率(FPR)

FPR = \frac{FP}{TN + FP}

5.ROC(Receiver Operating Characteristic,受试者工作特性曲线)

TPR和FPR分别在实际的正样本和负样本中来观察相关的概率问题,所以无论样本是否平衡,都不会被影响。因此ROC曲线选择FPR为横坐标,TPR为纵坐标。我们通过遍历所有score threshold来绘制ROC曲线。不同的score threshold下,预测的正样本和负样本是在不断变化的,相应的在ROC曲线也会不断变化。

详见:目标检测算法之评价标准和常见数据集盘点 - 知乎

6.AUC(Area Under Curve,曲线下面积)

如果连接ROC曲线对角线,它的面积正好是0.5。对角线的实际含义是:随机判断响应与不响应,正负样本覆盖率应该都是50%,表示随机效果。ROC曲线越陡越好,所以理想值就是1,即一个正方形,而最差的随机判断都有0.5,所以一般AUC的值是介于0.5到1之间的。

四、BPR

1.BPR(Best Possible Recalls)

《FCOS: Fully Convolutional One-Stage Object Detection》

BPR is defined as the ratio of the number of ground-truth boxes a detector can recall at the most divided by all ground-truth boxes. A ground-truth box is considered being recalled if the box is assigned to at least one sample (i.e., a location in FCOS or an anchor box in anchor-based detectors) during training.

你可能感兴趣的:(机器学习,概率论,r语言)