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

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

文章目录

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


1 AUC的两种解读视角:

1.1 ROC曲线与坐标轴形成面积

AUC 的全称是 AreaUnderRoc 即 Roc 曲线与坐标轴形成的面积,取值范围 [0, 1].

Roc (Receiver operating characteristic) 曲线是一种二元分类模型分类效果的分析工具。首先需要知道如下定义:

  • TPR: 在所有实际为阳性的样本中,被正确地判断为阳性之比率TPR = TP/P = TP/(TP+FN)
  • FPR: 在所有实际为阴性的样本中,被错误地判定为阳性之比率 FPR = FP/N = FP/(FP + TN)

给定一个二元分类模型和它的阈值,就能从所有样本的(阳性/阴性)真实值和预测值计算出一个 (X=FPR, Y=TPR) 座标点。

在这里插入图片描述

从 (0, 0) 到 (1,1) 的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。

然后来看一下如何画ROC曲线:
参考的是:roc曲线怎么画?

第一步是按照属于‘正样本’的概率将所有样本排序,如下图所示
在这里插入图片描述
然后遍历每个样本来看:
第二步,让我们依次来看每个样本。对于样本1,如果我们将他的score值做阈值,也就是说,只有score大于等于0.9时,我们才把样本归类到真阳性(true positive),这么一来, 在ROC曲线图中,样本1对应的混淆矩阵(confusion matrix)为

在这里插入图片描述
其中,只有样本1我们看作是正确分类了(也就是我们预测是正样本,实际也是正样本);其余还有9个实际是正样本,而我们预测是负样本的(2,4,5,6,9,11,13,17,19);剩下的实际是负样本,我们都预测出是负样本了(也就是false positive = 0, true negative = 10)。从混淆矩阵中,我们可以算出X轴坐标(false positive rate)= 0/(0+10)= 0 和Y轴坐标(true positive rate)= 1/(1+9)= 0.1,这就是下图中的第一个点

在这里插入图片描述
同理我们来看样本3,它的混淆矩阵为
在这里插入图片描述
其中,样本1,2我们看作是正确分类了(也就是我们预测是正样本,实际也是正样本);其余还有8个实际是正样本,而我们预测是负样本的(2,4,5,6,9,11,13,17,19);而样本3是假阳性(我们预测是正样本,实际是负样本);剩下的(7,8,10,12,14,15,16,18,20)实际是负样本,我们都预测出是负样本了(也就是false positive = 1, true negative = 9)。从样本3的混淆矩阵中,我们可以算出X轴坐标(false positive rate)= 1/(1+9)= 0.1 和Y轴坐标(true positive rate)= 2/(2+8)= 0.2,这就是下图中的第三个点。

1.2 古典概率模型——求导AUC

文章【最浅显易懂的图解AUC和GAUC】有提及:

另一种定义更常用,分别随机从正负样本集中抽取一个正样本,一个负样本,正样本的预测值大于负样本的概率。

按照定义分别随机从政府样本集中抽取一个正负样本,正样本的预测值大于负样本的概率。
每个预测为正的样本,能比多少个负样本大 积分所在的区域是啥呢?
实际是正样本和负样本的交叉,也即 正样本数∗负样本数
这里我们可以设想一种理想状态:
在这里插入图片描述

正样本和负样本是两个互不纠缠的正态分布,其中有M个正样本,N个负样本。

阈值如果遍历所有正样本,则每个正样本都比N个负样本大,因此,积分下来,就是N+N+N+…+N = M * N,而积分的区域是M * N,因此,这种理想状态下,得到了AUC为
在这里插入图片描述

因此这里我们可用通过这种方式重新计算第一节中的AUC
在这里插入图片描述
第一节中,原始有五个正样本:

  • p=0.9的真实正样本,它在所有5个负样本前面,因此记为5
  • p=0.8的真实正样本,它在所有5个负样本前面,因此记为5
  • p=0.7的真实正样本,它在所有5个负样本前面,因此记为5
  • p=0.6的真实正样本,它在4个负样本前面,因此记为4
  • p=0.4的真实正样本,它在3个负样本前面,因此记为3

交叉区域记为5*5=25
因此最终的AUC记为

在这里插入图片描述

