AUC,ROC我看到的最透彻的讲解

分类模型评估之ROC-AUC曲线和PRC曲线 http://blog.youkuaiyun.com/pipisorry/article/details/51788927 ROC曲线和AUC ROC(Receiver Operating Characteristic,接受者工作特征曲线)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣。博文介绍ROC和AUC的特点,讨论如何作出ROC曲线图以及计算AUC。 AUC是现... 阅读详情

面试的时候,一句话说明AUC的本质和计算规则:

AUC:一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。

所以根据定义:我们最直观的有两种计算AUC的方法

1:绘制ROC曲线,ROC曲线下面的面积就是AUC的值

2:假设总共有(m+n)个样本,其中正样本m个,负样本n个,总共有m*n个样本对,计数,正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为1,累加计数,然后除以(m*n)就是AUC的值

PS:百度百科,随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。这里的score值就是预测为正的概率的值,排在前面表示的是正样本的预测为正的概率值大于负样本的预测为正的概率值。

一、roc曲线

1、roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。

横轴:负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity)

纵轴:真正类率(true postive rate TPR)灵敏度,Sensitivity(正类覆盖率)

2针对一个二分类问题,将实例分成正类(postive)或者负类(negative)。但是实际中分类时,会出现四种情况.

(1)若一个实例是正类并且被预测为正类,即为真正类(True Postive TP)

(2)若一个实例是正类,但是被预测成为负类,即为假负类(False Negative FN)

(3)若一个实例是负类,但是被预测成为正类,即为假正类(False Postive FP)

(4)若一个实例是负类,但是被预测成为负类,即为真负类(True Negative TN)

TP:正确的肯定数目

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

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

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

列联表如下,1代表正类,0代表负类:

由上表可得出横,纵轴的计算公式:

(1)真正类率(True Postive Rate)TPR: TP/(TP+FN),代表分类器预测的正类中实际正实例占所有正实例的比例。Sensitivity

(2)负正类率(False Postive Rate)FPR: FP/(FP+TN),代表分类器预测的正类中实际负实例占所有负实例的比例。1-Specificity

(3)真负类率(True Negative Rate)TNR: TN/(FP+TN),代表分类器预测的负类中实际负实例占所有负实例的比例,TNR=1-FPR。Specificity

假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。

如下面这幅图,(a)图中实线为ROC曲线,线上每个点对应一个阈值。

 

横轴FPR:1-TNR,1-Specificity,FPR越大,预测正类中实际负类越多。

纵轴TPR:Sensitivity(正类覆盖率),TPR越大,预测正类中实际正类越多。

理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。

二 、如何画roc曲线

假设已经得出一系列样本被划分为正类的概率,然后按照大小排序,下图是一个示例,图中共有20个测试样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。


接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果如下图:

AUC(Area under Curve):Roc曲线下的面积,介于0.1和1之间。Auc作为数值可以直观的评价分类器的好坏,值越大越好。

首先AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。

三、AUC计算

 1.  最直观的,根据AUC这个名称,我们知道,计算出ROC曲线下面的面积,就是AUC的值。事实上,这也是在早期 Machine Learning文献中常见的AUC计算方法。由于我们的测试样本是有限的。我们得到的AUC曲线必然是一个阶梯状的。因此,计算的AUC也就是这些阶梯 下面的面积之和。这样,我们先把score排序(假设score越大,此样本属于正类的概率越大),然后一边扫描就可以得到我们想要的AUC。但是,这么 做有个缺点,就是当多个测试样本的score相等的时候,我们调整一下阈值,得到的不是曲线一个阶梯往上或者往右的延展,而是斜着向上形成一个梯形。此 时,我们就需要计算这个梯形的面积。由此,我们可以看到,用这种方法计算AUC实际上是比较麻烦的。 

   2. 一个关于AUC的很有趣的性质是,它和Wilcoxon-Mann-Witney Test是等价的。这个等价关系的证明留在下篇帖子中给出。而Wilcoxon-Mann-Witney Test就是测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。有了这个定义,我们就得到了另外一中计 算AUC的办法:得到这个概率。我们知道,在有限样本中我们常用的得到概率的办法就是通过频率来估计之。这种估计随着样本规模的扩大而逐渐逼近真实值。这 和上面的方法中,样本数越多,计算的AUC越准确类似,也和计算积分的时候,小区间划分的越细,计算的越准确是同样的道理。具体来说就是统计一下所有的 M×N(M为正类样本的数目,N为负类样本的数目)个正负样本对中,有多少个组中的正样本的score大于负样本的score。当二元组中正负样本的 score相等的时候,按照0.5计算。然后除以MN。实现这个方法的复杂度为O(n^2)。n为样本数(即n=M+N) 
   3.  第三种方法实际上和上述第二种方法是一样的,但是复杂度减小了。它也是首先对score从大到小排序,然后令最大score对应的sample 的rank为n,第二大score对应sample的rank为n-1,以此类推。然后把所有的正类样本的rank相加,再减去M-1种两个正样本组合的情况。得到的就是所有的样本中有多少对正类样本的score大于负类样本的score。然后再除以M×N。即 

