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 指标选择决策流程

在实际工程中,选择合适的漂移检测指标需要综合考虑数据类型、模型类型和业务需求。以下决策流程可以帮助你快速定位:

  1. 判断数据类型:连续型特征优先考虑 Wasserstein 距离或 KS 统计量;离散型特征优先考虑 PSI 或 JS 散度
  2. 判断模型类型:评分卡/风控模型首选 PSI;二分类模型可结合 KS 统计量;生成模型推荐 Wasserstein 距离
  3. 判断业务需求:监管合规场景必须使用 PSI;实时检测场景优先计算简单的 KS 或 JS 散度
  4. 多指标融合:建议同时监控 2-3 个互补指标,避免单一指标的盲区
漂移检测指标选择决策树 数据类型判断 连续型特征 Wasserstein距离 / KS统计量 离散型特征 PSI / JS散度 业务场景匹配 监管合规 → PSI 实时检测 → KS/JS 高维数据 → Wasserstein 建议同时监控 2-3 个互补指标,避免单一盲区

2.4 多指标联合监控策略

单一指标往往存在盲区。例如,PSI 对分布整体偏移敏感但对局部突变不敏感,而 KS 统计量正好相反。推荐采用以下联合监控策略:

监控组合 适用场景 告警逻辑
PSI + KS 金融风控、评分卡 任一指标超阈值即告警
JS + Wasserstein NLP、图像生成 两指标均超阈值才告警(降低误报)
PSI + JS + Wasserstein 高价值模型、监管严格 加权投票机制,至少 2/3 指标超阈值
工程实践:在实施多指标监控时,建议为每个指标设置独立的告警阈值,并记录历史趋势。当多个指标同时出现趋势性上升时,即使未达到阈值,也应触发预警。
多指标联合监控架构 生产数据流 PSI 计算 KS 统计量 Wasserstein距离 阈值判断 阈值判断 阈值判断 决策融合 告警输出 联合监控告警规则示例 • 规则1(保守):任一指标超阈值 → 立即告警(适用于高价值模型) • 规则2(平衡):至少 2/3 指标超阈值 → 告警(适用于常规模型) • 规则3(趋势):任一指标连续 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 距离能捕捉支撑集变化,适合高维数据
  • 多指标联合监控可有效降低误报率和漏报率