此时的一个通俗易懂的解读:

例如0.7的AUC,其含义可以大概理解为:给定一个正样本和一个负样本,在70%的情况下,模型对正样本的打分高于对负样本的打分。
可以看出在这个解释下,我们关心的只有正负样本之间的分数高低,而具体的分值则无关紧要。


2 AUC的特性与优劣

(1)AUC指标本身和模型预测score绝对值无关,只关注排序效果,因此特别适合排序业务。
当然也会带来问题:
AUC 反应了太过笼统的信息。无法反应召回率、精确率等在实际业务中经常关心的指标。
还有,AUC 的 misleading 的问题:
在这里插入图片描述

modelA 和 modelB 的 ROC 曲线下面积 AUC 是相等的,但是两个模型在不同区域的预测能力是不相同的,所以我们不能单纯根据 AUC 的大小来判断模型的好坏。

(2)AUC对分值本身不敏感,故常见的正负样本采样,并不会导致auc的变化。

比如在点击率预估中,处于计算资源的考虑,有时候会对负样本做负采样,但由于采样完后并不影响正负样本的顺序分布。

即假设采样是随机的,采样完成后,给定一条正样本,模型预测为score1,由于采样随机,则大于score1的负样本和小于score1的负样本的比例不会发生变化。

但如果采样不是均匀的,比如采用word2vec的negative sample,其负样本更偏向于从热门样本中采样,则会发现auc值发生剧烈变化。

(3)auc非常适合评价样本不平衡中的分类器性能


3 AUC多大才算好?

多高的AUC才算高?

首先AUC = 1可能吗?

难度非常大,样本数据中本身就会存在大量的歧义样本,即特征集合完全一致,但label却不同。

当我们拿到样本数据时,第一步应该看看有多少样本是特征重复,但label不同,这部分的比率越大,代表其“必须犯的错误”越多。学术上称它们为Bayes Error Rate,也可以从不可优化的角度去理解。

影响Max AUC的主要因素:样本的不确定性。

AUC的高低只和特征取值的多样性有关。

其实不只是Max AUC,在真实问题中使用更多好的特征也会提高AUC(起码是训练集AUC),本质上是因为更多的特征可以组合出更多的特征取值来,从而提高特征的区分能力。


4 线上、线下AUC差异较大成因分析

4.1 业务场景使用AUC:点击模型与购买模型的差异

AUC大小 => 点击模型 < 购买转化率模型 => 购买model 更好预测
线下、线上差异 = > 点击模型< 购买转化率模型 => 购买model 线上与线下差异较大

我们在实际业务中,常常会发现点击率模型的auc要低于购买转化率模型的auc。
正如前文所提,AUC代表模型预估样本之间的排序关系,即正负样本之间预测的gap越大,auc越大。
通常,点击行为的成本要低于购买行为,从业务上理解,点击率模型中正负样本的差别要小于购买力模型,
即购买转化模型的正样本通常更容易被预测准。
AUC毕竟是线下离线评估指标,与线上真实业务指标有差别。差别越小则AUC的参考性越高。
比如上文提到的点击率模型和购买转化率模型,虽然购买转化率模型的AUC会高于点击率模型,但往往都是点击率模型更容易做,线上效果更好。
购买决策比点击决策过程长、成本重,且用户购买决策受很多场外因素影响,比如预算不够、在别的平台找到更便宜的了、知乎上看了评测觉得不好等等原因,这部分信息无法收集到,导致最终样本包含的信息缺少较大,模型的离线AUC与线上业务指标差异变大。

总结起来,样本数据包含的信息越接近线上,则离线指标与线上指标gap越小。而决策链路越长,信息丢失就越多,则更难做到线下线上一致。

4.2 线上、线下AUC有差异

情况一:新模型比老模型auc高

代表新模型对正负样本的排序能力比老模型好。

理论上,这个时候上线abtest,应该能看到ctr之类的线上指标增长。

实际上经常会发生不一致,首先,我们得排除一些低级错误:

排除bug,线上线下模型predict的结果要符合预期。

谨防样本穿越。比如样本中有时间序类的特征,但train、test的数据切分没有考虑时间因子,则容易造成穿越。

