AUC
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)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

在上图中,(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}}
\]
标签:
机器学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?