AUC到底是什么?

article/2025/10/3 21:52:07

前言

上一篇单值AUC计算优化里,提到了AUC,AUC的全名是Area Under Curve,就是ROC曲线下的面积,上一篇文中提到了AUC是评估模型整体排序能力的,但是具体是什么没有进行展开介绍,考虑到可能很多人对这么个玩意都不是那么理解,因为网上大部分都是从ROC怎么画,AUC怎么算,AUC代表什么,但是为什么代表这些含义却都没有提到,所以这次就专门写了一篇来介绍什么是AUC。

ROC

首先还是按照惯例,ROC是什么呢?其实计算AUC的出发点还是ROC曲线,那么这个曲线到底是什么呢?为了充分理解AUC,首先我们需要具备的知识是以下内容:

  • 二分类问题,可以是LR,也可以是GBDT、XBGoost、LightGBM等等,只要是二分类就可以了(不要问我为什么不是多分类),那么通过这些模型可以对每条样本输出一个概率值,这个概率值代表该条样本是正样本的概率,而ROC就是根据这些输出的概率以及样本的真实label而计算画出的。
  • 微积分基础知识,知道简单的积分知识。
  • ROC曲线绘制的基本知识
  • 了解简单的分类问题评估参数,例如准确度,recall,precision,f1-score

因为ROC怎么画这个部分内容网上已经有很多了,我再写也没有价值,我随便贴一篇文章大家去看一下=>如何画ROC曲线,这里只会简单地略过不会展开细讲,本文的重点将是AUC到底代表什么物理含义,首先还是先说一下混淆矩阵。

混淆矩阵

上面提到了模型输出的一般都是概率值,那么有概率值怎么预测是1还是0呢,我们通过设定一个概率阈值p,大于p就是1,小于等于p就是0,但是这个p的值如何取是个问题,不同的阈值会导致准确度、recall、precision等的变化,所以说这是个技术活也是个经验活,但是AUC不需要确定阈值,评估模型更为稳定,但是要说ROC不得不提混淆矩阵。

如上所说,不同的阈值p会觉得把哪些样本划分为正样本以及负样本,上图更清晰,截图来自上面那篇文章:
在这里插入图片描述
上图说的比较清楚,如上所说,每个不同的概率阈值p其实对应着不同的混淆矩阵(p的改变会改变预测的label结果,比如提高了阈值p,本来预测为正样本的样本就可能变成预测为负样本了)

TPR FPR

绘制ROC曲线避不开的两个参数,TPR以及FPR,那么他们是怎么计算的呢?先上公式吧:
T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP

F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP

公式中,TP+FN就是所有样本中正样本的数量,我们将所有的正样本记为P,TN+FP记为负样本,将其记为N,假设当前的概率划分阈值是0.5,TP代表所有样本预测概率大于0.5的样本中实际是正样本的数量,FP代表预测概率大于0.5的样本中实际是负样本的数量,而TP+FP就是模型给出的预测结果中预测概率大于0.5的总和。

绘制ROC曲线

这里还是直接拿上面博文中的图(真的懒,毕竟是现成的东西)

ROC曲线中横轴是FPR,纵轴是TPR,依据选择不同的概率阈值p从而得到不同的FPR、TPR最终上图,这里抛出个问题,为什么ROC曲线一定经过(0,0)与(1,1)点呢?

AUC

AUC其实就是上面ROC曲线下的面积,相信大家在网上可以找到许多描述AUC代表什么的文章,最多的就是说AUC评估的是随机给定一个正样本和一个负样本,模型对正样本的预测概率大于模型对于负样本预测概率的概率,听起来很绕口,但是呢,你别说,AUC还真是表达的是这么个含义。

啰嗦了这么多,本文的重点来了,既然我说了AUC就是表达的这么个含义,那么我肯定得给出数学证明,因为涉及到许多的公式,所以我这里选择以贴图的形式来推导,使用的设备还是我的小ipad(这东西真香),下面开始整。

证明

