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

机器学习篇-指标:AUC AUC是什么东西? AUC是一个模型评价指标,只能够用于二分类模型的评价,对于二分类模型来说还有很多其他的评价指标: 比如:logloss,accuracy,precision 在上述的评价指标当中,数据挖掘类比赛中,AUC和logloss是比较常见的模型评价指标 那么问题来了||ヽ( ̄▽ ̄)ノミ|Ю为啥是AUC和logloss? 因为很多机器学习的模型对分类问题的预测结果都是概率,如果要计算accuracy的话,需要先将概率转换成类别,这就需要手动设置一个阈值,如果对一个样本的预测概率高于这个预测,就把这 阅读详情
摘要

原文链接:

blog.youkuaiyun.com/liweibin1994/article/details/79462554

编辑:zglg

公众号:Python与算法社区

AUC在机器学习领域中是一种模型评估指标。根据维基百科的定义,AUC(area under the curve)是ROC曲线下的面积。所以,在理解AUC之前,要先了解ROC是什么。而ROC的计算又需要借助混淆矩阵,因此,我们先从混淆矩阵开始谈起。

混淆矩阵

假设,我们有一个任务:给定一些患者的样本,构建一个模型来预测肿瘤是不是恶性的。在这里,肿瘤要么良性,要么恶性,所以这是一个典型的二分类问题。

假设我们用y=1表示肿瘤是良性,y=0表示肿瘤是恶性。则我们可以制作如下图的表格:

640?wx_fmt=png

如上图,TP表示预测为良性,而实际也是良性的样例数;

FN表示预测为恶性,而实际是良性的样例数;

FP表示预测为良性,而实际是恶性的样例数;

TN表示预测为恶性,而实际也是恶性的样例数;

所以,上面这四个数就形成了一个矩阵,称为混淆矩阵。

那么接下来,我们如何利用混淆矩阵来计算ROC呢?

首先我们需要定义下面两个变量:

640?wx_fmt=png
640?wx_fmt=png

TPR表示,在所有良性肿瘤中,被预测为良性的比例。称为真阳性率。真阳性率告诉我们,随机拿一个良性的肿瘤样本时,有多大的概率会将其预测为良性肿瘤。显然我们会希望TPR越大越好。

如果以FPR为横坐标,TPR为纵坐标,就可以得到下面的坐标系:

640?wx_fmt=png

可能看到这里,你会觉得有点奇怪,用FPR和TPR分别作横纵坐标有什么用呢?我们先来考察几个特殊的点。

点(0,1),即FPR=0,TPR=1。FPR=0说明FP=0,也就是说,没有假正例。TPR=1说明,FN=0,也就是说没有假反例。这不就是最完美的情况吗?所有的预测都正确了。良性的肿瘤都预测为良性,恶性肿瘤都预测为恶性,分类百分之百正确。这也体现了FPR 与TPR的意义。就像前面说的我们本来就希望FPR越小越好,TPR越大越好。

点(1,0),即FPR=1,TPR=0。这个点与上面那个点形成对比,刚好相反。所以这是最糟糕的情况。所有的预测都预测错了。

点(0,0),即FPR=0,TPR=0。也就是FP=0,TP=0。所以这个点的意义是所有的样本都预测为恶性肿瘤。也就是说,无论给什么样本给我,我都无脑预测成恶性肿瘤就是了。

点(1,1),即FPR=1,TPR=1。显然,这个点跟点(0,0)是相反的,这个点的意义是将所有的样本都预测为良性肿瘤。

考察完这四个点,我们可以知道,如果一个点越接近左上角,那么说明模型的预测效果越好。如果能达到左上角(点(0,1)),那就是最完美的结果了。

ROC曲线

介绍了混淆矩阵之后,我们就可以了解一下ROC(receiver operating characteristic curve)曲线是怎么定义的。

我们知道,在二分类(0,1)的模型中,一般我们最后的输出是一个概率值,表示结果是1的概率。那么我们最后怎么决定输入的x是属于0或1呢?我们需要一个阈值,超过这个阈值则归类为1,低于这个阈值就归类为0。所以,不同的阈值会导致分类的结果不同,也就是混淆矩阵不一样了,FPR和TPR也就不一样了。所以当阈值从0开始慢慢移动到1的过程,就会形成很多对(FPR, TPR)的值,将它们画在坐标系上,就是所谓的ROC曲线了。

我们来举一个例子。比如我们有5个样本:

真实的类别(label)为y = c(1,1,0,0,1).

一个分类器预测样本为1的概率为p=c(0.5, 0.6, 0.55, 0.4, 0.7).

