AUC详解

article/2025/10/3 22:47:25

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

混淆矩阵

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

假设我们用y=1表示肿瘤是良性,y=0表示肿瘤是恶性。则我们可以制作如下图的表格:
这里写图片描述
如上图,TP表示预测为良性,而实际也是良性的样例数;
FN表示预测为恶性,而实际是良性的样例数;
FP表示预测为良性,而实际是恶性的样例数;
TN表示预测为恶性,而实际也是恶性的样例数;

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

那么接下来,我们如何利用混淆矩阵来计算ROC呢?
首先我们需要定义下面两个变量:

FPR=FPFP+TNFPR=FPFP+TN

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

TPR=TPTP+FNTPR=TPTP+FN

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

如果以FPR为横坐标,TPR为纵坐标,就可以得到下面的坐标系:
这里写图片描述

可能看到这里,你会觉得有点奇怪,用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曲线了。
这里写图片描述

看到这里,也许我们还有一点难理解。这里要注意:
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值?

假设我们有一个分类器,输出是样本输入正例的概率,所有的样本都会有一个相应的概率,这样我们可以得到下面这个图:
这里写图片描述
其中,横轴表示预测为正例的概率,纵轴表示样本数。
所以,蓝色区域表示所有负例样本的概率分布,红色样本表示所有正例样本的概率分布。显然,如果我们希望分类效果最好的话,那么红色区域越接近1越好,蓝色区域越接近0越好。

为了验证你的分类器的效果。你需要选择一个阈值,比这个阈值大的预测为正例,比这个阈值小的预测为负例。如下图:
这里写图片描述
在这个图中,阈值选择了0.5于是左边的样本都被认为是负例,右边的样本都被认为是正例。可以看到,红色区域与蓝色区域是有重叠的,所以当阈值为0.5的时候,我们可以计算出准确率为90%.

好,现在我们来引入ROC曲线。
这里写图片描述

图中左上角就是ROC曲线,其中横轴就是前面说的FPR(False Positive Rate),纵轴就是TPR(True Positive Rate)。
然后我们选择不同的阈值时,就可以对应坐标系中一个点。

这里写图片描述
当阈值为0.8时,对应上图箭头所指的点。

这里写图片描述
当阈值为0.5时,对应上图箭头所指的点。

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

现在我们来看看,如果蓝色区域与红色的区域发生变化,那么ROC曲线会怎么变呢?
这里写图片描述
上图中,蓝色区域与红色区域的重叠部分不多,所以可以看到ROC曲线距离左上角很近。

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

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

其实,AUC表示的是正例排在负例前面的概率。
这里写图片描述
比如上图,第一个坐标系的AUC值表示,所有的正例都排在负例的前面。第二个AUC值,表示有百分之八十的正例排在负例的前面。

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

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

