一、ROC曲线

ROC全称为接收者操作特性曲线(Receiver Operating Characteristics Curve,ROC Curve),在机器学习领域,它是指在不同阈值的情况下,将得到的真阳性率和假阳性率分别作为x,y坐标值,在图上绘点,然后以点连线,这样所绘制出来的曲线称为ROC曲线。

1. 真阳性率与假阳性率的定义

现有混淆矩阵如下所示:

实际类别 预测类别
总计
TP FN P(实际上为该类的)
FP TN N(实际上不是该类的)

表中各指标如下所示:

(1)True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数);

(2)False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

(3)False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

(4)True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

根据以上指标,我们可以计算真阳性率(TPR)和假阳性率(FPR):

TPR=TPTP+FN=TPPTPR = \dfrac{TP}{TP+FN} = \dfrac{TP}{P}TPR=TP+FNTP​=PTP​
FPR=FPFP+TN=FPNFPR = \dfrac{FP}{FP+TN} = \dfrac{FP}{N}FPR=FP+TNFP​=NFP​

2. ROC曲线的绘制

ROC曲线上的每一个点代表在某个特定阈值下所计算得到的真阳性率和假阳性率。

举例说明,先我们有六个番茄样本,其编号分别为1,2,…6。现有一个模型用于预测这些番茄是好的还是坏的,番茄的编号和真实情况分别如下(我们将其按预测为好番茄的概率从上至下排列)。

编号 真实类别 预测值
1 好番茄 0.95
2 烂番茄 0.80
3 好番茄 0.73
4 好番茄 0.59
5 烂番茄 0.47
6 好番茄 0.40

(1)假设我们设定的阈值为0.96,那么所有番茄都被预测为烂番茄,此时TPR=0,FRP=0
(2)假设我们设定的阈值为0.9,也就是只要番茄1被预测为好番茄,其他由于低于阈值被判定为烂番茄,这时我们可计算得到TPR=1/4=0.25, FPR=0
(3)一次类推,通过设定不同的阈值可以得到一组TPR和FPR,即
[0, 0.25, 0.25, 0.5, 0.75, 1]和[0, 0, 0.5, 0.5, 0.5, 1, 1]

因此可得ROC曲线为:

二. AUC 评价指标

AUC(Area Under Curve),指的是ROC曲线下的面积。同时它表示随机选出由一个正例和一个负例组成的样本对,正例的预测值大于负例预测值的概率。因此它可以用来评价分类器的分类效果。

这里有一个比较容易疑惑的点,也就是为什么AUC可以表示正例预测值大于负例预测值的概率?下面我们将结合具体例子解释。

首先按照一般的概率统计方法,为了获取随机选出由一个正例和一个负例组成的样本对,正例的预测值大于负例预测值的概率,我们要统计每一个正例-负例对,以得到正例预测值大于负例预测值的频率,以频率估计概率。比如,在下表中,我们有4个好番茄,2个烂番茄,所以共有8个正例-负例对,而这8个正例-负例对当中,正例概率值大于负例概率值的有4对,所以正例预测值大于负例预测值的概率被估计为4/8=0.5

编号 真实类别 预测概率
1 好番茄 0.95
2 烂番茄 0.80
3 好番茄 0.73
4 好番茄 0.59
5 烂番茄 0.47
6 好番茄 0.40

下面我们看AUC的定义是否跟上述所要求的概率等价。

我们不妨将上述的ROC曲线稍加变换,即将TPR和FPR分别替换为TP和FP的数量,记为TPN和FPN,则ROC曲线变换为下图:

在上图点2所代表的阈值处,我们统计番茄2及其之前的正例预测值大于负例预测值的正例-负例对,可以看到番茄2为负例,番茄1为正例,满足条件的正例-负例对为1,正好等于点2所对应的x坐标与y坐标的乘积(黄色区域面积),这里黄色区域面积的意义就是增加了一个烂番茄,看之前一共有几个好番茄(y轴坐标),那么此时就可知正例-负例对有几对。