我这里全部使用我用ipad画的图了~有点难看,大家凑合看一下吧,讲的不明白的地方可以留言。
在这里插入图片描述
如ROC曲线,横轴是FPR,纵轴是TPR,我们将横轴标记为x,纵轴为y,x与y都是关于阈值p的函数,那么可以分别记为x§和y§。

横轴x§的变化,实质上就是FP的变化, Δ F P \Delta FP ΔFP代表模型预测值在(p,p+ Δ \Delta Δp]范围的负样本数量(这个数量可不是整数,因为这是取微分的情况),y§和y(p+ Δ \Delta Δp)值基本相等(因为 Δ p \Delta p Δp非常小的原因),那么对于 Δ \Delta Δp这样的一个微元区域,其矩形的面积代表什么呢?矩形的宽是 Δ F P R \Delta FPR ΔFPR,高是 T P R TPR TPR

重点:忽略我的难看的字….

在这里插入图片描述

  • 也就是说,分母是正样本数量*负样本数量,假设当前采取的概率阈值是p1,那么Pp1代表模型预测概率值大于p1的正样本数量, N ( p 1 , p 1 + Δ p ] N_{(p1,p1+\Delta p]} N(p1,p1+Δp] 代表模型预测概率在(p1,p1+ Δ \Delta Δp]范围内的负样本数量。
  • 前面也说过了Pp1和 P p + Δ p P_{p+\Delta p} Pp+Δp在极限划分下是相等的,那么二者乘积的意义是对于 模型预测概率在(p1,p1+ Δ \Delta Δp]范围内的负样本而言,这些负样本可以组成的(正,负)的二元组的数量,该二元组满足其中所有的正样本的预测值大于负样本的预测值,我们把这样的二元组称为正向二元组。

在这里插入图片描述

  • AUC是ROC曲线下的面积,也就是曲线下的积分,我们把分母永远不变的P*N提取出来。
  • 分子是一个积分和,积分项是TP§dFP§,这一部分之前我们已经证明过他的含义是计算这一部分的FP即负样本可以形成的所有的正向二元组的数量。
  • 那么,微积分下每个小的矩形的含义是这部分可以形成的正向二元组的数量,那么积分后的含义是什么呢?
  • 就是所有的样本中可以形成正向二元组的数量!!!
  • P*N代表样本中可以形成的二元组的数量,二者一除代表什么呢?就是通过当前的模型,随机选择一条正样本和负样本,这样组成的二元组是正向二元组的概率。
小结

这里额外提一句,为什么AUC对于正负样本比例不敏感呢?这是因为AUC计算是通过我前面所说的一个个极小的矩阵进行面积求和的,通常我们都是对负样本进行采样,假设采样是随机均匀采样的。

  • 假设一共1W条负样本,按概率分布在十个概率区间内,我们对每个区间进行随机的采样,假设取10%,总体的负样本变为了1000条,每个概率区间上也应该总体是保留了原本区间内的10%。
  • 也就是说概率区间上的数量/负样本的总数量比例是不变的,这代表什么?就是 Δ \Delta ΔFPR是不变的,而TPR因为不进行采样(采样了其实也是不变的),那么二者的微元乘积就是不变的=>AUC也就不变了

当然上面说的其实是模型已经固定的情况下,那么就有问题了,正负比例变了,训练的模型不也就变了么?

  • 这是个好问题~其实就是我自问自答
  • 想一下我上一篇的单值AUC里提到的,线性模型大部分希望求的还是每个细粒度子空间内的平均概率,那么进行采样后其实就是改变了每个子空间内的正负样本比例,假设采样前一个子空间内的平均概率是30%,采样后由于负样本数量减少了,那么平均概率就变成了50%。
  • 但是,这种方式其实相当于把正样本与负样本的预测概率同时提高了,但是相对关系由于分布没有改变还是变化很小的。