正如上面说的,我们需要有阈值,才能将概率转换为类别,才能得到FPR和TPR。而选定不同的阈值会得到不同的FPR和TPR。假设我们现在选定的阈值为0.1,那么5个样本都被归类为1。如果选定0.3,结果仍然一样。如果选了0.45作为阈值,那么只有样本4被分进0,其余都进入1类。当我们不断改变阈值,就会得到不同的FPR和TPR。然后我们将得到的(FPR , TPR)连接起来,就得到了ROC曲线了。

640?wx_fmt=png

看到这里,也许我们还有一点难理解。这里要注意:

1 阈值的范围是[0,1],当阈值从1到0慢慢移动时,FPR会越来越大。因为FP(假正例)会越来越多。

2 如果在给定的样本中,我都随机预测,也就是0.5概率预测为良性肿瘤,0.5概率预测为恶性肿瘤。那么这条曲线会是怎样的呢?可以想象,如果数据是均匀,那么这条曲线就是y=x。

3 注意曲线一定是从(0,0)开始最终到达(1,1)的。理解了上面四个点的意义就知道了。

4 事实上,ROC曲线不是光滑的,而是阶梯型的。为什么呢?因为样本的数量是有限的,而FPR和TPR的变化需要至少有一个样本变化了,在没有变化的间隙里,就不会有变化。也就是说,步进是1/样本数。

得到了ROC曲线,我们就可以计算曲线下方的面积了。计算出来的面积就是AUC值了。

AUC值的意义

知道了如何计算AUC值,我们当然是要来问一下AUC值的意义了。为什么我们要这么大费周章地搞出这个AUC值?

假设我们有一个分类器,输出是样本输入正例的概率,所有的样本都会有一个相应的概率,这样我们可以得到下面这个图:

640?wx_fmt=png

其中,横轴表示预测为正例的概率,纵轴表示样本数。

所以,蓝色区域表示所有负例样本的概率分布,红色样本表示所有正例样本的概率分布。显然,如果我们希望分类效果最好的话,那么红色区域越接近1越好,蓝色区域越接近0越好。

为了验证你的分类器的效果。你需要选择一个阈值,比这个阈值大的预测为正例,比这个阈值小的预测为负例。如下图:

640?wx_fmt=png

在这个图中,阈值选择了0.5于是左边的样本都被认为是负例,右边的样本都被认为是正例。可以看到,红色区域与蓝色区域是有重叠的,所以当阈值为0.5的时候,我们可以计算出准确率为90%.

好,现在我们来引入ROC曲线。

640?wx_fmt=png

图中左上角就是ROC曲线,其中横轴就是前面说的FPR(False Positive Rate),纵轴就是TPR(True Positive Rate)。

640?wx_fmt=png

当阈值为0.8时,对应上图箭头所指的点。

640?wx_fmt=png

当阈值为0.5时,对应上图箭头所指的点。

这样,不同的阈值对应不同的点。最后所有的点就可以连在一起形成一条曲线,就是ROC曲线。

现在我们来看看,如果蓝色区域与红色的区域发生变化,那么ROC曲线会怎么变呢?

640?wx_fmt=png

上图中,蓝色区域与红色区域的重叠部分不多,所以可以看到ROC曲线距离左上角很近。

640?wx_fmt=png

但是,当蓝色区域与红色区域基本重叠时,ROC曲线就和接近y=x这条线了。

综上两个图,如果我们想要用ROC来评估分类器的分类质量,我们就可以通过计算AUC(ROC曲线下的面积)来评估了,这就是AUC的目的。

其实,AUC表示的是正例排在负例前面的概率。

640?wx_fmt=png

比如上图,第一个坐标系的AUC值表示,所有的正例都排在负例的前面。第二个AUC值,表示有百分之八十的正例排在负例的前面。

我们知道阈值可以取不同,也就是说,分类的结果会受到阈值的影响。如果使用AUC的话,因为阈值变动考虑到了,所以评估的效果更好。

另一个好处是,ROC曲线有一个很好的特性:当测试集中的正负样本分布发生变化了,ROC曲线可以保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

640?wx_fmt=png

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

参考:

https://www.zybuluo.com/frank-shaw/note/152851

https://www.zhihu.com/question/39840928?from=profile_question_card

http://blog.youkuaiyun.com/cherrylvlei/article/details/52958720

http://www.dataschool.io/roc-curves-and-auc-explained/

欢迎扫码关注:

模型评估指标AUC(area under the curve) AUC在机器学习领域中是一种模型评估指标。根据维基百科的定义,AUC(area under the curve)是ROC曲线下的面积。所以,在理解AUC之前,要先了解ROC是什么。而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是现...

皮皮blog 10万+

AUC原理详细讲解

一、AUC含义 首先,在试图弄懂AUC和ROC曲线之前,首先要彻底理解混淆矩阵的定义! 混淆矩阵中有着Positive、Negative、True、False的概念,其意义如下: 称预测类别为1的为Positive(阳性),预测类别为0的为Negative(阴性)。 预测正确的为True(真),预测错误的为False(伪)。 对上述概念进行组合,就产生了如下的混淆矩阵: 然后,由此引出True Positive Rate(真阳率)、False Positive(伪阳率)两个概念: TPRate=TPT