公式解释:

        1、为了求的组合中正样本的score值大于负样本,如果所有的正样本score值都是大于负样本的,那么第一位与任意的进行组合score值都要大,我们取它的rank值为n,但是n-1中有M-1是正样例和正样例的组合这种是不在统计范围内的(为计算方便我们取n组,相应的不符合的有M个),所以要减掉,那么同理排在第二位的n-1,会有M-1个是不满足的,依次类推,故得到后面的公式M*(M+1)/2,我们可以验证在正样本score都大于负样本的假设下,AUC的值为1

      2、根据上面的解释,不难得出,rank的值代表的是能够产生score前大后小的这样的组合数,但是这里包含了(正,正)的情况,所以要减去这样的组(即排在它后面正例的个数),即可得到上面的公式

      另外,特别需要注意的是,再存在score相等的情况时,对相等score的样本,需要 赋予相同的rank(无论这个相等的score是出现在同类样本还是不同类的样本之间,都需要这样处理)。具体操作就是再把所有这些score相等的样本 的rank取平均。然后再使用上述公式。 

四、AUC计算例子:

简单翻译下:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。另外,AUC与Gini分数有联系,Gini + 1 = 2*AUC。

关于AUC表示的概率含义在ROC的维基百科词条[5]中也有说明。不过维基百科中还提到这样一个观点,机器学习领域中经常用ROC和AUC去做模型对比,最近学术界认为这种做法会引入一些错判,有些文章对此进行了讨论。笔者认为学术界值得认真讨论此问题,但在工业界,AUC指标一般与业务评价指标(比如点击率等)本身就不是一致的,所以在实际业务中,会综合考虑AUC指标以及其他指标来选择最终模型,这样做能降低选到不良模型的可能性。

既然了解了AUC表示的概率含义,那么就可以通过概率统计的方法来算AUC。做N次随机试验,每次实验中随机采样一个正样本和一个负样本,当模型预测正样本的分数大于模型预测负样本的分数,计数则加1。记计数最终为n(n肯定小于等于N),那么用n/N即得到AUC。Stackexchange中的一篇帖子[6]在”A concordance measure”一节中也提到了这种算AUC的方法,并通过实验说明此方法计算出的AUC与画出ROC曲线然后算AUC面积是一致的。不过应用这个物理含义来算AUC,除了走先随机采样后计数以得到概率的方案外,还可以用公式1来计算:

 

参考:

1、http://blog.youkuaiyun.com/abcjennifer/article/details/7359370

2、《理解 ROC 和 AUC》

AUC(Area Under the Curve,曲线下面积) 1. **ROC 曲线**:ROC 曲线是绘制真阳性率(TPR,True Positive Rate)与假阳性率(FPR,False Positive Rate)的一条曲线。- **真阳性率(TPR)**:正确识别为正类的样本数占所有实际为正类的样本数的比例,TPR = TP / (TP + FN)。- **假阳性率(FPR)**:错误识别为正类的样本数占所有实际为负类的样本数的比例,FPR = FP / (FP + TN)。- **AUC = 1.0**:模型具有完美的分类能力,可以完美区分正负样本。 阅读详情

相关推荐

ROC与AUC理解

ROC与AUC简介ROC曲线ROC的动机ROC曲线特殊点ROC曲线的绘制为什么使用ROCROC曲线使用多个实例概率/得分相同AUC(Area Under ROC Curve)AUC判断分类器优劣的标准:AUC的物理意义损失公式AUC值的计算sklearn使用参考 简介 ROC:(Receiver Operating Characteristic) 受试者工作特征 曲线 纵轴 : 真正例率 True...

weixin_40549144的博客 1万+

模型评估-2

一、分类算法的评估 1、二分类 ROC与AUC 1.1 roc曲线:接收者操作特征(receiveroperating characteristic) roc曲线上每个点反映着对同一信号刺激的感受性。横轴:负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity);纵轴:真正类率(true postive rate TPR)灵...

