PR曲线和ROC曲线主要用于训练算法的性能评估。
一、基础概念
首先要清除如何把两类分类问题正确的表示,因此要引入混淆矩阵的概念,如表下。
实际 | 预测结果 | |
正例 | 反例 | |
正例 | TP | FN |
反例 | FP | TN |
注:把正例正确地分类为正例,表示为TP(true positive)称为正阳,把正例错误地分类为负例,表示为FN(false negative)称为假阴。
把负例正确地分类为负例,表示为TN(true negative)称为正阴, 把负例错误地分类为正例,表示为FP(false positive)称为假阳。
举例:目前有一个算法要分类猫和狗(猫为正例,狗为负例),输入实例为猫,算法正确的预测为猫,那么就是TP为正阳,错误的预测为狗则是FN为假阴。同理,输入狗,正确的预测为狗就是TN为正阴,错误的预测为猫就是FP为假阳。
建议用正假阴阳记忆,不容易混淆。
阳:正例;阴:反例;正假表示是否正确预测。
二、PR曲线
PR曲线就是在以上的基础上选取不同的阈值得到不同的点连线而成。
二维图像坐标轴分别为召回率(查全率)和精确率(查准率)
精确率:precision = TP / (TP + FP),即正例所有被预测为正例中所占的比值
召回率:recall = TP / (TP + FN),即正确预测正例占所有正例的比值。
举个例子如下:(true这列表示正例或者负例,hyp这列表示阈值0.5的情况下,概率是否大于0.5)
那么根据这个表格我们可以计算:TP=6,FN=0,FP=2,TN=2。故recall=6/(6+0)=1,precison=6/(6+2)=0.75,那么得出坐标(1,0.75)。同理得到不同阈下的坐标,即可绘制出曲线。
PR曲线如下:
PR曲线所围成的面积越大表示性能越好
三、ROC曲线
ROC曲线和PR曲线原理类似,二维图像坐标轴分别为真阳率和假阳率。
其中,真阳率(TPR)就是ReCall召回率,假阳率,即将负例错误的预测为正例占所有预测为负例的占比。公式如下
同PR曲线设置阈值,大于这个阈值的值分类为1,小于这个阈值的值分类为0。ROC曲线就是我们从[0,1]设置一堆阈值,每个阈值得到一个(TPR,FPR)对,纵轴为TPR,横轴为FPR,把所有的(TPR,FPR)对连起来就得到了ROC曲线。
四、 PR曲线与ROC曲线的优缺点
ROC曲线:
(1)优点
1.兼顾正例和负例的权衡。因为TPR聚焦于正例,FPR聚焦于与负例,使其成为一个比较均衡的评估方法。适用于评估分类器的整体性能。 2.ROC曲线的两个指标, TPR的分母是所有正例,FPR的分母是所有负例,故都不依赖于具体的类别分布。
(2)缺点
在类别不平衡的背景下,当负例N的数量远超正例P时,FP的大幅增长只能换来FPR的增长不明显,导致ROC曲线呈现一个过分乐观的效果估计。 如果主要关心正例的预测准确性的话,这就不太可接受了。
PR曲线:
(1)优点
PR曲线的两个指标都聚焦于正例。类别不平衡问题中由于主要关心正例.
(2)缺点
只关注正例,不关注负例