P-R曲线
P-R曲线,全称时precision-recall,纵轴为查准率(precision),横轴为查全率(recall)。
查准率的计算公式如下,表示所有预测为正例的数据中,真正例所占的比例,公式如下:。
查全率是指预测为真正例的数据占所有正例数据的比:
查准率和查全率是一对矛盾的度量,一般来说,precision高时,recall往往偏低,recall高时,precision往往偏低。
可以这么理解,我们通过降低阈值thresh,可以有效增加TP,进而提升recall值,但是同时也有更多的负例被预测为正例,即FP会增加,导致precision降低。图像如下:
如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可断言后者的性能优于前者,例如上面的A和B优于学习器C。但是A和B的性能无法直接判断,但我们往往仍希望把学习器A和学习器B进行一个比较,我们可以根据曲线下方的面积大小来进行比较,这就是AP值,对于多分类的任务,每一类都会有P-R曲线,进而会有一个AP值,因此往往会求取mAP作为这个分类任务的评定指标。
此外还可以用平衡点或者是F1值。平衡点(BEP)是查准率=查全率时的取值,如果这个值较大,则说明学习器的性能较好。
F1值的计算公式如下,F1值越大,我们可以认为该学习器的性能较好。
ROC曲线
ROC曲线表示的时TPR(真阳率)和FPR(假阳率)的关系。可以看出TPR在P-R曲线中就是召回率。
一般情况下,当TPR高的时候,负样本中被判定为正样本的数量也会变多,所以FPR会降低。
曲线如下,ROC曲线下的面积是模型准确率的度量,称为AUC。
两者的区别与选择
这里从两个角度来判断:
(1)应用场景
- ROC曲线:一般用于分类的场景,二分类多分类皆可。比如我们的测试集右正样本和负样本,通过测试就可以得到TPR和FPR。
- P-R曲线:一般用于目标检测领域。通过我们前面的介绍,可以看到precision表示预测为正例中有多少是真正的正例,即表示出了预测的准不准。在目标检测领域,例如典型的飞机、船检测,都是从图像中检测出上述目标,那么不可避免的就会有背景(FP)出现,进而可以计算precision。一个好的目标检测模型,P-R曲线下的面积(AUC)越大。
(2)正负样本不均衡下的鲁棒性
- ROC曲线:正负样本不均衡下更稳定。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。例如当负样本增加时,TPR是不变的,根据下式可知,FP同在分子和分母,则变化也不大,因此ROC的曲线变化不大。
- P-R曲线:受到正负样本分布影响较大。仍以上面的例子为例,当负样本增加时,recall是不变的,根据下式可知,FP在分母,则precision会明显的降低。
总结以下:
- 一般的分类任务,采用ROC曲线
- 当正负样本比例失调时,则ROC曲线变化不大,此时用PR曲线更加能反映出分类器性能的好坏。
mAP
mAP是P-R曲线在多类别目标检测下的应用。对于一个类别目标检测可以用一条P-R曲线来进行评估,对应的P-R曲线下的面积,称为AP值。
那么对应的,mAP(mean Average Precision)就是多类别目,各类别AP的平均值。