模型评估指标AUC

article/2025/10/3 21:26:40

模型评估指标AUC 、

AUC(Area Under Curve)被定义为ROC曲线下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC越接近1.0,检测方法真实性越高;等于0.5时,则真实性最低,无应用价值。

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

混淆矩阵

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

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

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

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

两个变量

在这里插入图片描述
FPR表示,在所有的恶性肿瘤中,被预测成良性的比例。称为伪阳性率。伪阳性率告诉我们,随机拿一个恶性的肿瘤样本,有多大概率会将其预测成良性肿瘤。显然我们会希望FPR越小越好。
在这里插入图片描述
TPR表示,在所有良性肿瘤中,被预测为良性的比例。称为真阳性率。真阳性率告诉我们,随机拿一个良性的肿瘤样本时,有多大的概率会将其预测为良性肿瘤。显然我们会希望TPR越大越好。
如果以FPR为横坐标,TPR为纵坐标,就可以得到下面的坐标系:
在这里插入图片描述
纵坐标:TPR (预测为正,实际为正 占 所有实际为正 比例)
横坐标:FPR (预测为正,实际为负 占 所有实际为负 比例)

可能看到这里,你会觉得有点奇怪,用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曲线

我们知道,在二分类(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值的意义

在这里插入图片描述
但是ROC曲线下的面积等于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记为
[公式]
假设我们有一个分类器,输出是样本输入正例的概率,所有的样本都会有一个相应的概率,这样我们可以得到下面这个图:
在这里插入图片描述

——其中,横轴表示预测为正例的概率,纵轴表示样本数。
所以,蓝色区域表示所有负例样本的概率分布,红色样本表示所有正例样本的概率分布。显然,如果我们希望分类效果最好的话,那么红色区域越接近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)和©为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,©和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。

GAUC

auc在传统的机器学习二分类中还是很能打的,但是有一种场景,虽然是分类模型,但是却不适用auc,即广告推荐领域。

推荐领域使用的CTR(点击率)来作为最终的商用指标,但是在训练推荐模型时,却不用这个指标,用的是GAUC, 为什么呢,

因为推荐模型目前比较成熟的模式是训练分类模型,这个分类模型的任务是预测用户是否会点击给定的商品,因此,推荐系统的核心,仍然是一个二分类问题,但是是更细力度的二分类。
总结:传统的AUC可以评判二分类,但是推荐领域要算的是对于每个人的二分类结果

给定如下情形:

我们准备训练一个模型用来预测用户A和用户B购买iphone、华为和小米的可能性,我们训练了模型α

在这里插入图片描述
对于所有出现的概率值:我们可以计算得到AUC为 [公式]
,好像预测效果不太好。但是,如果对每个用户查看AUC,则有:

用户A auc: [公式]
用户B auc: [公式]
也就是说这个模型其实预测地很完美!

auc的计算:
正样本:0.5,0.4,0.2
负样本:0.3,0.1
正样本3个,负样本2个,正负组合32=6种,
正样本值0.5大于负样本0.3、0.1 有两种,
正样本值0.4大于负样本0.3、0.1 有两种,
正样本值0.2大于负样本0.1 有一种,
所以正样本值大于负样本值的有2+2+1=5
所有auc为5/6=0.833 。
GAUC计算:
用户A的正样本0.5,负样本0.3,所以gauc为1;
用户B的正样本0.4,0.2,负样本0.1,正负组合为2
1种,正样本值大于负样本值有2种,
所以gauc为1

auc反映的是整体样本间的一个排序能力, 而在计算广告领域,我们实际要衡量的是不同用户对不同广告之间的排序能力,因此实际应该更关注的是同一个用户对不同广告间的排序能力。
GAUC(group auc)实际是计算每个用户的auc,然后加权平均,最后得到group auc,这样就能减少不同用户间的排序结果不太好比较这一影响。

group auc具体公式如下:
实际处理时权重一般可以设为每个用户view或click的次数,而且会过滤掉单个用户全是正样本或负样本的情况。
在这里插入图片描述

参考:
原文链接:https://blog.csdn.net/liweibin1994/article/details/79462554
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/
https://link.zhihu.com/?target=https%3A//blog.csdn.net/zhaohang_1/article/details/92794489
https://zhuanlan.zhihu.com/p/84350940


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

相关文章

AUC与ROC

ROC曲线 含义 ROC曲线用来衡量阈值对模型的影响,在模型输入不变的情况下改变判断标准而获得不同的结果。是一条描述随着判断阈值变化而得到不同真阳率和假阳率结果的曲线。 例子 为了直观理解,我们做出以下三个假设: 假设1 感冒有三种…

ROC与AUC理解

ROC与AUC 简介ROC曲线ROC的动机ROC曲线特殊点 ROC曲线的绘制为什么使用ROCROC曲线使用多个实例概率/得分相同 AUC(Area Under ROC Curve)AUC判断分类器优劣的标准:AUC的物理意义损失公式AUC值的计算对于auc物理意义的理解: sklearn使用参考 简介 ROC:&a…

AUC的两种计算方式

1.什么是AUC? 推荐 搜索场景下的auc理解_凝眸伏笔的博客-CSDN博客_搜索auc 随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率…

AUC到底是什么?

前言 上一篇单值AUC计算优化里,提到了AUC,AUC的全名是Area Under Curve,就是ROC曲线下的面积,上一篇文中提到了AUC是评估模型整体排序能力的,但是具体是什么没有进行展开介绍,考虑到可能很多人对这么个玩意…

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地址是不现实的,为了使所有内部主机都…