参考博文:【机器学习笔记】:一文让你彻底理解准确率,精准率,召回率,真正率,假正率,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:所有样本
1.准确率(Accuracy):预测正确的样本占总样本的百分比
虽然准确率可以判断总的正确率,但是在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在总样本中,正样本占90%,负样本占10%。对于这种情况,只需要将全部样本预测为正样本即可得到90%的高准确率。
2.精确率(Precision),又称为查准率:被正确预测的正样本占所有检出(预测为正)样本的百分比例,是针对预测结果而言的
3.召回率(Recall),又称为查全率:被正确预测的正样本占所有正样本(Ground Truth)的比例,是针对原样本而言的
注: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.检出率
2.漏检率、漏警率(Missing Alarm)
3.虚警率(False Alarm)
4.F值(F-measure):precision和recall的加权调和平均
当β=1时,称为F1-Score
1.灵敏度(Sensitivity)
2.特异度(Specificity)
3.真正率(TPR)
4.假正率(FPR)
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之间的。
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.