风控模型指标:别只盯着 AUC

如果你在准备风控算法面试,或者刚开始接触互联网风控,很容易把模型评估理解成一句话:
AUC 越高,模型越好。
这句话不算错,但在真实风控业务里远远不够。
风控模型不是 Kaggle 排榜。它面对的是一个更拧巴的问题:正常用户很多,风险用户很少;误伤正常用户会伤体验,漏放风险用户会造成资损。
所以风控里最常见、也最接近业务的一句话其实是:
在误伤率不超过 1% 的情况下,黑样本召回率能做到多少?
这篇文章就围绕这句话,把 Precision、Recall、F1、ROC-AUC、PR-AUC、KS、FPR、FNR、Precision@TopK 这些指标重新串起来。

一、先从混淆矩阵开始
风控二分类里,一般把:
- 黑样本 / 风险样本 / 欺诈样本:正类,记为 Positive;
- 白样本 / 正常样本:负类,记为 Negative。
模型做完预测后,会出现四种结果。
flowchart TD
A[真实样本] --> B{真实是否风险}
B -->|真实风险| C{模型是否拦截}
B -->|真实正常| D{模型是否拦截}
C -->|拦截| TP[TP:抓对黑样本]
C -->|放过| FN[FN:漏放黑样本]
D -->|拦截| FP[FP:误伤正常用户]
D -->|放过| TN[TN:正确放过正常用户]
四个格子分别是:
- TP:True Positive,真实是黑,模型也判黑,抓对了;
- FP:False Positive,真实是白,模型判黑,误伤了;
- TN:True Negative,真实是白,模型也判白,放对了;
- FN:False Negative,真实是黑,模型判白,漏放了。
风控最怕两个问题:
- FP 太多:正常用户被拦、登录失败、优惠券领不了、内容被误删;
- FN 太多:黑产没被拦住,盗号、薅羊毛、刷量、广告作弊继续发生。
二、Precision:我拦的人里,有多少真的是坏人?
Precision 叫准确率、查准率,也可以理解成拦截命中率。
公式:
它回答的问题是:
模型判成风险的人里面,有多少真的有风险?
比如模型拦了 100 个账号,其中 80 个是真黑号,20 个是正常用户。
业务含义就是:
我这把刀砍出去,砍中的有多少是真坏人?
Precision 高,说明误伤相对少,拦截队列比较干净。
但它有一个明显问题:Precision 高,不代表抓得多。
如果模型只拦 10 个最明显的黑号,10 个全是黑号,Precision 是 100%。但如果真实黑号有 10000 个,它只抓住 10 个,业务上几乎没用。
三、Recall:真坏人里,我抓住了多少?
Recall 叫召回率,也可以叫黑样本召回率。
公式:
它回答的问题是:
真实风险样本里,有多少被模型拦住了?
比如真实有 1000 个黑号,模型抓住了 700 个,漏掉 300 个。
业务含义就是:
坏人来了,我能抓住多少?
Recall 高,说明漏放少。
但 Recall 也不能单独看。如果模型把所有人都判成风险,那么所有黑样本都被拦住,Recall = 100%。可正常用户也全被误伤,业务直接爆炸。
四、Precision 和 Recall 是一对拉扯
风控模型一般会输出一个风险分。阈值越高,模型越保守;阈值越低,模型越激进。
flowchart LR
A[提高阈值] --> B[拦截更少]
B --> C[Precision 往往更高]
B --> D[Recall 往往更低]
E[降低阈值] --> F[拦截更多]
F --> G[Recall 往往更高]
F --> H[Precision 往往更低]
这就是 Precision 和 Recall 的核心矛盾:

