图解AUC和GAUC

转自:图解AUC和GAUC - 知乎

网上看过不少关于AUC和GAUC的材料,但是都是文字描述,一点也不直观, 因此萌生了使用图解的方式详细剖析一下AUC和GAUC的想法,也希望以此能帮助大家快速理解概念。其中,说到AUC就不得不提ROC曲线,因此这里分三个部分来解读:ROC、AUC、GAUC。

一、ROC前身:通用的对分类模型的评价

步骤1:给定样本如图A:其中绿色为正样本,红色为负样本;

步骤2:训练一个机器学习模型,然后用这个模型对每个样本计算得到一个预测概率,这个概率值在[0, 1]范围内,如图B;

步骤3:此时,有一个参数是可以人为指定的:即阈值。当我们将阈值设为0.35、0.50、0.65的时候,会得到以下分类结果。

通常我们都是用取中间的值(0.50)作为阈值:大于0.50为正样本,小于0.50为负样本。但实际我们会发现,不同的阈值直接影响了最终的分类结果:

  • 1. threshold=0.35:正样本全预测正确,负样本有两个预测错误
  • 2. threshold=0.50:正样本有一个预测错误,负样本有一个预测错误
  • 3. threshold=0.65:正样本有两个预测错误,负样本全预测正确

小归纳

我们动态地调节了阈值,并发现不同阈值下的分类结果会不同,这么做有什么用呢

实际这可以评估模型对所有样本的预测概率在宏观层面,是否足够好。

那什么叫预测的概率好呢?有点抽象。简单来说,就是

  • 正样本被预测的概率都集中在一起而且倾向于1
  • 负样本被预测的概率都集中在一起而且倾向于0

正、负样本 被预测的概率尽量不存在互相渗透(正负样本预测的概率值相互揉杂在一起)的现象,实际上,上面的C(1)、C(2)、C(3)都有渗透。那怎么理解渗透呢?

如下图所示,分别对应两个模型的概率预测结果:

当给两个模型随机指定一个阈值的时候:

直观上,很明显地,左图的预测结果,要比右图好,因为当左图的分割线恰好在两个分布中央的时候,正样本和负样本都完全被预测正确,而右图无论怎么找阈值,都找不到一个这样的阈值能够完全把两类样本分割开。

所以现在应该能体会到遍历所有阈值的好处了吧:

遍历所有阈值取看模型分类分类效。实际上是查看模型对两类数据的区分度是否够大,类间距是否更明显。

ok,先理解到这里,接下来我们讨论roc曲线!

二、ROC曲线

刚才,我们遍历所有阈值,并查看给定每个阈值的情况下的分类情况如何但是最终我们要把所有的这些分类结果进行融合,如何做呢?

大牛们就准备找个方式来度量这个融合,因此诞生了ROC。

由于预测概率值取值范围为:{0.9,0.8,0.7,0.6,0.4,0.3,0.2,0.1}

因此我们可选的用于遍历的阈值也是:{0.9,0.8,0.7,0.6,0.4,0.3,0.2,0.1}

阈值的使用方法是:当预测概率大于等于阈值的时候,则预测结果正样本,否则预测为负样本。

还是用最上面的样本集合,当模型对样本的预测概率如下图时:

我们看一下,在选用不同的阈值的时候,以下两种指标是如何变化的:

  • 1.纵坐标:TPR (预测为正,实际为正 占 所有实际为正 比例)
  • 2.横坐标:FPR (预测为正,实际为负 占 所有实际为负 比例)

实际至此,我们就得到了ROC曲线D(1),一般而言,得到了ROC就直接可以计算AUC的值了。通用的结论是:AUC = \frac{ROC \ area}{x\times y}

所有AUC值为0.88。

三、AUC

但是ROC曲线下的面积等于AUC,这句话怎么理解呢?(其实这里讲解了AUC的第二种计算方式)

实际上,这可以理解为一种积分过程,积分的内容是啥呢:
每个预测为正的样本,能比多少个负样本大

积分所在的区域是啥呢?实际是正样本和负样本的交叉,也即
正样本数∗负样本数

这里我们可以设想一种理想状态:

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

阈值如果遍历所有正样本,则每个正样本都比N个负样本大,因此,积分下来,就是N+N+N+...+N = M\times N,而积分的区域是M \times N,因此,这种理想状态下,得到了AUC为:AUC = \frac{\sum_{i=1}^{M}N}{M\times N} = 1

因此这里我们可用通过这种方式重新计算第一节中的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\times 5=25

因此最终的AUC记为:AUC = \frac{5+5+5+4+3}{5\times 5} = 0.88

四、GAUC

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

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

因为推荐模型目前比较成熟的模式是训练分类模型,这个分类模型的任务是预测用户是否会点击给定的商品,因此,推荐系统的核心,仍然是一个二分类问题,但是是更细力度的二分类。

总结:传统的AUC可以评判二分类,但是推荐领域要算的是对于每个人的二分类结果

给定如下情形:

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

对于所有出现的概率值:我们可以计算得到AUC为:(2+2+1) / (2*3) = 0.833,好像预测效果不太好。但是,如果对每个用户查看AUC,则有:

用户A auc: 1 / (1*1) = 1

用户B auc: (1+1) / (2*1) = 1

也就是说这个模型其实预测地很完美!

有读者反映这步没看懂,我详细的写一下:
auc的计算:
正样本:0.5,0.4,0.2
负样本:0.3,0.1
正样本3个,负样本2个,正负组合3*2=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来从更细的力度上评估分类结果。

auc反映的是整体样本间的一个排序能力,

而在计算广告领域,我们实际要衡量的是不同用户对不同广告之间的排序能力,

因此实际应该更关注的是同一个用户对不同广告间的排序能力。

GAUC(group auc)实际是计算每个用户的auc,然后加权平均,最后得到group auc,这样就能减少不同用户间的排序结果不太好比较这一影响。

group auc具体公式如下:

实际处理时权重一般可以设为每个用户view或click的次数,而且会过滤掉单个用户全是正样本或负样本的情况。

在原来博主的文章中进行简单的修改。另感谢原博主写的精彩文章

原文链接:

机器学习那些事儿[八]-ROC和AUC,你真的懂了吗?

https://blog.csdn.net/zhaohang_1/article/details/92794489

欢迎看另一篇文章:

千寻:对准确率、精确率、召回率、AUC、ROC的理解55 赞同 · 11 评论文章

“无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值