接下来又是我自问自答了,难道说正负样本比例改变就不影响AUC了么?

  • 这位童鞋又陷入了极端,当然会影响,但是只是不那么明显,比如说1w条正样本99w条负样本,模型很容易就学习到准确率99%+,但是1w条正样本和1w条负样本,那么准确率应该50%起步,虽然经过采样前后准确率变化了(这是因为采样前每个子空间大概率预测为负样本,采样后可能每个子空间变为了50%),所以正负样本比例对于准确度影响非常大,但是这个准确是和阈值挂钩的,什么意思呢?
  • 比如说1:1的样本中,那么正样本得分是0.51和0.52,负样本是0.49和0.51,我以0.5作为阈值,预测的准确度是75%,当提升到1:99时,正样本得分变为了0.011,0.012,负样本是0.009,0.008,0.001等等,乍一看,好像大部分都是负样本嘛,但是不同的是正样本相对于负样本的得分还是高的,只是绝对值不高了,所以选择0.5为阈值时,准确率提升到99%+。
  • 那么改变正负样本比例后,其相对大小还是没怎么变的,变的是绝对大小,而AUC是评估相对大小的东西,所以正负样本比例变化影响并不大。

那么什么情况下正负样本比例改变会较严重地影响AUC呢?

  • 这里我给个不加证明的猜测(能力有限,不会证明),那就是
  • 当样本特征划分的子空间粒度过细,通过随机采样会使得每个子空间样本数量不足以支撑可信的比例计算时,举个简单的例子如下
  • 当前的一个子空间内正样本1w条,负样本99w条,那么采样成1:1可能影响不那么大
  • 但是如果当前正样本1条,负样本99条,这时采样成1:1那么由于样本数量过小,其置信度将大大降低。

希望大家看完这篇,可以对AUC有更深一点的理解吧。


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

相关文章

matlab计算auc,ROC和AUC介绍以及如何计算AUC

ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,对两者的简单介绍见这里。这篇博文简单介绍ROC和AUC的特点,以及更为深入地,讨论如何作出ROC曲线图以及计算AUC。 ROC曲线 需要提前说明的是,我们这里只讨论二值分类器…

加了权重样本的AUC如何计算

加了权重样本的AUC如何计算?对理解roc_auc_score函数里sample_weight参数以及xgb模型赋予样本权重再评估都有帮助哦~ 一、 roc_auc_score函数中有个参数是sample_weight,可以给样本设置权重。一直不太理解加上weight怎么来计算AUC&#xff…

机器学习之AUC

深入理解AUC AUC是什么 auc是roc曲线的面积,常用来评价二分类系统的好坏。 AUC如何计算 对于二分类问题,预测模型会对每一个预测样本一个得分p,然后选取一个阈值t,当 p > t p>t p>t时,样本预测为正&#…

ROC和AUC

目录 ROC AUC ROC ROC曲线是Receiver Operating Characteristic Curve的简称,中文名为"受试者工作特征曲线"。ROC曲线的横坐标为假阳性率(False Postive Rate, FPR);纵坐标为真阳性率(True Positive Rate, TPR).FPR和TPR的计算方法分别为 F…

Rank: AUC

最近计算了搜索排序的auc指标,记录一下~ AUC很大一个好处是其对正负样本比例不敏感 AUC的三种定义: AUC:一个正例,一个负例,预测正样本为正的概率值比预测负样本为正的概率值还要大的可能性。从一堆0和1中&#xff0c…

auc计算 matlab代码,AUC计算

思路 为最终比较划分好测试集和不存在边集【全集1-train-test-对角元】,根据集合中非零元【即边的数目】构建比较矩阵test_rd【比较n次,随机生成n个值右取整作为抽取的要比较的边】,下一步对test的邻接矩阵赋值,相似性指标给予一个分值存入test_pre,然后依据判断条件【tes…

AUC

最近我们在尝试深度学习模型,离线的auc已经高于基线,上线后ctr表现也优于基线,但是基于线上实际反馈的打点日志,深度学习的模型的auc要明显低于基线。但以前的模型迭代auc是可以和线上ctr对应的。 这个问题比较奇怪,一…

AUC详解

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

笔记︱统计评估指标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;转换是随机的 …