- 阈值高:少拦,拦得准,但漏得多;
- 阈值低:多拦,抓得多,但误伤也多。
风控策略的难点不是“让某个指标最大”,而是在业务能接受的误伤、人审、资损约束下,找到合适阈值。
五、F1:一个折中指标,但不是风控终点
F1 是 Precision 和 Recall 的调和平均。
公式:
它的特点是:Precision 和 Recall 只要有一个很低,F1 就会被拖下去。
比如:
- Precision = 90%,Recall = 10%,F1 不会好;
- Precision = 50%,Recall = 90%,F1 也不一定好。
F1 适合做模型评估的参考,但在风控业务里,它通常不是最终决策指标。
原因很简单:业务往往不是要一个“综合最优点”,而是有明确约束:
- 登录风控:正常用户误伤率不能超过多少;
- 广告反作弊:广告主资损要压到多少;
- 内容安全:人审队列每天最多能处理多少;
- 营销风控:优惠券拦截不能影响正常新用户转化。
所以业务更常问:
误伤率卡在 1% 以内时,黑样本召回能到多少?
六、FPR:好人里,我误伤了多少?
FPR 是 False Positive Rate,误伤率。
公式:
它回答的问题是:
真实正常用户里,有多少被模型误判成风险?
比如真实有 100000 个正常用户,模型误伤了 1000 个。
这就是风控里常说的:
误伤率不能超过 1%。
为什么 FPR 在风控里这么重要?
因为正常用户通常远多于风险用户。
假设:
- 正常用户:100 万;
- 风险用户:1 万;
- FPR = 1%。
那么误伤人数就是:
1% 听起来很小,但放到大盘用户里可能就是一大批投诉、流失和转化损失。
所以风控里不是单纯说模型 AUC 高,而是要看:
在 FPR 很低的时候,Recall 能不能做高。
七、FNR:坏人里,我漏掉了多少?
FNR 是 False Negative Rate,漏放率。
公式:
它回答的问题是:
真实风险样本里,有多少逃过去了?
FNR 和 Recall 是互补关系:
如果 Recall = 80%,那么 FNR = 20%。
在资损型场景里,比如盗号、支付欺诈、营销薅羊毛,FNR 往往直接对应漏放风险。漏放越高,意味着越多黑产进入后续业务链路。
八、ROC-AUC:整体排序能力
ROC 曲线的横轴是 FPR,纵轴是 TPR,也就是 Recall。
flowchart LR
A[模型输出风险分] --> B[不断调整阈值]
B --> C[得到不同 FPR]
B --> D[得到不同 Recall / TPR]
C --> E[画出 ROC 曲线]
D --> E
E --> F[计算 ROC-AUC]
ROC-AUC 衡量的是整体排序能力。
可以这样理解:
随机拿一个黑样本和一个白样本,模型能不能把黑样本排在白样本前面。
AUC 越高,说明模型整体区分能力越强。
但它在风控里有一个问题:ROC-AUC 看的是整体区间,不一定关心低误伤区域。
比如业务只允许:
那真正关心的是 ROC 曲线左侧那一小段。
一个模型整体 AUC 很高,但在 FPR < 1% 的区域表现一般,业务上未必好。
九、PR-AUC:黑样本很少时更敏感
PR 曲线的横轴是 Recall,纵轴是 Precision。
PR-AUC 是 Precision-Recall 曲线下面积。
它更适合正负样本极不平衡的场景,而风控恰好经常是这种场景。
比如:
- 正常用户:100 万;
- 风险用户:1 万;
- 黑样本占比:1%。
这种情况下,ROC-AUC 有时看起来不错,但 Precision 可能很低。
比如模型拦了 10000 个,其中:
- 真黑:1000;
- 误伤:9000。
那么:
如果后面接人工审核,审核同学会发现 10 个里面 9 个是正常人,队列质量很差。
所以黑样本稀少时,要重点看:
- Precision;
- Recall;
- PR-AUC;
- Precision@TopK。
十、KS:金融风控常用的区分度指标
KS 在金融风控里很常见,用来衡量模型对好坏样本的区分能力。
它看的不是单个阈值,而是好坏样本分数分布能不能拉开。
flowchart TD
A[模型风险分] --> B[黑样本累计分布]
A --> C[白样本累计分布]
B --> D[计算两条累计分布的差值]
C --> D
D --> E[最大差值 = KS]
简单理解:
如果模型好,黑样本的风险分应该整体更高,白样本的风险分应该整体更低。
KS 越大,说明模型越能把好人和坏人分开。
经验上可以粗略理解为:
- KS < 0.2:区分能力偏弱;
- KS 0.2 - 0.4:有一定效果;
- KS 0.4 - 0.6:比较好;
- KS > 0.6:很强,但也要警惕数据泄露或样本穿越。
在互联网风控里,KS 也能看,但没有信贷评分卡场景里那么绝对核心。
十一、Precision@TopK:风险最高的一批,命中率如何?
很多风控场景不是直接全自动拦截,而是要接人工审核、运营复核或者高风险巡检。
这时资源是有限的。
比如每天只能审核 1000 个账号,那你关心的就是:
也就是:
模型风险分最高的 1000 个账号里,有多少是真的风险?
如果 Top 1000 里有 850 个真黑:
这个指标非常适合:
- 人工审核队列;
- 高风险账号巡检;
- 广告作弊点击排序;
- 内容安全优先审核;
- 营销活动异常用户排查。
它回答的是一个很业务的问题:
我资源有限,优先处理最可疑的一批,命中率够不够高?
十二、最重要的业务表达:Recall @ FPR = 1%
现在回到开头那句话:
在误伤率不超过 1% 的情况下,黑样本召回率能做到多少?
翻译成指标语言就是:
或者:
因为 TPR 本质上就是 Recall。
这句话比“模型 AUC 是 0.94”更接近业务,因为它同时回答了两个问题:
- 业务能接受多少误伤?
- 在这个误伤约束下,模型能抓住多少风险?
举个例子:
- 模型 A:ROC-AUC = 0.96,FPR = 1% 时 Recall = 35%;
- 模型 B:ROC-AUC = 0.94,FPR = 1% 时 Recall = 55%。
如果只看整体 AUC,模型 A 更好。
但如果业务明确要求误伤率不能超过 1%,模型 B 可能更有价值。因为它在同样误伤约束下,抓住了更多黑样本。
十三、一个完整数字例子
假设测试集里有:
- 正常用户:100000;
- 风险用户:10000。
业务要求:
也就是说:
模型调阈值后,得到:
- TP = 6000;
- FP = 1000;
- FN = 4000;
- TN = 99000。
那么:
业务表达就是:
在误伤率 1% 的约束下,黑样本召回率达到 60%,拦截准确率 85.7%。
这句话比“模型 AUC 是 0.94”更能说明模型能不能上线。
十四、不同指标适合什么场景?
mindmap
root((风控指标选择))
整体排序能力
ROC-AUC
KS
黑样本稀少
PR-AUC
Precision
Recall
低误伤约束
FPR
Recall@FPR
人审队列
Precision@TopK
TopK召回
资损控制
FNR
漏放金额
如果是模型离线评估,可以看 ROC-AUC、PR-AUC、KS。
如果是策略上线评估,就要进一步看:
- FPR 是否满足业务容忍度;
- Recall 是否足够覆盖风险;
- Precision 是否保证拦截质量;
- Precision@TopK 是否匹配人审容量;
- 漏放金额、误伤投诉、转化损失是否可接受。
十五、面试里可以这样回答
如果面试官问:
风控模型你会看哪些指标?
可以这样答:
我不会只看 AUC。AUC 可以反映整体排序能力,但风控场景更关注业务约束下的效果,比如在 FPR 不超过 1% 或 0.5% 的情况下,黑样本 Recall 能做到多少。
如果后面接人工审核,我还会看 Precision@TopK,保证审核队列的命中率。
在黑样本极度稀少的情况下,我会更关注 PR-AUC、Precision、Recall,而不是只看 ROC-AUC。
最后还要结合业务成本,比如误伤正常用户的损失、漏放风险用户的资损、人审容量和策略拦截强度,选择合适阈值。
这个回答的重点是:你不是只懂公式,而是知道指标背后的业务取舍。
十六、最后用一句话记住
风控模型评估的核心不是:
AUC 有多高?
而是:
在可接受误伤率下,能召回多少真实风险?
再压缩成一句面试金句:
风控不是单纯追求 AUC,而是在低误伤约束下最大化黑样本召回,同时兼顾拦截队列的 Precision。
风控模型指标:别只盯着 AUC
互联网风控算法入门:从账号安全到广告反作弊