ROC/AUC/GAUC/AUUC

Table of Contents

混淆矩阵、分类指标与阈值

当我们考虑一个二分类问题的场景,结果无非四种,我们可以做成一个混淆矩阵:

预测结果\真实结果PositiveNegative
PositiveTP (True Positive)FP (False Positive)
NegativeFN (False Negative)TN (True Negative)

其中我们可以关注两个指标:

  • TPR:TPTP+FN\frac{TP}{TP+FN},即真实为正的人群中,判别出的比例,召回率,越高越好
  • FPR:FPFP+TN\frac{FP}{FP+TN},即真实为负的人群中,被错判为正的比例,误报率,越低越好

当我们考虑分类模型的输出,经过线性层得到 logits 值,再经过非线性变化为概率值,比如 Positive 的概率为0.9,那我们以判定是 P,判定的标准可以是0.5,也可以根据任务的侧重改变,但总有一个阈值来根据概率值进行分类判别。在不同阈值下,TPR和FPR的值都会发生改变

ROC曲线

ROC曲线(Receiver Operating Characteristic)就是在不同阈值下的TPR与FPR的曲线,纵轴表示TPR大小,横轴表示FPR大小。我们先列出不同阈值下的比值,当阈值为1时,样本全部被判定为N,召回率为0;此后随着阈值增加,被判定为T的样本数增加,召回率上升;阈值为0时,样本全部被判定为T,召回率为1。

以原点为起点,可以画出随机分类器基线,表示随机猜测的结果。

AUC:ROC评估结果

AUC(Area Under Curve)表示ROC曲线下的面积,一般取值[0.5,1.0],0.5时等价于随机模型,1.0时为理想分类器。AUC是ROC曲线的量化评估结果,整体评价不受阈值影响,类别不平衡时(均衡时准确率Accuracy有效)依然可靠,更方便比较不同模型能力。

AUC可直观理解为:随机抽取一个P样本和N样本,模型给P打分比给N打分高的概率。又可以理解为模型把正样本排序在负样本之前的概率。

Gini系数是AUC的归一化:Gini=2AUC1Gini=2\cdot AUC-1

GAUC:分组AUC

G即代表Group,核心思想是:先对样本进行分组,计算组内AUC,然后按照各组的权重(样本量等),对组内AUC进行加权平均。

问题源于AUC考虑所有的样本,而在推荐领域,我们考虑的是同个用户内部的点击或转化的item的排序。用户偏差对评估结果会干扰,例如Score shift问题:

  • 假设有用户A点击率0.20,用户B点击率0.01,模型给A的所有item打高分,B的item打低分,AUC值就很高
  • 不会考虑模型有没有把A/B会点的商品排在不会点的商品前面
  • 用户只会看到自己的列表,模型线上效果差。

Uplift曲线与AUUC

累计增益曲线就是按预测 uplift 值从高到低排序,观察随着投放比例增加,累计能拿到多少的真实增量收益,比如:

  • uplift分数排序后 top10%,top20%分桶
  • 计算这一批一批用户的平均uplift
  • 作累积值

横轴是用户比例,纵轴是指标(增量GMV、增量下单),好的模型左侧快速上升,并且整体高于随机基准线,随着用户比例的增加,增速缓慢,是因为人群uplift比较低,甚至是负值,不值得继续投放。

同时还有Qini 曲线,表示相比随机策略,获得了多少增量。QINI系数表示累计增益曲线与随机基准线围成的面积。

在真实业务中,我们可以把它当作是一个粗略的投放阈值参照,如果20%的时候上升快,30%后趋于平缓,那么业务上可能就更多给前20%左右的人发券,但是也要考虑预算约束、风险等问题。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注