AUC

发布时间 2023-04-28 10:15:13作者: shiiiilong

AUC (Area Under Curve)

定义

  • 定义1:ROC曲线所围成的面积
  • 定义2:分别随机从正负样本集中抽取一个正样本,一个负样本,正样本的预测值大于负样本的概率。

ROC曲线

横坐标为伪阳性率 (FPR: False Positive Rate),纵坐标为真阳性率 (TPR: True Positive Rate)

预测
1 0
实际 1 TP FN
0 FP TN

FPR:负样本中判为正例的概率

\[\frac{FP}{FP+TN} \]

TPR:正样本中判为正例的概率(Recall)

\[\frac{TP}{TP+FN} \]

ROC曲线上的每一个点对应于一个threshold,对于一个分类器,每个threshold下会有一个TPR和FPR。比如Threshold最大时,TP=FP=0,对应于原点;Threshold最小时,TN=FN=0,对应于右上角的点(1,1)

AUC的优点

  • 评估效果不受阈值选择的影响。
  • 当测试集中的正负样本分布发生变化了,ROC曲线可以保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
image

在上图中,(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。

(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。

可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。

AUC计算方式

方法一:

积分算面积

方法二:

任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。

然后在有限样本中用频率估计概率

\[AUC=\frac{\sum{Score_p >S core_n}}{positiveNum*negativeNum} \]

举个例子:

score 0.9 0.8 0.7 0.7 0.7 0.5 0.4

score为0.9的正样本,后面有3个负样本

score为0.7的两个正样本,后面各有1.5个负样本(0.7的负样本因为和他们同分,算0.5 个)

\[AUC=\frac{3+1.5+1.5}{4*3} \]

改进:Group AUC

以广告领域,在样本中有多个用户时,A用户的正例和B用户的负例就没有比较意义的(因为用户广告之间的排序是个性化的,不同用户的排序结果不太好比较,可能auc这个指标失真了)

所以可以先求每个用户的AUC,再求加权和

\[GAUC=\frac{\sum_{i\in Person }{W_i*AUC_i}}{\sum_{i\in Person}{W_i}} \]