在上图中,(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.csdn.net/cherrylvlei/article/details/52958720
http://www.dataschool.io/roc-curves-and-auc-explained/


http://chatgpt.dhexx.cn/article/nRCfQGl0.shtml

相关文章

笔记︱统计评估指标AUC 详解

文章目录 1 AUC的两种解读视角:1.1 ROC曲线与坐标轴形成面积1.2 古典概率模型——求导AUC 2 AUC的特性与优劣3 AUC多大才算好?4 线上、线下AUC差异较大成因分析4.1 业务场景使用AUC:点击模型与购买模型的差异4.2 线上、线下AUC有差异 5 AUC逻…

AUC原理详细讲解

一、AUC含义 首先,在试图弄懂AUC和ROC曲线之前,首先要彻底理解混淆矩阵的定义! 混淆矩阵中有着Positive、Negative、True、False的概念,其意义如下: 称预测类别为1的为Positive(阳性)&#x…

详解AUC指标

AUC指标 AUC是一个模型评价指标,用于二分类模型的评价。AUC是“Area under Curve(曲线下的面积)”的英文缩写,而这条“Curve(曲线)”就是ROC曲线。 ROC:受试者工作特征曲线    为什么要用AUC作为二分类…

机器学习篇-指标:AUC

AUC是什么东西? AUC是一个模型评价指标,只能够用于二分类模型的评价,对于二分类模型来说还有很多其他的评价指标: 比如:logloss,accuracy,precision 在上述的评价指标当中,数据挖掘…

网络: 快速理解NAT与NAPT的区别

NAT:网络地址转换 。 NAPT:网络地址端口转换。 (通俗的讲)它们都是地址转换,NAPT与NAT的区别在于 NAT是NAT是一对一转换,NAPT是多对一转换。通俗来说NAT是一个内部地址转换成一个外部地址进行通信的,而NAPT是多个内部地…

NAT和NAPT 技术

一、什么是NAT NAT(Network Address Translator)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。除了转换IP地址,还出现了可以转换TCP\UDP端口号的NAPT(Network Address Port Translator)技术 二、NAT的工作机制 如下图所示…

19 网络端口地址转换NAPT配置

借鉴网址: Packet Tracer 思科模拟器入门教程 之十八 网络端口地址转换NAPT配置_柚子君.的博客-CSDN博客 姓 名 彭彭头 实验日期 2022.06.07 学 号 实验序号 19 实验名称 网络端口地址转换NAPT配置 一、实验目的及要求 理解NAT网络地址转换的原理及功能…

Cisco Packet Tracer思科模拟器中利用动态NAPT实现局域网访问Internet (动态地址转换)

本篇文章主要讲解思科模拟器中的动态地址转换 ,主讲ACL和接口进行地址转换、地址池范围地址转换、静态一对一地址转换。 园区网内通常情况下有很多台主机,从ISP申请并给园区网中的每台主机分配一个合法IP地址是不现实的,为了使所有内部主机都…

NAT--静态、动态、NAPT、Easy-ip、NAT server

静态NAT 静态 NAT ( Static NAT )&#xff08; 一对一 &#xff09;。将内部网络的私有IP地址转换为公有IP地址&#xff0c;IP地址对是一对一的&#xff0c;是一直不变的。 实验拓扑&#xff1a; PC配置 AR1 <Huawei>sys Enter system view, return user view with Ct…

静态NAPT部署

实验拓扑 Jan16公司搭建了网站服务器&#xff0c;用于对外发布官方网站&#xff0c;公司只租用了一个互联网IP地址用于互联网的访问。为了保障内部网络的安全和互联网IP地址不足的情况&#xff0c;需在出口路由中配置静态NAPT&#xff0c;用于将内部服务器映射到互联网IP地址上…

NAT 和 NAPT

出处&#xff1a;http://bbs.51cto.com/thread-878322-1.html NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;是将IP数据报头中的IP地址转换为另一个IP地址的过程。在实际应用中&#xff0c;NAT主要用于实现私有网络访问公共网络的功能。这…

华为静态NAT、动态NAT、NAPT、Easy NAT配置实例

一、NAT的四种类型 1&#xff0c;静态NAT&#xff08;服务器地址转换&#xff09; 静态NAT实现了私有地址和公有地址的一对一转换&#xff0c;一个公网地址对应一个私网地址 2&#xff0c;动态NAT 动态NAT基于地址池来实现私有地址和公有地址的转换&#xff0c;转换是随机的 …

华为 静态NAT---动态NAT---NAPT---Easy IP---NAT服务器工作原理和示例配置

目 录 一、NAT简介 二、NAT好处&#xff1a; 三、静态NAT工作原理和示例配置 1. 静态NAT工作原理 2. 静态NAT配置示例 四、动态NAT工作原理和示例配置 1. 动态NAT工作原理 2.动态NAT示例配置 五、NAPT工作原理和示例配置 1. NAPT工作原理 2.NAPT示例配置 六…

华为设备的NAT、NAPT、easy IP的区别

首先来了解一下什么是NAT&#xff0c;网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术&#xff0c;是一种将私有&#xff08;保留&#xff09;地址转化为合法IP地址的转换技术&#xff0c;它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因…

6.NATNAPT

7. NAT&NAPT 它们都是地址转换NAPT与NAT的区别在于 NAT是NAT是一对一转换&#xff0c;NAPT是多对一转换。通俗来说NAT是一个内部地址转换成一个外部地址进行通信的&#xff0c;而NAPT是多个内部地址使用同一地址不同端口转换成外部地址进行通信的。 //配置完动态路由Rout…

NAPT之NAT地址池、NAPT之easy-ip、NAT-Server

NAPT之NAT地址池 拓扑 需求 实现企业内网主机&#xff08;PC1-PC4&#xff09;访问公网网站服务器&#xff08;Server1&#xff09; 配置步骤 第一步&#xff1a;给PC1-PC4/Server1配置接口IP地址&#xff0c;掩码&#xff0c;网关 第二步&#xff1a;R1配置默认路由 -边界…

NAT和NAPT

NAT和NAPT引入原因 IPV4是一个32位的地址&#xff0c;最大容纳为 2 32&#xff0c;就这还包括了广播地址、网络地址等主机不可用的IP地址。也就是40多亿。现在全球电子设备的IP地址已经远远超过了40亿。所以IP地址不是不够用了吗&#xff1f;为什么现在的网络还好好的呢&…

路由 NAT(简介、静态NAT、动态NAT、NATServer、NAPT、Easy-ip、NAT地址映射表)

4.1.0 路由 NAT&#xff08;简介、静态NAT、动态NAT、NATServer、NAPT、Easy-ip、NAT地址映射表&#xff09; 目录 简介NAT地址映射表静态NAT简介操作案例 动态NAT简介操作案例 NAT Server简介操作案例 NAPT简介操作案例 Easy-ip简介操作案例 简介 为了有效节约公网IPv4地址&a…

NAPT-PT技术实现

一实验原理 NAPT-PT全称Network Address Port Translation-Protocol Translation。由于静态NAT-PT和动态NAT-PT都比较浪费IPV4地址&#xff0c;比没有体现出IPV6的优越特性。在本实验中采用NAPT-PT&#xff0c;只有一个IPV4地址&#xff0c;用端口来表识IPV6网中的主机。 二实…

NAPT实验

CLI举例&#xff1a;私网用户通过NAPT访问Internet&#xff08;限制公网地址对应的私网地址数&#xff09; **组网需求&#xff1a; 某公司在网络边界处部署了FW作为安全网关。为了使私网中10.1.1.0/24网段的用户可以正常访问Internet&#xff0c;需要在FW上配置源NAT策略。除…