2. SHAP 基础原理:Shapley 值的数学定义、可加性特征与局部解释性
SHAP(SHapley Additive exPlanations)是目前最主流的模型可解释性框架之一。它的核心思想源自博弈论中的 Shapley 值,将每个特征视为参与“预测游戏”的玩家,公平地分配模型预测结果相对于平均预测的“贡献”。
2.1 Shapley 值的数学定义
假设我们有一个训练好的模型 f,特征集合 F = {1, 2, …, M}。对于单个样本 x,模型预测值为 f(x),所有样本的平均预测值为 E[f(X)]。特征 i 的 Shapley 值 φi 定义为:
φᵢ = Σ_{S ⊆ F \ {i}} [ |S|! (M - |S| - 1)! / M! ] × [ f(S ∪ {i}) - f(S) ]
其中:
- S:不包含特征 i 的特征子集
- f(S):仅使用子集 S 中特征时的模型预测值(通过条件期望或边际积分近似)
- f(S ∪ {i}):在子集 S 基础上加入特征 i 后的预测值
- 权重项:|S|! (M - |S| - 1)! / M! 确保所有特征加入顺序的排列组合被公平加权
直观理解:Shapley 值计算了在所有可能的特征组合顺序下,特征 i 加入模型时带来的边际贡献的平均值。这是唯一满足效率性、对称性、哑变量性和可加性四个公理的特征归因方法。
2.2 可加性特征:线性分解预测
SHAP 最强大的特性是 可加性(Additivity)。对于任意样本,模型预测值可以分解为:
f(x) = E[f(X)] + φ₁ + φ₂ + … + φ_M
这意味着:
- 基准值:所有样本的平均预测 E[f(X)]
- 特征贡献:每个特征的 SHAP 值 φi 表示该特征将预测从基准值向上或向下推动了多少
- 完全还原:所有特征贡献之和加上基准值,精确等于模型原始预测
| 属性 | 含义 | 实际价值 |
|---|---|---|
| 效率性 | 所有特征 SHAP 值之和 = f(x) - E[f(X)] | 预测可完全分解,无信息损失 |
| 对称性 | 若两特征对所有子集贡献相同,则 SHAP 值相等 | 公平分配,不偏向任何特征 |
| 哑变量性 | 若特征不改变预测值,其 SHAP 值为 0 | 自动忽略无关特征 |
| 可加性 | 多个模型的 SHAP 值可线性合并 | 支持模型集成解释 |
实操要点:可加性使得 SHAP 值可以直接用于“预测 vs 实际”的偏差分析。在阈值分层场景中,我们可以将每个分层的平均预测拆解为各特征的平均 SHAP 贡献,从而定位哪些特征驱动了分层间的预测差异。
2.3 局部解释性:从全局到单样本
SHAP 天然支持 局部解释(Local Interpretability)。与仅关注全局特征重要性的方法不同,SHAP 为每个样本生成一组独立的特征贡献值,回答“为什么这个样本被预测为这个值”。
局部解释的核心输出是 SHAP 力图(Force Plot)和 瀑布图(Waterfall Plot),它们直观展示了:
- 基准预测(Base Value)
- 每个特征将预测值向上(正贡献,红色/暖色)或向下(负贡献,蓝色/冷色)推动的幅度
- 最终预测值(Output Value)
2.4 SHAP 与特征重要性的关键区别
| 维度 | 传统特征重要性 | SHAP 值 |
|---|---|---|
| 粒度 | 全局:所有样本共享一个重要性分数 | 局部:每个样本有独立的贡献向量 |
| 方向性 | 仅表示影响大小(绝对值) | 同时表示影响方向和大小(正/负) |
| 可加性 | 不满足 | 满足:预测 = 基准 + ΣSHAP |
| 交互效应 | 无法区分 | 可通过 SHAP 交互值显式建模 |
| 模型无关性 | 部分方法依赖模型结构 | 完全模型无关(KernelSHAP)或模型特定加速(TreeSHAP) |
常见误区:SHAP 值不等于特征对模型性能的贡献(如 AUC 提升)。它衡量的是特征对单个样本预测值的边际贡献。一个特征可能对预测值影响很大(高 SHAP 绝对值),但对模型整体精度贡献很小(如噪声特征被模型错误依赖)。
2.5 从 Shapley 值到 SHAP 的工程落地
直接计算 Shapley 值的复杂度为 O(2M),在特征数量较多时不可行。SHAP 通过以下方法实现高效近似:
- KernelSHAP:模型无关方法,通过加权线性回归近似 Shapley 值,适用于任意模型
- TreeSHAP:针对树模型的专用算法,利用树结构将复杂度降至 O(TL2M) 或更低(T=树数量,L=叶子数)
- DeepSHAP:针对深度神经网络的近似方法,基于 DeepLIFT 与 Shapley 值的连接