PR曲线和ROC曲线

1.性能度量
性能度量是衡量模型泛化能力的评价标准,反映了任务需求;使用不同的性能度量往往会导致不同的评判结果。、
在预测任务中,给定样例集评估学习器的性能 f 也即把预测结果 f (x) 和真实标记比较。
对于分类任务,错误率和精度是最常用的两种性能度量:
错误率:分错样本占样本总数的比例
精 度:分对样本占样本总数的比例

统计真实标记和预测结果的组合可以得到“混淆矩阵


TP:真阳性
TN:真阴性
FP:假阳性
FN:假阴性
2.PR曲线
PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。

根据学习器的预测结果按正例预测可能性(概率值)大小进行排序。如目标检测问题,每确定一个概率值即可得到一组P-R值,对概率值从大到小循环后可以得到“P-R曲线
举例:
Inst#是样本序号,图中有20个样本。Class是ground truth 标签,p是positive样本(正例),n当然就是negative(负例) score是我的分类器对于该样本属于正例的可能性的打分。因为一般模型输出的不是0,1的标注,而是小数,相当于置信度。

然后设置一个从高到低的阈值T,大于等于阈值T的被我正式标注为正例,小于阈值T的被我正式标注为负例。

显然,我设置n个阈值,我就能得到n种标注结果,评判我的模型好不好使。

如上图:真实情况 正例p 反例n 各有10个。

0.9作为阈值(大于等于0.9为正例,小于0.9为反例),此时TP=1,FP=0,FN=9,故P=1,R=0.1。
用0.8作为阈值,此时TP=2,FP=0,FN=8,P=1, R=0.2。
用0.7作为阈值,此时TP=2,FP=1,FN=7,P=0.67,R=0.2。
用0.6作为阈值,此时TP=3,FP=1,FN=6,P=0.75,R=0.3。
以此类推。。。
最后得到一系列P、R值序列,就画出P-R曲线(示意图,不对应上面数据):

PR曲线分析:

显然,P-R 曲线越靠近右上角性能越好。
如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可断言后者的性能优于前者,例如上面的A和B优于学习器C。但是A和B的性能无法直接判断,我们可以根据曲线下方的面积大小来进行比较,但更常用的是平衡点或者是F1-score。
平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好。
F1 = 2 * P * R /( P + R ),F1-score综合考虑了P值和R值,是精准率和召回率的调和平均值, 同样,F1值越大,我们可以认为该学习器的性能较好。

3.ROC曲线
类似P-R曲线,根据学习器的预测结果(概率)对样例排序,并逐个作为正例进行预测,以“假正例率(False Positive)”为横轴,“真正例率(True Positive)”为纵轴可得到ROC曲线,全称“受试者工作特征”.(Receiver Operating CharacteristicCurve)

(1)真正类率(True Postive Rate),代表分类器预测的正类中实际正实例占所有正实例的比例。
(2)负正类率(False Postive Rate),代表分类器预测的正类中实际负实例占所有负实例的比例。
我们可以发现:TPR=Recall。

ROC曲线也需要相应的阈值才可以进行绘制,原理同上的PR曲线。
用0.9作为阈值,此时TP=1,FP=0,FN=9,TN=10,故TPR=0.1,FPR=0。
用0.8作为阈值,此时TP=2,FP=0,FN=8,TN=10,故TPR=0.2,FPR=0。
用0.7作为阈值,此时TP=2,FP=1,FN=8,TN=9,故TPR=0.2,FPR=0.1。
用0.6作为阈值,此时TP=3,FP=1,FN=7,TN=9,故TPR=0.3,FPR=0.1。
以此类推。。。
最后的ROC曲线如下图:

ROC曲线图中的四个点
第一个点:(0,1),即FPR=0, TPR=1,这意味着FN=0,并且FP=0。这是完美的分类器,它将所有的样本都正确分类。
第二个点:(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。
第三个点:(0,0),即FPR=TPR=0,即FP=TP=0,可以发现该分类器预测所有的样本都为负样本(negative)。
第四个点:(1,1),分类器实际上预测所有的样本都为正样本。经过以上的分析,ROC曲线越接近左上角,该分类器的性能越好。

4.PR曲线和ROC曲线的关系
PR曲线和ROC曲线都能评价分类器的性能。如果分类器a的PR曲线或ROC曲线包围了分类器b对应的曲线,那么分类器a的性能好于分类器b的性能。
PR曲线和ROC曲线有什么联系和不同:
相同点:
首先从定义上PR曲线的R值是等于ROC曲线中的TPR值。
都是用来评价分类器的性能的。
不同点:
ROC曲线是单调的而PR曲线不是(根据它能更方便调参),可以用AUC的值得大小来评价分类器的好坏(是否可以用PR曲线围成面积大小来评价呢?)。
正负样本的分布失衡的时候,ROC曲线保持不变,而PR曲线会产生很大的变化。

a)(b)分别是正反例相等的时候的ROC曲线和PR曲线
(c)(d)分别是十倍反例一倍正例的ROC曲线和PR曲线
可以看出,在正负失衡的情况下,从ROC曲线看分类器的表现仍然较好(图c),然而从PR曲线来看,分类器就表现的很差。
事实情况是分类器确实表现的不好(分析过程见知乎 qian lv 的回答),是ROC曲线欺骗了我们。

来源:https://blog.csdn.net/W1995S/article/details/114989313?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166771911216782412591027%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166771911216782412591027&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-114989313-null-null.142v63pc_rank_34_queryrelevant25,201v3control_1,213v1t3_esquery_v2&utm_term=pr%E6%9B%B2%E7%BA%BF%E5%92%8Croc%E6%9B%B2%E7%BA%BF&spm=1018.2226.3001.4187

posted @ 2022-11-06 16:13  李仁真  阅读(944)  评论(0编辑  收藏  举报