AUC的定义是ROC曲线的下部的面积,概率意义是随机取一对正负样本,正样本得分大于负样本得分的概率。

这个概念直观上能看懂但是很难理解为什么和ROC曲线的下部面积有关,下面给出一个我直观上的理解

首先是ROC曲线绘制所用到的混淆矩阵

预测值 预测值
1 0
真实值 1 TP FN
真实值 0 FP TN
  • 混淆矩阵

  • TPR = TP / (TP + FN)

    • 所有真实类别为1的样本中,预测类别为1的比例

FPR = FP / (FP + TN)

  • 所有真实类别为0的样本中,预测类别为1的比例

假如我们有一组预测值和真实值,概率大小从大到小已经排列好

P1 P2 P3 P4 N1 N2 N3 N4
0.9 0.8 0.7 0.6 0.4 0.3 0.2 0.1
1 1 1 1 0 0 0 0

总共8个样本,真实值是四个证例标签为1,四个反例标签为0,如果我们用逻辑回归0.5为界限的话,可以看出我们的预测是100%正确的。那么我们开始绘制ROC曲线

一般绘制ROC曲线习惯上用阈值,但是其实这个阈值就是每个样本的预测概率,本质就是我从P1开始逐个取考虑样本,所以你也可以不说使用阈值而是说逐个考虑样本,这是一样的。

1)从P1开始,用阈值0.9(或者不说阈值,就说只考虑P1),只有P1是预测为1,其余都预测为0,那么TPR =1/4=0.25,FPR=0,ROC点(0, 0.25)

2)再考虑P2,用阈值0.8,那么P1,P2预测为1,那么TPR =2/4=0.5,FPR=0. ROC点(0, 0.5)

3)考虑P3, 同理得到ROC点(0, 0.75),

4)考虑P4,ROC点(0, 1)

5),考虑N1,这个时候ROC点是(0.25, 1)开始右移动了!

6)N2,N3N4 点分别为(0.5, 1)(0.75,1 ) (1,1)

发现了吗,绘制ROC曲线就是一个一个的去添加样本,正样本所对应的是Y轴,负样本所对应的是X轴。从P1到P4,从N1到N4, 是按概率大小排列的。,考虑到正样本就是向上移动,负样本就是向右移动。

于是乎我们可以把Y轴看做正例P的个数,X轴看做负例N的个数,整个坐标系的面积就是MXN个小矩形组成(这里的感觉是不是有点像微积分了),MXN是什么,是正样本和负样本的样本对数。

同时因为这个例子中所有P的概率都大于所有N,所以所有正样本概率大于负样本概率的样本对数 也是MXN,因为我们所有的正样本预测的概率都比负样本预测的概率大。

我们在这个例子中用的是一个完美算法,P和N完美预测所以所有的P都是排列在N前面的,ROC曲线也就是一条Y=1的直线,

为了更好理解,我们来看一个P4和N1预测错误的情况

P1 P2 P3 N1 P4 N2 N3 N4
0.9 0.8 0.7 0.6 0.4 0.3 0.2 0.1
1 1 1 0 1 0 0 0
预测为1 预测为1 预测为1 预测为1 预测为0 预测为0 预测为0 预测为0

和上面完美算法结果相比,这个例子中我们有一个N1比P4预测概率还要大,根据逻辑回归0.5的界限的话,这个N1我们预测为1

我们同样按照上述步骤绘制ROC曲线

1) 从P1开始,用阈值0.9(或者不说阈值,就说值考虑P1),只有P1是预测为1,其余都预测为0,那么TPR =1/4=0.25,FPR=0,ROC点(0, 0.25)

2)再考虑P2,用阈值0.8,那么P1,P2预测为1,那么TPR =2/4=0.5,FPR=0. ROC点(0, 0.5)

3)考虑P3, 同理得到ROC点(0, 0.75),

4) 这里个上面有区别了,P3下面是N1,所以我们要向右移动了不再上向上移动,那么ROC点为(0.25, 0.75)

5)N1下面是P4,所以又要向上移动了,ROC点是(0.25, 1)

6)后面都是N于是都往右移动,( 0.5,1 ) ( 0.75,1 ) (1,1)

好,我们绘制完了这个ROC,又发现了吗,ROC左上角有一个缺口,这个缺口就是因为N1的概率值大于P4的原因,我们在P3之后遇到了N1先往左移动了。

正样本数是M , 负样本数是N (本例中M=4, N=4)

好啰嗦了半天,现在才进入正题,这个ROC曲线的下部分面积是什么? 是不是MXN-1,刚好少的这块矩形就是N1和P4的样本对。因为(N1,P4)这一对样本是负样本概率>正样本概率。

ROC曲线的下面的矩形个数或者面积就是正样本得分大于负样本得分的面积或者个数

那么回到最开始AUC的定义:随机取一对正负样本,正样本得分大于负样本得分的概率。,在这个例子中就是(M X N-1)/(M X N),,这里M X N就是总的样本对数

AUC = AUC=(MXN-1)/(MXN)=(4X4-1)/(4X4)=15/16

为了更好理解,我们再来看一个P3,P4 N1 N2搞错的例子

P1 P2 N1 N2 P3 N4 N3 N4
0.9 0.8 0.7 0.6 0.4 0.3 0.2 0.1
1 1 0 0 1 1 0 0
预测为1 预测为1 预测为1 预测为1 预测为0 预测为0 预测为0 预测为0

绘制ROC曲线,从P1开始 网上走,P2继续往上走碰到N1往右,N2继续往右,然后P3P4往上,N3N4往右,最终的ROC曲线

