图解AUC和GAUC

11 篇文章 0 订阅
11 篇文章 0 订阅

网上看过不少关于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)都有渗透
  • 那怎么理解渗透呢?
    如图E(1)和E(2)所示,分别对应两个模型的概率预测结果:
    在这里插入图片描述
    当给E(1)和E(2)随机指定一个阈值的时候:
    在这里插入图片描述
    直观上,很明显地,E(3)的预测结果,要比E(4)好,因为当E(3)的分割线恰好在两个分布中央的时候,正样本和负样本都完全被预测正确,而E(4)无论怎么找阈值,都找不到一个这样的阈值能够完全把两类样本分割开。所以现在应该能体会到遍历所有阈值的好处了吧:不用具体指定一个阈值,因为并不是每个模型的最佳分割阈值都是0.5,遍历所有阈值取看分类的结果怎样,实际还是查看模型对两类数据的区分度是否够大,类间距是否更明显。
    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.横坐标:假正数(红色的被预测为正样本的个数)
2.纵坐标:真正数(绿色的被预测为正样本的个数)

在这里插入图片描述
实际至此,我们就得到了ROC曲线D(1),一般而言,得到了ROC就直接可以计算AUC的值了。通用的结论是
A U C = R O C 曲 线 下 的 面 积 在 x × y 区 域 面 积 AUC=\frac{ROC曲线下的面积}{在x×y区域面积} AUC=x×yROC线
在这里插入图片描述
本例中,计算AUC的方法其实不固定:

  • 解法1:可以先归一化x轴和y轴,进而计算这个面积得到auc=0.88,如D(2);
  • 解法2:也可以直接采用数格子的方法就可以了D(3),即 22/25 = 0.88

二、AUC

  • 但是ROC曲线下的面积等于AUC,这句话怎么理解呢?

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

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

这里我们可以设想一种理想状态:
正样本和负样本是两个互不纠缠的正态分布,其中有M个正样本,N个负样本。在这里插入图片描述
阈值如果遍历所有正样本,则每个正样本都比N个负样本大,因此,积分下来,就是N+N+N+…+N = M * N,而积分的区域是M * N,因此,这种理想状态下,得到了AUC为 A U C = ∑ i = 1 M N M ∗ N = 1 AUC=\frac{\sum_{i=1}^{M}N}{M*N}=1 AUC=MNi=1MN=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*5=25
    因此最终的AUC记为 A U C = 5 + 5 + 5 + 4 + 3 5 ∗ 5 = 0.88 AUC=\frac{5+5+5+4+3}{5*5}=0.88 AUC=555+5+5+4+3=0.88

  • 以上这个过程,老前辈们已经将之归纳为公式:
    A U C = ∑ i ∈ P o s i t i v e C l a s s r a n k i − M ∗ ( 1 + M ) 2 M × N AUC=\frac{\sum_{i \in Positive Class}rank_i-\frac{M*(1+M)}{2}}{M×N} AUC=M×NiPositiveClassranki2M(1+M)


三、GAUC

auc在传统的机器学习二分类中还是很能打的,但是有一种场景,虽然是分类模型,但是却不适用auc,即广告推荐领域。推荐领域使用的CTR(点击率)来作为最终的商用指标,但是在训练推荐模型时,却不用这个指标,用的是AUC,为什么呢,因为推荐模型目前比较成熟的模式是训练分类模型,这个分类模型的任务是预测用户是否会点击给定的商品,因此,推荐系统的核心,仍然是一个二分类问题,但是是更细力度的二分类。

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

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

iphone (正样本)华为(正样本)小米(负样本)
用户A0.50.3
用户B0.40.20.1
  • 对于所有出现的概率值:我们可以计算得到AUC为 2 + 2 + 1 2 ∗ 3 = 5 6 = 0.833 \frac{2+2+1}{2*3}=\frac{5}{6}=0.833 232+2+1=65=0.833,好像预测效果不太好。但是,如果对每个用户查看AUC,则有:
    用户A auc: a u c = 1 1 ∗ 1 = 1 auc = \frac{1}{1*1} = 1 auc=111=1
    用户B auc: a u c = 1 + 1 2 ∗ 1 = 1 auc = \frac{1+1}{2*1} = 1 auc=211+1=1
    也就是说这个模型其实预测地很完美!

所以传统的AUC在这种情况下失效了,由此引入了GAUC来从更细的力度上评估分类结果


暂时写累了,关于GAUC,抽时间再补充~

  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值