You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部分AUC值能否大于完整AUC?sklearn部分AUC计算方法咨询

Partial AUC大于完整AUC的可能性及Sklearn计算方式解析

一、Partial AUC是否可能大于完整AUC?

完全可能,但要区分是否做了归一化处理:

  • Sklearn默认返回的未归一化partial AUC(对应max_fpr=0.1时,取值范围是00.1),数值上必然小于完整AUC(取值范围01),不可能出现更大的情况。
  • 但如果将partial AUC归一化(除以max_fpr,得到01之间的相对表现值),就完全可能超过完整AUC。比如模型在低FPR(00.1)区间的区分能力极强(ROC曲线陡升,面积占比接近100%),但在高FPR区间表现很差,拉低了整体AUC,这时候归一化后的partial AUC就会高于完整AUC。

二、Sklearn中partial AUC的计算方式

当调用roc_auc_score并设置max_fpr参数时,计算流程如下:

  1. 先计算完整的ROC曲线数据:遍历所有预测阈值,得到对应的FPR(假阳性率)和TPR(真阳性率)数组。
  2. 截取有效区间:筛选出FPR≤max_fpr的所有点;如果原数组中没有刚好等于max_fpr的点,会通过线性插值补充一个(max_fpr, 对应TPR)的点,保证区间[0, max_fpr]闭合。
  3. 计算面积:用梯形法则计算截取后ROC曲线下的面积,这就是返回的未归一化partial AUC。

示例代码(含归一化处理):

from sklearn.metrics import auc, roc_auc_score
complete_AUC = roc_auc_score(y_true, y_pred)
partial_AUC = roc_auc_score(y_true, y_pred, max_fpr=0.1)
# 将partial AUC归一化到0-1区间,便于和完整AUC对比
normalized_partial_AUC = partial_AUC / 0.1

附ROC曲线示意图

ROC曲线示意图

内容的提问来源于stack exchange,提问作者Magi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:15:33