AUC到底是什么?

前言

上一篇单值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有更深一点的理解吧。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值