ROC曲线和PR曲线

一 ROC曲线

1. 什么是ROC曲线?

2. 曲线的性质

3. ROC曲线的绘制:

4. ROC曲线的优点

5. ROC曲线的缺点

6. AUC值

二 PR曲线

1. 什么是PR曲线

2. PR曲线的绘制

三 ROC曲线和PR曲线的适用场景

1. ROC适用

2. PR适用


总结:

ROC 曲线可以用来评价分类器的效果好坏, 其横轴表示假警报率(聚焦于负例), 纵轴表示命中率(聚焦于正例),ROC曲线越接近于左上角越好

PR曲线也用来评估分类器的好坏, 横轴表示命中率(TPR召回率), 纵轴表示精确率(Precision), 曲线越接近右上角越好

AUC值是ROC曲线或者PR曲线的线下面积, 在衡量分类器效果时比曲线更加直观, 值越大说明分类器效果越好.

二者适用不同场景: ROC受类别分布变化影响小,适用于剔除类别分布变化影响来对分类器进行评估;

                                        聚焦于正例\负例,所以适用于衡量分类器整体性能

                               PR   适合评估类别分布不变的情况下, 分类对于正例的预测效果

                                       类别不平衡的时候, ROC过于乐观对于FP变大不敏感

一 ROC曲线

1. 什么是ROC曲线?

ROC曲线和PR曲线_第1张图片

横坐标: 假正率(FP rate, FPR),  FPR= \frac{FP}{FP+TN },  代表所有负样本错误预测为正样本的概率---假警报率

纵坐标: 真正率(TP rate, TPR), TPR= \frac{TP}{TP+FN},   代表所有正样本正确预测为正样本的概率---命中率

[其中:

TP:正确的肯定数目

FN:漏报,没有找到正确匹配的数目

FP:误报,没有的匹配不正确

TN:正确拒绝的非匹配数目]

2. 曲线的性质

  • 曲线越接近于左上角(0,1), 越偏离45度对角线, 说明分类器的性能越好.(真正理想的情况是TPR接近与1, FPR接近于0)
  • 对角线代表的是随机猜测模型(预测正确或者错误的概率相同,只与threshhold的设定有关)

3. ROC曲线的绘制:

假设对于一个二分类模型, 采用逻辑回归分类器, 其给出针对每个实例为正类的概率, 那么通过设定一个阈值(如:0.6). 概率大于等于0.6的为正类, 概率小于0.6的为负类. 对应的就可以计算出一组(FPR, TPR), 在平面上得出对应的坐标点.

随着阈值的逐渐减少, 越来越多的实例被划分为正类, 但是这些预测的正实例中也会掺杂着真正的负实例(所以FP增加, TN减少&&TP增加, FN减少), 所以假警报率和命中率都会升高. 

4. ROC曲线的优点

当测试集中的正负样本的分布变化的时候, ROC曲线能够保持不变.

因为命中率 (TPR =\frac{TP}{TP+FN}), 聚焦于正例;  假警报率  (FPR =\frac{FP}{FP+TN }), 聚焦于负例. 所以即使正例或负例的比例发生变化也不会影响二者的值,  ROC曲线也不会产生大的变化, 而precision使用的TP和FP就分属于两类, 则易受类别分布改变的影响.

5. ROC曲线的缺点

如果负例增加了很多(TN增加),而曲线却没变. 说明FP增加了很多. 结果是虽然大量负例被错判成正例,在ROC曲线上却无法直观地看出来。

[

举个例子:

对于ROC曲线:

假设数据集中有正例20个, 负例10000.

开始时有20个负例被错判, FPR =\frac{20}{10000}=0.002

接着又有20个负例被错判, FPR =\frac{20+20}{10000}=0.004, 这个变化在ROC曲线上的变化是很细微的

对于PR曲线: (假设TP=20)

Precision =\frac{20}{20+20}=0.5

Precision =\frac{20}{20+40}=0.33, 这个变化在PR上的变化是比较大的

]

6. AUC值

AUC值是ROC曲线下的面积, 显然这个面积不会超过1.又由于ROC曲线一般都位于对角线的上方,所以其面积不会小于0.5

所以有 0.5\leq AUC\leq 1

为什么要使用AUC值作为评价标准?

因为曲线很多时候并不能清晰的说明哪个分类器的效果更好, 而AUC作为一个数值越大说明分类器的效果越好, 可以更加直观.

二 PR曲线

1. 什么是PR曲线

即是精确率和召回率(命中率)曲线,

ROC曲线和PR曲线_第2张图片

横轴: 召回率(TPR)                 TPR =\frac{TP}{TP+FN}

纵轴: 精确率(Precision)         TPR =\frac{TP}{TP+FP}

与ROC曲线的相同点是都采用了TPR, 都可以用AUC值来衡量分类器的效果.不同的是ROC曲线使用FPR而PR曲线使用Precision,也就是说PR曲线的横纵轴都主要关心正例, 所以普遍认为PR优于ROC.

[对于上面例子中的数据:

ROC曲线和PR曲线_第3张图片

可以看出,上文中ROC曲线下的AUC值为0.8左右,而PR曲线的值为0.6左右. 所以在类别不平衡问题中, ROC曲线会做出比较乐观的估计,而PR曲线由于使用Precision会不断显现出FP的影响.

]

2. PR曲线的绘制

与ROC曲线的绘制方法相同, 即通过设定不同的阈值得到测试样本的分类结果, 然后计算出PR曲线的坐标点(精确率, 召回率)

阈值的设定(曲线上坐标点的获取)

分类器对样本进行分类的时候会给出每个样本是正例的置信度, 通过设定置信度阈值来决定哪些是正例哪些是负例.(例如: 设定阈值为0.5, 则大于等于0.5的预测为正例, 小于0.5的预测为负例)

具体方法

则根据置信度就可以对测试样本进行排序, 然后再逐个样本的选择阈值(划分点), 在该样本之前的都属于正例, 在该样本之后的都属于负例. 每一个样本的置信度作为划分阈值时, 都可以计算其相应的精确率和召回率, 因此可以绘制出PR曲线.

三 ROC曲线和PR曲线的适用场景

1. ROC适用

1. ROC曲线兼顾正例和负例, 所以适用于评估分类器的整体性能,相比之下PR曲线完全聚焦于正例.

2. 如果有多份数据存在不同的类别分布,这个时候如果想单纯的比较分类的器的性能且剔除类别分布改变的影响,则ROC比较适合

2. PR适用

1. 想要评估在相同的类别分布正例的预测情况

2. 类别不平衡问题中, ROC曲线会给出较乐观的估计,所以大部分时候还是PR更好

 

参考资料:

https://www.imooc.com/article/48072   机器学习之类别不平衡问题 (2) —— ROC和PR曲线

 

 

你可能感兴趣的:(深度学习基础)