情况二:离线auc涨了不少,上线一看效果ctr和cpm反而下降

几种可能的原因和解决办法:

  1. 特征/数据出现穿越

一般就是使用了和label强相关的特征导致的数据泄漏。这种问题一般相对好查,很多时候在离线阶段就能发现。
明显的表现就是训练集和测试集差异比较大
2. 线上线下特征不一致
据我所知,这种情况是导致离线涨在线跌或者没效果的最常见情况。

首先是代码不一致,例如,离线对用户特征的加工处理采用scala/python处理,抽取用户最近的50个行为,在线特征抽取用c++实现只用了30个。
只要离线和在线用不同的代码抽取就很容易存在这种代码带来的不一致。
另外一种线上线下不一致,是由于数据的不一致导致。

这在离线拼接样本和特征的pipeline中比较常见。

一般离线特征都是按照天处理的,考虑各种数据pipeline的流程,处理时间一般都会有延迟,离线特征处理完之后导到线上供线上模型预估时请求使用。
要严格保证线上线下的特征一致性,最根本的方法就是同一套代码和数据源抽取特征,业内目前通用的方法就是,在线实时请求打分的时候落地实时特征,训练的时候就没有特征拼接的流程,只需要关联label,生成正负样本即可
3. 数据分布的不一致
如果仔细排查,既不存在数据泄漏,也没有出现不一致的问题,
离线auc明明就是涨了很多,线上就是下降,而且是离线涨的越多,线上下降越多,还有一种可能就是数据的不一致,也就是数据的“冰山效应”

----离线训练用的是有偏的冰山上的数据,而在线上预估的时候,需要预测的是整个冰山的数据,包括大量冰面以下的数据!

这里给下两个在我们这还比较有效的经验:

(1)对无偏数据进行上采样
这里的无偏是相对的,可以是随机/探索流量产生的样本,也可以是新模型产生的样本。大概意思,就是尽可能利用这些对新模型有利的样本

(2)线上线下模型融合

比较trick的方法,没有太多方法论,但是确实能work。


5 AUC逻辑升级 - GAUC

AUC作为排序的评价指标本身具有一定的局限性,它衡量的是整体样本间的排序能力,对于计算广告领域来说,它衡量的是不同用户对不同广告之间的排序能力,而线上环境往往需要关注同一个用户的不同广告之间的排序能力。

线上会出现新样本,在线下没有见过,造成AUC不足。

这部分更多是采用online learning的方式去缓解,AUC本身可改进的不多。

线上的排序发生在一个用户的session下,而线下计算全集AUC,即把user1点击的正样本排序高于user2未点击的负样本是没有实际意义的,但线下auc计算的时候考虑了它。

所以,阿里在 Deep Interest Network中提到一种改进版本的 AUC 指标,用户加权平均AUC(gAUC)更能反映线上真实环境的排序能力。

图片

即以user为group,在对user的impression做加权平均。私以为,只是对用户做group还不够,应该是基于session去做group。


参考文献

  • 1 AUC的理解与计算
  • 2 最浅显易懂的图解AUC和GAUC
  • 3 为什么搜索与推荐场景用AUC评价模型好坏?
  • 4 如何理解机器学习和统计中的AUC?
  • 5 多高的AUC才算高?
  • 6 线下AUC提升为什么不能带来线上效果提升?–测试和评估的一些真相
  • 7 精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
  • 8 如何解决离线和线上auc和线上点击率不一致的问题?
  • 9 AUC 的缺陷是什么?
  • 10 线下auc涨,线上ctr/cpm跌的原因和解决办法

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

相关文章

AUC原理详细讲解

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

详解AUC指标

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

机器学习篇-指标:AUC

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

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

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

NAT和NAPT 技术

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

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

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

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

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

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策略。除…

NAPT的类型(Cone NAT、Symmetric NAT)

NAPT与NAT的区别在于&#xff0c;NAPT不仅转换IP包中的IP地址&#xff0c;还对IP包中TCP和UDP的Port进行转换。这使得多台私有网主机利用1个NAT公共IP就可以同时和公共网进行通信。&#xff08;NAPT多了对TCP和UDP的端口号的转换&#xff09; 一、带防火墙的NAT NAT一开始的功…