Ezra521的博客 1万+

模型评估指标详解:ROC 曲线和 AUC 的计算方法

机器学习模型评估指标详解:ROC 曲线和 AUC 的计算方法,AUC 的物理意义,根据物理意义计算 AUC

qq_43799400的博客 1万+

AUC的两种计算方式

推荐 搜索场景下的auc理解_凝眸伏笔的博客-优快云博客_搜索auc随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。TPRate的意义是所有真实类别为1的样本中,预测类别为1的比例。:真正率FPRate的意义是所有真实类别为0的样本中,预测类别为1的比例。:假正率AUC的优势:AUC的计算方法同时考虑了分类器对于正例和负例的分类能力,在样本不平衡的情况下,依然能够对分类器作出合理的评价。...

凝眸伏笔的博客 3万+

一文彻底理解机器学习 ROC-AUC 指标

ROC 曲线,即接收者操作特征曲线,ROC曲线产生于第二次世界大战期间,最早用在信号检测领域,侦测战场上的敌军载具(飞机、船舰)。现在是是用来评价二分类模型性能的常用图形工具。它通过显示真阳性率(True Positive Rate,简称 TPR)与假阳性率(False Positive Rate,简称 FPR)之间的权衡来帮助我们理解模型的分类能力。AUC,即曲线下面积(Area Under Curve),是 ROC 曲线下面积的一个数值表示。它提供了一个定量的指标,用来衡量分类模型的整体表现。

sdgfafg_25的博客 2万+

[机器学习]模型评估指标:ROC/AUC,KS,GINI,Lift/Gain, PSI 总结

目录 背景介绍 一 ROC曲线和AUC值 二 KS曲线 三 GINI系数 四 Lift , Gain 五 模型稳定度指标PSI 背景介绍 在模型建立之后,必须对模型的效果进行评估,因为数据挖掘是一个探索的过程,评估-优化是一个永恒的过程。在分类模型评估中,最常用的两种评估标准就是KS值和GINI, AUC值.可能有人会问了,为什么不直接看正确率呢?你可以这么想,如果一批样本中,正样本占到90%,负样本只占10%,那么我即使模型什么也不做,把样本全部判定为正,也能有90%的正确率咯?所以,用AUC值够保证你在

qq_41111337的博客 1万+

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

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

小白学视觉 4168

分类器评估指标——混淆矩阵 ROC AUC KS AR PSI Lift Gain

以下混淆矩阵、ROC、KS值、AR值都是二分类模型的评估指标,PSI是评估模型稳定性的指标。 1、混淆矩阵 混淆矩阵是最简单、最基础的分类的评估指标,在这里只讲二分类的混淆矩阵,多分类与二分类类似。 以下是二分类的混淆矩阵实现: from sklearn.metrics import confusion_matrix import matplotlib.pyplot as ...

snowdroptulip的博客 7711

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

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

weixin_39940154的博客 2586

风控模型评估指标:KS、ROC、AUC、PSI代码逻辑

上图中,我们最常用的就是TPR(True Positive Rate)和FPR(False Positive Rate): 其中: TPR = TP/(TP+FN)即真实1中预测错的; FPR = FP/(FP+TN)即真实0中预测错的; Precision = TP/(TP+FP)即预测1中对的 最理想的模型,是TPR尽量高而FPR尽量低,然而任何模型在提高正确预测概率的同时,也会难以避免地增...

weixin_44116269的博客 7008

模型评估指标(Confusion Matrix、ROC、AUC)

文章目录1、选择合适的模型评估指标的依据2、混淆矩阵(Confusion Matrix)2.1 模型整体效果:准确率2.2 捕捉少数类:精确率(Precision)、召回率(Recall)和F1-score2.2.1 精准率(Precision)2.2.2 召回率(Recall)2.2.3 P-R曲线(Precision Recall Curve)2.2.4 F1-Score2.2.5 sklea...

平凡简单的执着 6269

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

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

zenRRan的博客 643

AUC及其意义、判断标准和计算方法 - Python

在机器学习中,AUC(Area Under the ROC Curve)是一种常用的评估二元分类器性能的指标,ROC全称为Receiver Operating Characteristic,用于描述敏感性和特异性之间的关系。AUC是机器学习中一种常用的评估二元分类器性能的指标,它的取值范围在[0,1]之间,越接近1表示分类器性能越好。该代码首先模拟了真实标签和预测得分,然后使用roc_curve函数计算FPR和TPR,最后使用auc函数计算AUC,并绘制ROC曲线及AUC的取值。二、AUC的判断标准。

PixelEnigma的博客 1万+

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

