ROC曲线和P-R曲线选择

P-R曲线

P-R曲线刻画查准率和查全率之间的关系,其纵轴为查准率,横轴为查全率。

查准率指的是在所有预测为正例的数据中,真正例所占的比例,公式如下:例。

查全率是指预测为真正例的数据占所有正例数据的比:

查准率和查全率是一对矛盾的度量,一般来说,precision高时,recall往往偏低,recall高时,precision往往偏低。可以这么理解,我们通过降低判断为TP的阈值thresh,可以有效增加TP,进而提升recall值,但是同时也有更多的负例被预测为正例,即FP会增加,导致precision降低。

图像如下:

ROC曲线和P-R曲线选择_第1张图片

如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可断言后者的性能优于前者,例如上面的A和B优于学习器C。但是A和B的性能无法直接判断,但我们往往仍希望把学习器A和学习器B进行一个比较,我们可以根据曲线下方的面积大小来进行比较,这就是AP值,对于多分类的任务,每一类都会有P-R曲线,进而会有一个AP值,因此往往会求取mAP作为这个分类任务的评定指标。 

此外还可以用平衡点或者是F1值。平衡点(BEP)是查准率=查全率时的取值,如果这个值较大,则说明学习器的性能较好。

F1值的计算公式如下,F1值越大,我们可以认为该学习器的性能较好。

ROC曲线

曲线的坐标分别为真正例率(TPR)和假正例率(FPR),定义如下,可以看出TPR就是召回率。ROC观察模型正确地识别正例的比例与模型错误地把负例数据识别成正例的比例之间的权衡。TPR的增加以FPR的增加为代价

 曲线如下,ROC曲线下的面积是模型准确率的度量,称为AUC。

ROC曲线和P-R曲线选择_第2张图片

两者的区别与选择

既然已经这么多评价标准,为什么还要使用 ROC 和 AUC 呢?因为 ROC 曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC 曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。下图是 ROC 曲线和P-R曲线的对比:

ROC曲线和P-R曲线选择_第3张图片

说明:图a和b是原始样本的ROC曲线和PR曲线,图c和d是将负样本增加10倍后的ROC曲线和PR曲线。

(1)从a和c可以看出,负样本增加10倍后,ROC曲线变化不大。分析一下为什么变化不大,固定一个threshold来计算TPR和FPR,其Y轴是,x轴是,当负样本增加了10倍时,对TPR(recall)没有影响,FPR的分母(TN+FP)变大了,但是正常概率来讲,这个时候超过threshold的负样本量(FP)也会随之增加,也就是分子也会随之增加,所以总体FPR变化不大。

(2)从b和d图可以看出,负样本增加10倍后,PR曲线变化比较大。其纵轴为,当负样本增加时,FP会增加,这时候precision会急速减小。因此P-R曲线会有明显的降低。b和d图示也非常明显的反映了这一状况,所以PR曲线变化很大,所以PR曲线对正负样本分布比较敏感。

如何选择呢?

(1)在很多实际问题中,正负样本数量往往很不均衡。比如,计算广告领域经常涉及转化率模型,正样本的数量往往是负样本数量的1/1000,甚至1/10000。若选择不同的测试集,P-R曲线的变化就会非常大,而ROC曲线则能够更加稳定地反映模型本身的好坏。所以,ROC曲线的适用场景更多,被广泛用于排序、推荐、广告等领域。

(2)但需要注意的是,选择P-R曲线还是ROC曲线是因实际问题而异的,如果研究者希望更多地看到模型在特定数据集上的表现,P-R曲线则能够更直观地反映其性能。

(3)PR曲线比ROC曲线更加关注正样本,而ROC则兼顾了两者。

(4)AUC越大,反映出正样本的预测结果更加靠前。(推荐的样本更能符合用户的喜好)

(5)当正负样本比例失调时则ROC曲线变化不大,此时用PR曲线更加能反映出分类器性能的好坏。原因是,当样本严重倾斜时,我们假定召回率不变,那么表现较差的模型必然会召回更多的负样本,那么FP(假正例)就会迅速增加,precision就会大幅衰减。因此P-R曲线相比较于ROC曲线能够更加直观的表现模型之间的差异,更加合适。

你可能感兴趣的:(机器学习)