这里的缺口有4对样本对 ,是N1 ,N2 和P3 P4,

那么正样本得分大于负样本得分的概率为

AUC=(MXN-2X2)/(MXN)=(4X4-2X2)/(4X4)=12/16

好了,最后我们来总结,对于ROC来说,它的纵轴是真阳性率TPR,横轴是伪阳性率FPR,相当于将正例和负例按照得分大小进行排序然后在坐标轴上展开。

回到TPR和FPR, 因为是比例,所以整个范围内的面积为1,也就是MXN在这里缩放到1了。

最后我们来总结,对于ROC来说,它的纵轴是真阳性率TPR,横轴是伪阳性率FPR,相当于将正例和负例按照得分大小进行排序然后在坐标轴上展开。**

而AUC就是ROC曲线下方的面积或者说积分, 除以整个面积1,也就是它的概率值了。

auc是ROC曲线面积的直观理解相关推荐

  1. auc和roc曲线解释_ROC曲线和AUC —解释

    auc和roc曲线解释 ROC (receiver operating characteristics) curve and AOC (area under the curve) are perfor ...

  2. ROC曲线面积AUC详解 --转载

    一.roc曲线 1.roc曲线:接收者操作特征(receiver operating characteristic), roc曲线上每个点反映着对同一信号刺激的感受性. 横轴:负正类率(false p ...

  3. AUC和ROC曲线的前世今生

    AUC数值即为ROC曲线下的面积.ROC曲线从0点开始上升越快,说明模型错分正样本的比例越小,模型对正样本识别的能力越强.在ROC曲线的基础上,抛开阈值的调节,ROC曲线下半部分的面积值就是AUC值. ...

  4. 机器学习常用评价指标:ACC、AUC、ROC曲线

    文章目录 一.混淆矩阵 二.评价指标 1.准确度(Accuracy) 2.AUC ROC曲线 举例 如何画ROC曲线 AUC的计算 AUC意味着什么 为什么使用ROC曲线 参考 一.混淆矩阵 基于样本 ...

  5. R语言计算AUC(ROC曲线)的注意事项

    之前的推文中介绍了ROC曲线的本质以及两面性: ROC阳性结果还是阴性结果? 并详细介绍了如何手动计算真阳性率/假阳性率,以及怎样计算多个,并把点连接成线,变成ROC曲线:ROC曲线纯手工绘制 这些现 ...

  6. 推荐系统:常用评价指标总结【准确率、精确率、召回率、命中率、(归一化折损累计增益)NDCG、平均倒数排名(MRR)、ROC曲线、AUC(ROC曲线下的面积)、P-R曲线、A/B测试】

    1.Recall(召回率)与Precision(精确率) 网站在提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做TopN推荐,TopN推荐的预测准确率一般通过召回率和精确率来度量. 在介 ...

  7. python画出roc曲线 auc计算逻辑_从scikitlearn(sklearn)的多类数据计算AUC和ROC曲线?...

    您需要使用label_binarize函数,然后您可以绘制一个多类ROC. 使用虹膜数据的示例:import matplotlib.pyplot as plt from sklearn import ...

  8. 模型评价(AUC,ROC曲线,ACC, 敏感性, 特异性,精确度,召回率,PPV, NPV, F1)

    转载https://blog.csdn.net/sunflower_sara/article/details/81214897?utm_medium=distribute.pc_relevant.no ...

  9. ROC-AUC 浅谈理解ROC曲线和AUC值

    这是一个评价二分类器的指标,特点是不受不平衡数据集的影响.但事实理解起来有点难.下面先介绍ROC-AOC是什么,然后再谈谈我的一种理解.ps,理解这个指标,首先得对经典的F1, Recall,Prec ...

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

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

最新文章

  1. 2018-3-27 遗传算法中的轮盘赌
  2. Go 语言编程 — 数据类型转换
  3. 像素纵横比基础知识(正方形像素,非正方形像素)
  4. javascript实现汉诺塔动画效果
  5. jvm虚拟机 基于栈_守护基于JVM的应用程序
  6. spring源码分析2本最高清带书目PDF百度网盘分享
  7. c语言第六章条件型循环结构,C语言课件(第六章 循环结构)
  8. 苹果官宣:这届“春晚”,好早!
  9. 这是一段有毒的js代码,求大神解释!!!
  10. springfox源码_springfox 源码分析(七) 文档初始化
  11. 2022最新微信小程序商城搭建教程(附源码)
  12. PopClip翻译插件开发记录-microsoft_translate.popclipext
  13. 原型工具Axure:学习路线及资源
  14. html5测试网速插件,js 检测客户端网速
  15. dpbs和pbs的区别_简单问题:PBS缓冲液到底是什么?
  16. Windows Defender卸载
  17. empty:expect的替代
  18. 电脑一直重新启动怎么回事
  19. 接入Google fit指南
  20. Freely Available Standards

热门文章

  1. 华硕fx60vm拆机图解_华硕fx60vm安装macOS10.13.6和Windows10双系统
  2. 芋道 Spring Cloud Netflix 注册中心 Eureka 入门
  3. LoRa技术-什么是LoRa
  4. C/C++KTV点歌系统
  5. Kernel, tainted, 被污染的实例
  6. AES加解密流程及方法
  7. 青岛地区服务器不稳定怎么办,青岛联通现大面积DNS故障 用户该如何上网
  8. 轻松插入Word页眉页脚
  9. 句法分析(成分句法分析)(依存句法分析)
  10. drupal 中page.tpl.php设置变量,Drupal主题开发教程 – 使用主题预处理函数为模板添加变量...