面试的时候,一句话说明AUC的本质和计算规则:AUC:一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。所以根据定义:我们最直观的有两种计算AUC的方法1:绘制ROC曲线,ROC曲线下面的面积就是AUC的值2:假设总共有(m+n)个样本,其中正样本m个,负样本n个,总共有m*n个样本对,计数,正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为1,累加计数,然后除以(m...

u013385925的专栏 19万+

RYU+Mininet的SDN架构-设计校园网络(一)

现有一个中学,需要设计一个中小型网络满足学校的网络需求。学校有教学区,实验室区域和服务器区域。教学区为了满足接入的灵活性和信号强度要求,需要满足设计WIFI满足日常教室和同学需求,接入上限为200人。实验室区域需要有一台教师主机方便管理实验室其余电脑,并且教师主机可以访问学校服务器,方便为同学们实验室授课。学校服务器区域设有学校相关重要文件和学校网页相关内容。最后学校还会接入互联网。

weixin_53284122的博客 8035

PCIe 6.0实战指南:从链路训练到信号完整性的避坑手册

本文是一份针对PCIe 6.0硬件工程师的实战避坑指南。文章深入解析了从NRZ到PAM4调制带来的信号完整性挑战,详细拆解了链路训练(LTSSM)的复杂过程与调试方法,并提供了从信道仿真到实验室实测(如使用Keysight示波器进行眼图与误码率分析)的完整信号完整性闭环验证策略,帮助工程师解决高速率下的链路不稳定与降速问题。

weixin_29306875的博客 344

回归和分类模型性能评估指标MSE,MAE,PR,ROC,AUC

文章目录0. 模型评估是什么,为什么1. 不同类型问题的评估指标 0. 模型评估是什么,为什么 模型评估其本质是为了解决模型的泛化问题,由于各种原因,训练完成的模型可能会产生过拟合和欠拟合问题,因此需要对模型评估其泛化能力,并进行合适的参数调整以求得模型最优。 为什么要进行模型评估? 除了考虑到模型泛化能力的问题,同时也要兼顾不同业务场景下的业务指标不同。对于不同的业务场景,选择对应的评估指标,可...

优快云_SUSAN的博客 8708

科研绘图实战:用Adobe Illustrator高效排版期刊论文图片

本文详细介绍了使用Adobe Illustrator高效排版科研论文图片的完整工作流。针对期刊投稿常见的图片格式问题,文章重点讲解了矢量图与位图的预处理、AI中的精准对齐与分布技巧、文字样式统一管理以及最终输出TIFF/PDF等符合出版要求的格式。掌握这套方法能确保图片满足高分辨率、规范字体和精确尺寸等期刊硬性标准,显著提升投稿效率。

tomato的博客 1444

ROC曲线和AUC,推荐系统中常用AUC作为排序模型的评估指标

ROC曲线和AUC,推荐系统中常用AUC作为排序模型的评估指标

m0_48086806的博客 2137

UNet 改进(27):结合SCSE注意力机制的UNet网络实现

本文介绍了一种结合SCSE注意力机制的改进UNet网络架构。该网络在保持UNet经典编码器-解码器结构基础上,通过在每层添加SCSEBlock模块,融合了通道注意力和空间注意力机制。通道注意力通过全局池化和1×1卷积生成通道权重,空间注意力则产生空间权重图,二者相加增强关键特征响应。该设计具有以下优势:1)保持原始UNet的多尺度特征提取能力;2)通过注意力机制提升对重要区域的关注度;3)计算效率高,仅增加少量参数。测试显示网络能保持输入输出分辨率不变,适用于医学图像分割等像素级预测任务。完整代码实现了5层

2401_82355416的博客 415

深入理解鸿蒙输入子系统驱动:HDI接口、HAL层与内核驱动的协同机制

/ 扫描输入设备// 打开指定输入设备// 关闭指定输入设备// 获取指定设备信息// 获取所有设备列表鸿蒙输入子系统驱动采用分层架构设计,通过HDI接口层实现硬件抽象,HAL层提供统一的事件处理机制,用户空间驱动层负责设备管理和事件分发。整个系统支持多种输入设备类型,包括触摸屏、按键、鼠标、键盘等,并提供了完整的HID设备支持。分层架构:清晰的层次划分,便于维护和扩展事件驱动:基于epoll的高效事件处理机制设备管理:完善的设备生命周期管理HID支持。

m0_67505153的博客 214

模型效果评估指标(ROC、AUC/KS、Lift、PSI)

ROC/AUC

baidu_38432186的博客 2万+

AUTOSAR TcpIp模块 以太网配置开发2

someip协议之tcpIp协议

汽车电子电气 1085
上一篇: 如何看待 2020 届校招算法岗供远大于求的情况?
下一篇: 浅显易懂 | 小孩都看得懂的逐步提升算法
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值