2. 漂移检测指标:PSI、KS统计量、KL散度、JS散度、Wasserstein距离
模型漂移检测的核心在于选择合适的统计指标来量化参考分布(训练/验证集)与当前分布(生产数据)之间的差异。不同的指标对分布变化的敏感度、计算复杂度和适用场景各不相同。本节将深入剖析五种最常用的漂移检测指标,帮助你在实际工程中做出正确选择。
2.1 指标全景对比
下表从核心原理、数值范围、敏感度、主要应用场景四个维度对五种指标进行横向对比,便于快速建立全局认知。
| 指标 | 核心原理 | 数值范围 | 敏感度 | 主要应用场景 |
|---|---|---|---|---|
| PSI | 基于分箱的群体稳定性 | [0, +∞) | 中等,对整体分布偏移敏感 | 评分卡、信用风险模型 |
| KS统计量 | 经验分布函数的最大垂直距离 | [0, 1] | 高,对分布位置和形状变化敏感 | 二分类模型、阈值判定 |
| KL散度 | 相对熵,衡量分布差异 | [0, +∞) | 高,对分布尾部差异敏感 | 概率模型、生成模型 |
| JS散度 | KL散度的对称平滑版本 | [0, 1] | 中等,对称且稳定 | 文本分类、多模态分布 |
| Wasserstein距离 | 最优传输理论,推土机距离 | [0, +∞) | 高,对分布支撑集变化敏感 | 图像生成、高维数据 |
选型建议:对于金融风控等监管严格的场景,PSI 是行业标准;对于需要捕捉细微分布变化的场景,优先考虑 Wasserstein 距离;KL 散度在非对称场景下需谨慎使用,JS 散度提供了更好的对称性和有界性。
2.2 指标详解与计算公式
2.2.1 PSI(群体稳定性指标)
PSI 是金融风控领域最经典的漂移指标,通过将连续变量分箱后,比较每个箱内样本占比的变化来量化分布偏移。计算公式如下:
PSI = Σ (Actual_i - Expected_i) * ln(Actual_i / Expected_i)
其中:
- Expected_i:训练集在第 i 个箱中的样本占比
- Actual_i:生产数据在第 i 个箱中的样本占比
- 分箱数量通常为 10 箱(等频或等距)
PSI 的工程解读标准:
- PSI < 0.1:无显著漂移,模型稳定
- 0.1 ≤ PSI < 0.25:轻度漂移,需关注
- PSI ≥ 0.25:严重漂移,需立即告警并触发模型重训
2.2.2 KS统计量
KS(Kolmogorov-Smirnov)统计量通过计算两个经验累积分布函数(ECDF)之间的最大绝对差来检测分布变化。对于二分类模型,KS 也常用于评估模型区分能力。
KS = max |F_expected(x) - F_actual(x)|
其中:
- F_expected(x):训练集的经验累积分布函数
- F_actual(x):生产数据的经验累积分布函数
- x 遍历所有观测值
注意:KS 统计量对分布中心位置的变化非常敏感,但对尾部差异的检测能力较弱。当样本量较大时,微小的分布差异也可能导致 KS 值显著增大,因此需要结合样本量调整阈值。
2.2.3 KL散度与JS散度
KL散度(Kullback-Leibler Divergence)衡量两个概率分布 P 和 Q 之间的非对称差异。JS散度(Jensen-Shannon Divergence)是 KL 散度的对称化版本,具有更好的数学性质。
KL(P || Q) = Σ P(x) * log(P(x) / Q(x))
JS(P || Q) = 0.5 * KL(P || M) + 0.5 * KL(Q || M)
其中 M = 0.5 * (P + Q)
关键区别:
- KL散度:非对称(KL(P||Q) ≠ KL(Q||P)),无上界,对 Q(x)=0 且 P(x)>0 的情况敏感
- JS散度:对称且有界 [0, 1],对零概率问题更鲁棒
2.2.4 Wasserstein距离
Wasserstein距离(Earth Mover's Distance)基于最优传输理论,计算将一个分布“搬运”到另一个分布所需的最小成本。它能够捕捉分布支撑集的变化,对高维数据尤其有效。
W(P, Q) = inf ∫ |x - y| dγ(x, y)
其中 γ 是 P 和 Q 的联合分布,inf 表示所有可能的联合分布中的最小值
对于一维分布,Wasserstein距离有简洁的闭式解:
W(P, Q) = ∫ |F_P^{-1}(t) - F_Q^{-1}(t)| dt
其中 F_P^{-1} 和 F_Q^{-1} 分别是 P 和 Q 的逆累积分布函数
2.3 指标选择决策流程
在实际工程中,选择合适的漂移检测指标需要综合考虑数据类型、模型类型和业务需求。以下决策流程可以帮助你快速定位:
- 判断数据类型:连续型特征优先考虑 Wasserstein 距离或 KS 统计量;离散型特征优先考虑 PSI 或 JS 散度
- 判断模型类型:评分卡/风控模型首选 PSI;二分类模型可结合 KS 统计量;生成模型推荐 Wasserstein 距离
- 判断业务需求:监管合规场景必须使用 PSI;实时检测场景优先计算简单的 KS 或 JS 散度
- 多指标融合:建议同时监控 2-3 个互补指标,避免单一指标的盲区
2.4 多指标联合监控策略
单一指标往往存在盲区。例如,PSI 对分布整体偏移敏感但对局部突变不敏感,而 KS 统计量正好相反。推荐采用以下联合监控策略:
| 监控组合 | 适用场景 | 告警逻辑 |
|---|---|---|
| PSI + KS | 金融风控、评分卡 | 任一指标超阈值即告警 |
| JS + Wasserstein | NLP、图像生成 | 两指标均超阈值才告警(降低误报) |
| PSI + JS + Wasserstein | 高价值模型、监管严格 | 加权投票机制,至少 2/3 指标超阈值 |
工程实践:在实施多指标监控时,建议为每个指标设置独立的告警阈值,并记录历史趋势。当多个指标同时出现趋势性上升时,即使未达到阈值,也应触发预警。
2.5 工程实现注意事项
- 分箱策略:PSI 和 KL 散度依赖分箱,建议使用等频分箱(每个箱样本量大致相等),避免空箱导致计算异常
- 零概率处理:KL 散度计算时若遇到 Q(x)=0 且 P(x)>0,需添加平滑项(如 Laplace 平滑),避免除零错误
- 计算效率:Wasserstein 距离计算复杂度较高,对于高维数据建议使用 Sinkhorn 算法近似加速
- 窗口大小:建议使用滑动窗口(如最近 7 天或 1000 条样本)计算指标,平衡实时性和统计稳定性
核心要点回顾:
- PSI 是金融风控的行业标准,阈值 0.1/0.25 为经典分界点
- KS 统计量对分布位置变化敏感,适合二分类模型
- JS 散度是 KL 散度的对称有界版本,更稳定
- Wasserstein 距离能捕捉支撑集变化,适合高维数据
- 多指标联合监控可有效降低误报率和漏报率