0%

AUC里的道道

AUC的全称是Area Under ROC,及ROC曲线与坐标轴形成的面积,取值范围[0,1]。这个指标想要表达的含义,简单说是随机抽出一对样本(一个正样本,一个负样本),然后训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。

AUC = P(P正样本>P负样本)

混淆矩阵定义

image-20210425153200018

  • TP: 将正类预测为正类数
  • FN: 将正类预测为负类数
  • FP: 将负类预测为正类数
  • TN: 将负类预测为负类数

准确率,精确率,召回率,F1

  • 准确率 (Accuracy):ACC = ( TP+TN ) / (TP + TN + FP + FN),正负样本预测正确的个数与所有样本数的比值。

  • 精确率 (Precision): Precision = TP / (TP + FP), 查准率,即所有预测为正中,真正为正的比例。

  • 召回率: Recall = TP / (TP + FN),即所有正样本中,预测为正的比例(灵敏性、敏感性、查全率)。

  • F1值: 2/F1 = 1/Precision + 1/Recall, 对Precision和Recall计算调和平均数。公式转化后为 F1 = 2PR/(P + R) = 2TP/(2TP + FP + FN)。精确率和召回率都高的时候,F1也会高。

  • Matthews correlation coefficient (MCC) [-1,+1]:

    image-20210425173451742

ROC曲线

ROC曲线是基于样本的真实类别和预测概率来画的,x轴是伪阳率(False Positive Rate)即在所有实际为负的样本中,预测为正的比率;y轴是真阳率(True Positive Rate)即在所有实际为正的样本中,预测为正的比率。

  • TPR = TP/P = TP/(TP + FN)

  • FPR = FP/N = FP/(FP + TN)

给定不同阈值,可以计算出多组(X=FPR,Y=TPR)。我们希望分类器达到的效果是:对于真实类别为1的样本,分类器预测为1的概率(即TPRate),要大于真实类别为0而预测类别为1的概率(即FPRate),即y>x 。

AUC

AUC的计算方式

  1. 直接计算ROC曲线下面的面积。但这样做有个缺点,当多个测试样本的score相等时,调整阈值,得到的是一个斜向上的梯形,此时需要计算梯形的面积。比较麻烦。

  2. 分别随机从正负样本集中抽取一个正负样本,正样本的预测值大于负样本的概率。

image-20210425164758683

image-20210425164820348

M,N分别为正样本数和负样本数,时间复杂度为O(n^2)。

  1. 第三种方式与第二种方式是一样的,但优化了复杂度。首先对score从小到大排序,最大score对应的样本的rank为n,第二大为n-1,以此类推。然后将所有正样本的rank相加,再减去M-1种两个正样本组合的情况。rank n 与前n-1组合,有M-1是正样本。为简便计算,取n组,相应的不符合为M。

image-20210425165905198

当score相等时,需要对这些score相等的样本的rank取平均,然后再使用上述公式。

AUC的优势

AUC的计算方法同时考虑分类器对于正例和负例的分类能力,在样本不平衡的情况下,依然能够对分类器作出合理的评价。

例如在反欺诈场景,设欺诈类样本为正例,正例占比很少(假设0.1%),如果使用准确率评估,把所有的样本预测为负例,便可以获得99.9%的准确率

但是如果使用AUC,把所有样本预测为负例,TPRate和FPRate同时为0(没有Positive),与 (0,0) 和 (1,1)连接,得出AUC仅为0.5,成功规避了样本不均匀带来的问题。

AUC的局限性

AUC作为排序的评价指标本身具有一定的局限性,它衡量的是整体样本间的排序能力,对于计算广告领域来说,它衡量的是不同用户对不同广告之间的排序能力,而线上环境往往需要关注同一个用户的不同广告之间的排序能力。阿里在 [Deep Interest Network] 种提到一种改进的AUC指标,用户加权平均AUC,更能反映线上真实环境的排序能力。

gAUC(group auc)

image-20210425171740410

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

PR曲线

x轴Recall,y轴Precision。

AUPR:PR曲线下面积。