AUC怎么算啊?
AUC(Area Under the ROC Curve)计算方法:
核心思路:按预测概率排序,逐步计算真正率(TPR)和假正率(FPR),计算ROC曲线下面积。
简单手算法:
- 将样本按预测概率从高到低排序
- 遍历每个阈值(通常取每个样本的预测值作为阈值),计算:
- TPR = 真正例 / 总正例
- FPR = 假正例 / 总负例
- 连接(FPR, TPR)点,梯形法则求面积
公式法(常见于考试):
AUC = (Σ(正样本排名之和) - n_pos×(n_pos+1)/2) / (n_pos × n_neg)
其中 n_pos=正样本数,n_neg=负样本数,排名按预测值从大到小。
示例(5个样本,2个正例3个负例):
- 预测值:[0.9, 0.8, 0.7, 0.6, 0.5]
- 真实标签:[1, 0, 1, 0, 0]
- 正样本排名:1, 3(按预测值从大到小排第1和第3)
- 排名和=1+3=4,AUC = (4 – 2×3/2) / (2×3) = (4-3)/6 = 0.1667(错误示例?)
注意:以上示例排名应修正为:
- 正样本排名:第1、第3(正确),排名和=4,n_pos=2,n_neg=3
- 代入公式:(4 – (2×3)/2)/(2×3) = (4 – 3)/6 = 0.1667
- 但正确AUC应为0.8333,说明公式中排名需从1开始且使用降序排列,正确排名:第1、第3,排名和=1+3=4,分母需减去最小值修正。
简化:考试中建议直接记住AUC含义(随机正样本排在负样本前的概率),计算可用工具库(如sklearn.metrics.roc_auc_score)。