2. PSI基础概念:群体稳定性指标
群体稳定性指标(Population Stability Index,PSI)是衡量两个样本分布之间差异程度的量化指标。在机器学习模型监控中,PSI 用于评估模型输入特征或模型输出分数在不同时间窗口之间的分布偏移程度,是批次偏移诊断的核心工具。
2.1 数学定义与计算公式推导
PSI 的数学基础源于信息论中的 KL 散度(Kullback-Leibler Divergence),但经过对称化处理,使其成为一个有界且更稳定的度量。其核心思想是将连续变量分箱后,比较每个箱内实际占比与预期占比的差异。
标准计算公式:
PSI = Σ (Actual_i - Expected_i) × ln(Actual_i / Expected_i)
其中:
- i = 1, 2, ..., n(分箱数量)
- Actual_i = 第 i 个箱中实际样本占比
- Expected_i = 第 i 个箱中预期(基准)样本占比
- ln = 自然对数
推导步骤:
- 分箱处理:将连续变量或概率分数划分为 n 个等宽或等频区间(通常 n=10)。
- 计算占比:分别统计基准样本集(如训练集)和实际样本集(如当前生产批次)在每个箱中的样本数量,并转换为百分比。
- 计算每个箱的贡献值:对每个箱计算 (Actual% - Expected%) × ln(Actual% / Expected%)。
- 求和:将所有箱的贡献值相加,得到最终的 PSI 值。
关键注意点:当 Expected_i 或 Actual_i 为 0 时,对数运算无定义。实际应用中,通常对每个箱的占比进行微小平滑处理(如加 0.0001),或使用
np.clip 限制最小占比值。
2.2 PSI值的业务含义解读
PSI 值的大小直接反映了分布偏移的严重程度。业界通用的阈值标准如下表所示:
| PSI 值范围 | 偏移程度 | 业务含义与建议动作 |
|---|---|---|
| PSI < 0.1 | 无显著偏移 | 分布稳定,模型可继续使用,无需干预。 |
| 0.1 ≤ PSI < 0.25 | 轻度偏移 | 分布出现轻微变化,建议触发告警并排查原因,准备模型重训。 |
| PSI ≥ 0.25 | 严重偏移 | 分布发生显著漂移,模型性能可能大幅下降,应立即停止推理并启动重训流程。 |
阈值并非绝对:上述阈值是行业经验值,实际应用中应根据业务风险容忍度进行调整。例如,在信贷风控场景中,PSI > 0.2 可能就需要立即下线模型;而在推荐系统场景中,PSI 达到 0.3 可能仍可接受。
2.3 PSI 计算流程与分布偏移可视化
下图展示了 PSI 计算的完整流程,从原始数据分箱到最终输出告警决策:
2.4 PSI 与 KL 散度的关系
理解 PSI 与 KL 散度的关系有助于深入掌握其数学本质:
| 指标 | 公式 | 对称性 | 取值范围 | 应用场景 |
|---|---|---|---|---|
| KL 散度 | KL(P||Q) = Σ P_i × ln(P_i / Q_i) | 非对称 | [0, +∞) | 信息论、特征选择 |
| PSI | Σ (P_i - Q_i) × ln(P_i / Q_i) | 对称 | [0, +∞) 但有界性更好 | 模型监控、分布偏移检测 |
直观理解:PSI 可以看作是两个 KL 散度的平均值——KL(P||Q) + KL(Q||P)。这种对称化处理使得 PSI 不依赖于哪个分布被定义为"基准",更适合工程监控场景。
2.5 实际案例:信贷评分卡 PSI 解读
假设某信贷模型的输出分数范围为 300~850 分,分箱后得到以下数据:
| 分数区间 | 基准占比 (Expected) | 实际占比 (Actual) | 差值 (A-E) | ln(A/E) | 贡献值 |
|---|---|---|---|---|---|
| 300-355 | 10.0% | 15.0% | +5.0% | 0.405 | 0.0203 |
| 355-410 | 10.0% | 12.0% | +2.0% | 0.182 | 0.0036 |
| 410-465 | 10.0% | 11.0% | +1.0% | 0.095 | 0.0010 |
| 465-520 | 10.0% | 10.5% | +0.5% | 0.049 | 0.0002 |
| 520-575 | 10.0% | 10.0% | 0.0% | 0.000 | 0.0000 |
| 575-630 | 10.0% | 9.5% | -0.5% | -0.051 | 0.0003 |
| 630-685 | 10.0% | 9.0% | -1.0% | -0.105 | 0.0011 |
| 685-740 | 10.0% | 8.0% | -2.0% | -0.223 | 0.0045 |
| 740-795 | 10.0% | 7.5% | -2.5% | -0.288 | 0.0072 |
| 795-850 | 10.0% | 7.5% | -2.5% | -0.288 | 0.0072 |
| PSI 合计 | 0.0454 | ||||
该案例中 PSI = 0.0454 < 0.1,说明当前批次与训练集分布基本一致,模型处于稳定状态。但注意到低分段(300-355)占比上升了 5%,高分段(795-850)下降了 2.5%,虽然整体 PSI 未超阈值,但业务方仍应关注低分段客户质量的变化趋势。