weixin_30606461的博客 582

【机器学习】了解 AUC - ROC 曲线

在机器学习中,性能测量是一项基本任务。因此,当涉及到分类问题时,我们可以依靠AUC - ROC曲线。

gongdiwudu的专栏 4万+

带你真正吃透AUC

本文旨在从所有教科书都讲到的AUC基本概念为起点,逐步带领大家进入AUC背后更为广阔、神奇的世界。 一、什么是AUC    AUC的全称为Area Under the Curve,即曲线下的面积。这里的曲线指的是什么曲线?有两种类型:ROC曲线和PR曲线。所以,AUC也会有两种类型:ROCAUC及PRAUC,分别对应ROC曲线下的面积以及PR曲线的的面积。 二、ROC曲线及PR曲线    在二分类问题中,模型输出得分SSS后(这里的得分指的是属于正例的概率值,即经过sigmoid函数归一化到[0,1]内.

天渡漫谈 1万+

ROC曲线及AUC值

ROC曲线 参考文献:【ROC曲线与AUC值】 1. 介绍及引入 ROC的全名叫做Receiver Operating Characteristic,其主要分析工具是一个画在二维平面上的曲线——ROC curve。 平面的横坐标是false positive rate(FPR),即假阳性率(1−Sp1-Sp1−Sp); 纵坐标是true positive rate(TPR),即真阳性率(SnSnSn)。 对某个分类器而言,我们可以根据其在测试样本上的表现得到一个TPR和FPR点对。这样,此分类器就可以映射成

林景的博客 5546

一文说清STM32CubeMX中文汉化全流程(图解说明)

详细讲解STM32CubeMX中文汉化的完整流程,通过图文并茂的方式手把手教学,解决界面英文带来的使用障碍,让开发更高效。掌握stm32cubemx中文汉化技巧,提升嵌入式开发体验。

weixin_42499004的博客 6278

模型评估指标AUC和ROC,这是我看到的最透彻的讲解

摘要原文链接:blog.youkuaiyun.com/liweibin1994/article/details/79462554编辑:zglgAUC在机器学习领域中是一种模型评估指标...

算法channel 1万+

UE5.4像素流送实战:GPU驱动、WebRTC与系统级调优全解析

像素流送是将实时3D渲染画面通过WebRTC编码推流至浏览器的关键技术,其本质是GPU硬件编码(如NVENC)与低延迟网络传输(UDP+BBR)的深度协同。理解其原理需跨越图形API(Vulkan/DX12)、实时音视频(H.264/H.265)、WebRTC信令与NAT穿透四大技术层。技术价值在于突破终端算力限制,支撑远程工业仿真、云VR看房等高交互场景;但落地难点集中于基础设施层——如NVIDIA驱动与UE5.4.3的CUDA Toolkit 12.2兼容性、Linux内核TCP/UDP参数调优、GPU

weixin_32943857的博客 616

模型评估指标 AUC 和 ROC,这是我看到的最透彻的讲解

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达作者:Webbleyblog.youkuaiyun.com/liweibin1994/article/details/79462554公众号:Python与算法社区AUC在机器学习领域中是一种模型评估指标。根据维基百科的定义,AUC(area under the curve)是ROC曲线下的面积。所以,在理解AUC...

小白学视觉 4167

clock-gating整理

文章目录clock gating 理解1、latch双稳态器件常见锁存器结构SR锁存器D锁存器2、clock gating(clock low-active) latch + AND gating 电路(clock high-active)latch + OR gating 电路 clock gating 理解 1、latch 参考:https://www.cnblogs.com/IClearner/p/6443539.html 双稳态器件 稳定状态为0或1两种 举例:交叉耦合反相器 假设初始Q为1,则可

d_b_的博客 1万+

【音视频处理】MP4、FLV、HLS适用范围,在线视频播放哪个更好

本期我们讨论在线点播的视频格式,对比这些视频格式的优劣以及原因 1、封装格式的作用 2、MP4 3、FLV 4、HLS

池鱼 - YiiGaa 2万+

ROC,AUC最透彻的讲解(实例分析+matlab代码)

女朋友的毕业论文,做到了图像分割性能的评价,看到了需要用到AUC和ROC,请教大佬们,博后周师兄给出了他的解释和程序实现,非常感谢,后来查看了几个大V写的博客,感觉非常好,自己学习整理了一下,在这里总结给大家。 A大牛说,面试的时i候,一句话说明AUC的本质和计算规则: AUC:一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。 所以根据定义:我们最直观的有两种计算 A...

视觉小新的博客 1万+

Topas——基于Geant4的放射治疗蒙特卡罗算法模拟工具

本文内容参考Joseph Perl 的线上会议,视频详情可见于,该视频会议内容主要介绍Topas功能、软件架构、工作流程、参数设定、物理模型、具体案例等,对TOPAS的基本入门使用方法以及使用规定作出阐述。

fy方的博客 7606

auc到多少有意义_模型评估指标AUC和ROC,这是我看到的最透彻的讲解

摘要原文链接:blog.youkuaiyun.com/liweibin1994/article/details/79462554编辑:zglgAUC在机器学习领域中是一种模型评估指标。根据维基百科的定义,AUC(area under the curve)是ROC曲线下的面积。所以,在理解AUC之前,要先了解ROC是什么。而ROC的计算又需要借助混淆矩阵,因此,我们先从混淆矩阵开始谈起。混淆矩阵假设,我们有一个...

weixin_39940154的博客 2586

射频功率放大器设计实战:从理论到Layout的全流程解析

本文以一款40W、960MHz LDMOS功率放大器为例,系统解析了从理论分析、仿真设计到版图实现的射频功率放大器设计全流程。内容涵盖AB类放大器选型、核心指标定义、稳定性分析、Load-Pull/源牵引仿真、史密斯圆图匹配、偏置网络设计,以及最终的谐波平衡仿真与版图电磁验证,为工程师提供了一套从理论到实践的完整设计方法论。

weixin_29266007的博客 249

Spring Boot入门(13):Mybatis-Plus之条件构造器使用手册:精通让你快速提高查询效率的技巧!

化繁为简,MP 中条件构造器的使用,极其详细.

**My Coding Family** 3万+

【基础】模型评估指标 AUC 和 ROC,这是我看到的最透彻的讲解

点击上方,选择星标或置顶,每天给你送干货!阅读大概需要9分钟跟随小博主,每天进步一丢丢作者:Webbley编辑:zglg来自:Python与算法社区blog.youkuaiyun.com/liwei...

zenRRan的博客 643

MOS管驱动电路设计全攻略

MOS管驱动电路设计全攻略

让你爱上电路设计 3636

ROC与AUC 的理解和python实现

1. 混淆矩阵 2. 什么是ROC曲线 3. AUC是什么 4. 为什么使用ROC曲线 5. 用python的sklearn:绘制ROC曲线+求AUC (1). 分别求ROC和AUC (2). 直接求AUC

Eli_Code 6081

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ROC曲线和AUC面积理解

关注微信公众号【Microstrong】,我现在研究方向是机器学习、深度学习,分享我在学习过程中的读书笔记!一起来学习,一起来交流,一起来进步吧!本文同步更新在我的微信公众号中,公众号文章地址:https://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&mid=2247484146&idx=1&sn=963765a3ede231292...

Microstrong 9万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

sklearn:auc、roc_curve、roc_auc_score

sklearn.metrics.auc 作用:计算AUC(Area Under the Curve) metrics.roc_curve 作用:计算 ROC(Receiver operating characteristic) 注意: this implementation is restricted to the binary classification task sklearn.metric...

NockinOnHeavensDoor的博客 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

什么是ROC和AUC?一文给你讲明白

原文链接:https://www.cnblogs.com/gatherstars/p/6084696.html ROC曲线与AUC值 本文根据以下文章整理而成,链接: (1)http://blog.youkuaiyun.com/ice110956/article/details/20288239 (2)http://blog.youkuaiyun.com/chjjunking/article/details/5933105 1.概述   AUC(Area Under roc Curve)是一种用来度量分类模型好坏.

cc的博客 2万+

ROC和AUC

ROC曲线(Receiver Operating Characteristic curve)和AUC(Area Under the Curve)是用于评估二分类模型性能的重要工具。 ROC曲线以真正例率(True Positive Rate,也称为召回率或灵敏度)为纵轴,假正例率(False Positive Rate)为横轴,展示了模型在不同阈值下的分类表现。ROC曲线越靠近左上角,表示模型性能越好,因为此时真正例率较高而假正例率较低。 AUC是ROC曲线下方的面积,用于量化模型的分类性能。AUC的取

weixin_66547608的博客 4945
上一篇: 医学图像分析相关的会议
下一篇: 卷积神经网络的入门认识
三世
博客等级 码龄20年 381粉丝 330原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值