先这样答
AUC 有两种计算方法:一种按正负样本对的排序概率计算,另一种按 ROC 曲线下面积计算。
第一种是概率解释。AUC 表示正样本分数排在负样本分数之前的概率。设正样本和负样本组成样本对,公式是:AUC = 正样本排在负样本前的对数 / 正负样本对总数。也可以写成:AUC = P(s⁺ > s⁻)。
第二种基于 ROC 曲线。先按预测分数从高到低扫描样本,依次计算每个位置的 FPR 和 TPR。AUC 等于 ROC 曲线下面积,公式是:AUC = Σ(ΔFPR × TPR 梯形面积)。其中,每一段使用相邻两个点的 TPR 计算梯形面积。面试中可以先说两种定义,再分别写出公式。
面试官会怎么追问
-
「两种方法算出来的 AUC 为什么一致?」
第一种方法统计正负样本对的排序结果。第二种方法统计不同阈值下的 TPR 和 FPR,并计算 ROC 曲线面积。两者都衡量正样本分数排在负样本之前的能力。 -
「ROC 曲线的 AUC 具体怎么计算?」
按分数降序扫描样本,每移动一个位置,就得到一个新的 FPR 和 TPR。相邻两个 ROC 点之间形成梯形,用 FPR 增量乘以该段 TPR 的梯形面积,再把所有区间相加。 -
「为什么还要追问 GAUC?」
GAUC 会先按用户分组,在每个用户组内计算 AUC。然后对各用户组的 AUC 做加权平均,以减少用户之间的偏置。
回答的坑
- 只说 AUC 是 ROC 曲线下面积,却没有写正负样本对的概率公式,答案不完整。
- 直接把所有用户样本混在一起计算 AUC,漏掉了 GAUC 的用户分组和加权平均。
同系列的题
这家公司的面经实录
—— 本题完 ——