再看到点5,此时又增加了一个烂番茄,蓝色区域面积代表前面一共有几个好番茄(即多少个正例-负例对)。

因此,可以看到,在样例按预测值从大到小排列后得到的ROC曲线面积正好代表了正例预测值大于负例预测值的正例-负例对的个数。

当我们从由FPN和TPN构建的ROC曲线回到由FPR和TPR构建的ROC曲线时,其实就是做一个归一化,此时ROC曲线下面积等价于(正例-负例对的个数/(P*N)),这恰恰是一开始所提到的随机选出由一个正例和一个负例组成的样本对,正例的预测值大于负例预测值的概率。

因此AUC(Area Under Curve),既指的是ROC曲线下的面积,又可以表示随机选出由一个正例和一个负例组成的样本对,正例的预测值大于负例预测值的概率。

三. 为什么要使用AUC 评价指标

因为ROC曲线有一个很好的特征:在实际的数据集中经常会出现类别不平衡现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间而变化。而在这种情况下,ROC曲线能够保持不变(ROC曲线的x,y坐标可以看成是正例和(1-负例的召回率),PR曲线的x,y则是precision-recall,当负样本明显增加时,随着阈值取值不断降低,被判为正例的样本越来越多,此时正例准确率大幅下降,recall略微增加,也就是x基本不变,y大幅下降。而对于ROC曲线,在x,y都很小时与未增加负样本时一致,到后期则是x增加,y基本不变(后期FP会明显增多,但是由于增加了负样本N本身也很大,所以FP/N在添加负样本前和负样本后变化不大)。下图是ROC曲线和Precison-Recall曲线的对比:

在上图中,a和c为ROC曲线,b和d为Precison和Recall曲线。a和b展示的是在原始测试集(正负样本平衡)的结果,c和d是将测试集中负样本的数量变为原来的10倍后分类器的结果。可以看出,曲线基本保持不变,而Precison和Recall变化较大。

四、参考资料

【1】https://blog.csdn.net/yinyu19950811/article/details/81288287
【2】https://blog.csdn.net/qq_40765537/article/details/105344798
【3】https://zhuanlan.zhihu.com/p/384494429

ROC曲线和AUC评价指标:为什么AUC可以表示正例预测值大于负例预测值的概率?相关推荐

  1. 如何直观理解AUC评价指标?

    导语 最近一直在思考如何直观理解AUC,查了维基百科的以及网上的讲解描述,感觉仍然很难把这个概念表述得通俗易懂,直到昨天周会后拿笔在纸上画了画,感觉似乎找到了一种比较有意思的理解方法,下面就请各位看官 ...

  2. 【性能评估】ROC曲线

    1.混淆矩阵(confusion matrix) 针对预测值和真实值之间的关系,我们可以将样本分为四个部分,分别是: 真正例(True Positive,TP):预测值和真实值都为1 假正例(Fals ...

  3. 分类模型-评估指标(2):ROC曲线、 AUC值(ROC曲线下的面积)【只能用于二分类模型的评价】【不受类别数量不平衡的影响;不受阈值取值的影响】【AUC的计算方式:统计所有正负样本对中的正序对】

    评价二值分类器的指标很多,比如precision.recall.F1 score.P-R曲线等.但这些指标或多或少只能反映模型在某一方面的性能.相比而言,ROC曲线则有很多优点,经常作为评估二值分类器 ...

  4. 【机器学习基础】TP,TN,FP,FN,Precision,Recall,PR曲线,AP,MAP,TPR,FPR,ROC曲线,AUC值等的解释

    1.TP,TN,FP,FN: 下面两个图说的就很明白了吧.左侧有点混淆矩阵的感觉     P:标签为正样本.     N:标签为负样本.     T:预测对了.     F:预测错了     TP:正 ...

  5. ROC曲线和AUC指标

    5.1 ROC 曲线¶ ROC 曲线:我们分别考虑正负样本的情况: 正样本中被预测为正样本的概率,即:TPR (True Positive Rate) 负样本中被预测为正样本的概率,即:FPR (Fa ...

  6. 【深度学习中模型评价指标汇总(混淆矩阵、recall、precision、F1、AUC面积、ROC曲线、ErrorRate)】

    深度学习中模型好坏的所有评价指标汇总(混淆矩阵.recall.precision.F1score.AUC面积.ROC曲线.ErrorRate) 导航 0.混淆矩阵 1.AUC面积 2.ROC曲线 3. ...

  7. 【20210914】【机器/深度学习】模型评价指标:精确率、召回率、特异性、敏感性、F1-score、ROC曲线、AUC

    一.区分精确率.召回率和特异性.敏感性 在数据科学中,查看精确率和召回率来评估构建的模型是十分常见的.而在医学领域,通常使用特异性和敏感性来评估医学测试.这一点在兆观的论文.以及 xxx院的沟通过程中 ...

  8. 分类模型性能评价指标:混淆矩阵、F Score、ROC曲线与AUC面积、PR曲线

    以二分类模型为例:二分类模型最终需要判断样本的结果是1还是0,或者说是positive还是negative. 评价分类模型性能的场景: 采集一个称之为测试集的数据集: 测试集的每一个样本由特征数据及其 ...

  9. Detection:目标检测常用评价指标的学习总结(IoU、TP、FP、TN、FN、Precision、Recall、F1-score、P-R曲线、AP、mAP、 ROC曲线、TPR、FPR和AUC)

    目录 前言 1. IoU 2. TP.FP.TN.FN 2.1 混淆矩阵 2.2 TP.FP.TN.FN的定义 2.3 TP.FP.TN.FN在目标检测中的对应内容 2.3.1 TP,FP在目标检测中 ...

最新文章

  1. 如何探测局域网中某台主机是否开机_如何选购倒车雷达 倒车雷达的选购和安装方法...
  2. Linux下php5.3编译oracle客户端
  3. 大数据入门级学习路线
  4. html没有css还有用吗,如果css足够强大了,你还会用编程的方式实现去实现css已有的功能吗?_html/css_WEB-ITnose...
  5. .NET源码反编译和加密
  6. maven项目创建过慢解决
  7. HDU5853 Jong Hyok and String(二分 + 后缀数组)
  8. IE9:为什么 Acid3 无足轻重
  9. CRM呼叫中心异步搜索实现的调试截图
  10. centos7下的elasticsearch-6.2.4安装
  11. 复合型网络拓扑结构图_网络拓扑结构大全和图片星型总线型环型树型分布式网状拓扑结构...
  12. python 一题多解 —— ndarray 一维数组的拼接
  13. 介绍Unity中相机的投影矩阵与剪切图像、投影概念
  14. c++自动抢购_小黄人汽车手机支架多功能出风口高档可充电全自动导航卡通支架2元优惠券券后价22.9元...
  15. Android网易歌词json接口,网易云音乐api分析
  16. ai面试的优缺点_面试看脸?颜值低会不会被AI刷掉......
  17. 如何用Goldwave批量消除音频文件开头结尾的空白
  18. 计算机的cpu组成部分,CPU 有哪些组成部分
  19. 如何入门嵌入式?ARM嵌入式开发板学习方法步骤
  20. HTML + CSS 实现购物商城小米(提供源码下载)

热门文章

  1. 苹果系统又更新了,iOS13.1.3修复了哪些Bug?为啥对系统频繁修复
  2. 2021年T电梯修理答案解析及T电梯修理考试申请表
  3. MBA-day15 逻辑学 联言推理:并非p且q
  4. C++四种cast转换(const_cast、static_cast、dynamic_cast、reinpreter_cast)类型转换运算符
  5. vue uniapp实现分段器效果
  6. 说下入职IT小公司的感想
  7. Java实现 蓝桥杯VIP 算法提高 3-2字符串输入输出函数
  8. ucore_lab3_虚拟内存管理
  9. [Android] 仿网易新闻客户端分类排序
  10. rabbitmq安装 -夜幕思年华