ROC曲线 vs Precision-Recall曲线

参考1:ROC曲线 vs Precision-Recall曲线 - hedgehog小子 - 博客园

参考2:roc曲线 vs pr曲线(AUC vs f1)_ml_hhy的博客-CSDN博客

ROC曲线和AUC的定义可以参看“ROC曲线于AUC”,Precision-Recall曲线顾名思义即Precision为纵轴,Recall为横轴的曲线,作图方法与AUC曲线一致,只是横纵轴坐标意义不同。

ROC曲线 vs PR曲线——ROC曲线的优势

  相比P-R曲线,ROC曲线有个很好的特性:当测试集中的正负样本的分布发生变化的时候,ROC曲线能够保持稳定。在实际的数据集中经常会出现类不平衡现象,而且测试数据中的正负样本的分布也可能随着时间变化。下图是ROC曲线和Precision-Recall曲线的对比。

如下图:其中各图详情如下:

(a)和(c)为ROC曲线,

(b)和(d)为Precision-Recall曲线。

(a)和(b)展示的是分类器在原始测试集(正负样本分布平衡)的结果,

(c)和(d)是将测试集中负样本的数量增加到原来的10倍。(正负样本分布不均衡)

可以明显看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。这个特点让ROC曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能。

  PR曲线会面临一个问题,当需要获得更高recall时,model需要输出更多的样本,precision可能会伴随出现下降/不变/升高,得到的曲线会出现浮动差异(出现锯齿),无法像ROC一样保证单调性。所以,对于正负样本分布大致均匀的问题,ROC曲线作为性能指标更鲁棒。

                   (c) 负样本增加10倍后的ROC曲线对比图                                               (d)负样本增加10倍后的ROC曲线对比图            

PRC曲线的优势

  在正负样本分布得极不均匀(highly skewed datasets),负例远大于正例时,并且这正是该问题正常的样本分布时,PRC比ROC能更有效地反应分类器的好坏,即PRC曲线在正负样本比例悬殊较大时更能反映分类的真实性能。例如上面的(c)(d)中正负样本比例为1:10,ROC效果依然看似很好,但是PR曲线则表现的比较差。举个例子,

 单从图(a)看,这两个分类器都比较完美(非常接近左上角)。而从图(b)可以看出,这两个分类器仍有巨大的提升空间。那么原因是什么呢? 通过看Algorithm1的点 A,可以得出一些结论。首先图(a)和(b中)的点A是相同的点,因为TPR就是Recall,两者是一样的。

  假设数据集有100个正样本。可以得到以下结论(反推样本个数):

  由图(a)点A,可得:TPR=TP/(TP+FN)=TP/所有正样本 =TP/100=0.8,所以TP=80。

  由图(b)点A,可得:Precision=TP/(TP+FP)=80/(80+FP)=0.05,所以FP=1520。

  再由图(a)点A,可得:FPR=FP/(FP+TN)=FP/所有负样本=1520/所有负样本=0.1,所以负样本数量是15200。

  由此,可以得出原数据集中只有100个正样本,却有15200个负样本!这就是极不均匀的数据集。直观地说,在点A处,分类器将1600 (1520+80)个样本预测为positive,而其中实际上只有80个是真正的positive。 我们凭直觉来看,其实这个分类器并不好。但由于真正negative instances的数量远远大约positive,ROC的结果却“看上去很美”,因为这时FPR因为负例基数大的缘故依然很小。所以,在这种情况下,PRC更能体现本质。

ROC曲线与PRC曲线表现差异的原因

  为什么会有上面分析到的两者差异呢?下面摘自引用[1]的解释很清楚,FPR 和 TPR (Recall) 只与真实的正例或负例中的一个相关(可以从他们的计算公式中看到),而其他指标如Precision则同时与真实的正例与负例都有关,即下面文字说的“both columns”,这可以结合混淆矩阵和各指标的计算公式明显看到。

ROC曲线 vs PR曲线实际应用

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

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

结论--ROC vs PR 各自使用场景

1.调优观察模型时,使用auc值会更好衡量模型性能,因为受到测试集和验证集的分布影响小。
2.模型调优完毕,还需准备一份需求可能出现的分布的测试集,将这份测试集输入模型,输出一个精确率和召回率,作为给业务方模型的预期效果,也可以直观看出模型对现实可能出现的数据集的效果

思考 

 1、ctr预估显然是负例 远多于 正例,那为什么业界还普遍用ROC曲线而不是PRC曲线下的面积作为性能指标 

思考:

  我的思考是,对于ctr预估这个问题,我们需要一个于排序强相关的衡量指标,ROC与PRC都可以,而上面介绍了相比PRC,ROC具有鲁棒性的优势。ROC的缺点是对于ctr这种负例远多于正例的问题,其显示的图像和对应的AUC过于“乐观”,不能很好地反映分类器的真实性能,这意味着,即使算法的AUC约为0.8,看起来已经是一个比较好的值的,算法性能应该很不错,但是PRC曲线告诉我们,还没得很呢,还有很大提升空间。

  但是,对于ctr问题本身而言,AUC的高低确实可以衡量两个算法的性能优劣,算法A的AUC大于算法B,那么绝大部分情况下可以认为算法A优于算法B,即以AUC为指标进行模型的快速迭代和选择依然是合理的。

  另外很重要的一点是,相比于PRC曲线下的面积计算,AUC的计算更容易。

 2、随机猜测的PRC曲线是怎么样的?

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROC曲线(Receiver Operating Characteristic Curve)和PR曲线Precision-Recall Curve)是在二分类问题中常用的评估模型性能的工具,它们有一些区别和特点。 1. 目标不同: - ROC曲线关注的是真正例率(True Positive Rate,即召回率)与假正例率(False Positive Rate)之间的权衡。ROC曲线展示了在不同阈值下,分类器的敏感性和特异性之间的关系。 - PR曲线则关注的是精确率(Precision)与召回率(Recall)之间的权衡。PR曲线展示了在不同阈值下,分类器的预测准确性和查全率之间的关系。 2. 数据分布不平衡时的表现: - ROC曲线对于数据分布不平衡的情况下相对稳定,因为它使用了假正例率作为横轴,而假正例率不受真实负例数量的影响。 - PR曲线在数据分布不平衡时更能准确地反映分类器的性能,因为它使用了精确率作为纵轴,能够展示在正例中的正确预测比例。 3. 敏感性不同: - ROC曲线能够展示分类器在整个概率范围内的性能,对于不同的阈值都可以进行评估。 - PR曲线则更关注分类器在高概率(高置信度)区域的性能,对于低概率的预测结果较为敏感。 总而言之,ROC曲线主要用于评估分类器的整体性能,特别是在样本不平衡的情况下,而PR曲线则更适用于评估分类器在正例预测方面的性能。根据具体问题和需求,选择合适的曲线进行模型性能评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值