2. SHAP 基础回顾:SHAP 值的数学原理、Shapley 值与博弈论关联

SHAP(SHapley Additive exPlanations)是目前最主流的模型可解释性方法之一。要理解 SHAP 值,必须从博弈论中的 Shapley 值 出发——它最初用于公平分配合作博弈中的收益,后被 SHAP 引入机器学习,用于公平分配每个特征对模型预测的贡献。

2.1 博弈论中的 Shapley 值

Shapley 值由 Lloyd Shapley 在 1953 年提出,解决的核心问题是:在一个合作联盟中,如何公平地分配总收益? 每个成员的贡献取决于他加入联盟时带来的边际收益,且分配必须满足四个公理:

公理 含义
有效性 所有成员的 Shapley 值之和等于总收益
对称性 如果两个成员对任何联盟的边际贡献相同,则分配相同
虚拟性 如果成员对任何联盟都没有贡献,则其 Shapley 值为 0
可加性 两个独立博弈的 Shapley 值可以相加

Shapley 值的计算公式如下:

φᵢ(v) = Σ_{S ⊆ N \ {i}} [ |S|! (|N| - |S| - 1)! / |N|! ] × [ v(S ∪ {i}) - v(S) ]

其中:

  • N:所有成员的集合
  • S:不包含成员 i 的任意子集(联盟)
  • v(S):联盟 S 的总收益
  • v(S ∪ {i}) - v(S):成员 i 加入联盟 S 时的边际贡献
  • 权重项:对所有可能的联盟顺序取平均
核心思想: Shapley 值遍历所有可能的特征子集,计算每个特征加入时的平均边际贡献,从而公平分配预测结果。

2.2 从 Shapley 值到 SHAP 值

SHAP 将 Shapley 值引入机器学习,把 特征 视为博弈中的 玩家,把 模型预测值 视为 总收益。对于单个样本,SHAP 值满足:

f(x) = φ₀ + Σ_{i=1}^{M} φᵢ

其中:

  • f(x):模型对样本 x 的预测值
  • φ₀:基线值(通常是所有样本预测的均值)
  • φᵢ:第 i 个特征的 SHAP 值(正数表示该特征推高预测,负数表示拉低预测)
  • M:特征总数

SHAP 值保留了 Shapley 值的所有公理性质,同时通过 加性特征归因 使解释结果直观可读。

直观理解: 基线值相当于“平均预测”,每个特征的 SHAP 值表示“该特征让预测偏离平均值的程度”。所有特征的 SHAP 值相加,正好等于预测值与基线值的差值。

2.3 SHAP 值与博弈论的关联结构

下图展示了从博弈论到 SHAP 值的完整映射关系:

博弈论 → SHAP 值映射结构 合作博弈 玩家 = 联盟成员 收益函数 v(S) Shapley 值 φᵢ 映射 特征 → 玩家 预测值 → 收益 SHAP 值 φᵢ SHAP 解释 特征贡献归因 f(x) = φ₀ + Σφᵢ 可加性 + 一致性 SHAP 是 Shapley 值在机器学习中的直接应用,保留了公平分配的所有数学性质 每个特征的 SHAP 值 = 该特征在所有可能特征子集中的平均边际贡献

2.4 SHAP 值的数学计算示例

假设一个只有两个特征(A、B)的模型,基线值 φ₀ = 0.5,样本预测值 f(x) = 1.2。我们需要计算每个特征的 SHAP 值。

首先枚举所有可能的特征子集:

子集 S v(S) v(S ∪ {A}) 边际贡献 (A) 权重
∅ 0.5 0.9 0.4 1/2
{B} 0.7 1.2 0.5 1/2

特征 A 的 SHAP 值:φₐ = (1/2 × 0.4) + (1/2 × 0.5) = 0.45

特征 B 的 SHAP 值:φᵦ = (1/2 × 0.2) + (1/2 × 0.3) = 0.25

验证:φ₀ + φₐ + φᵦ = 0.5 + 0.45 + 0.25 = 1.2 ✓

注意: 实际应用中特征数量可能达到几十甚至上百,枚举所有子集的计算复杂度为 O(2^M)。SHAP 库通过近似算法(如 KernelSHAP、TreeSHAP)大幅降低计算成本,但数学原理不变。

2.5 SHAP 值的三个关键性质

SHAP 值之所以成为可解释性领域的标准,是因为它同时满足以下三个重要性质:

  1. 局部准确性:对于每个样本,所有特征的 SHAP 值之和加上基线值,精确等于模型预测值。
  2. 一致性:如果一个特征对模型输出的影响增大(无论其他特征如何变化),其 SHAP 值不会降低。
  3. 缺失性:如果一个特征对任何子集都没有贡献,其 SHAP 值严格为 0。

这些性质保证了 SHAP 值在特征重要性排序上的稳定性和公平性,使其优于传统的 permutation importance 或 gain-based importance。

2.6 SHAP 值的可视化形式

下图展示了 SHAP 值最常见的两种可视化方式——力图 和 汇总图 的结构:

SHAP 值可视化结构 力图 (Force Plot) 基线值 φ₀ = 0.50 特征B -0.25 特征A +0.45 f(x)=1.20 红色 = 拉低预测,绿色 = 推高预测 长度 = 贡献绝对值大小 汇总图 (Summary Plot) 特征A 特征B 特征C 高特征值 低特征值 每个点 = 一个样本的 SHAP 值 颜色 = 特征值高低,横轴 = SHAP 值大小

2.7 SHAP 值的实际应用场景

  • 模型调试:检查模型是否依赖了不合理的特征(如 ID 类特征)
  • 特征工程:识别对预测贡献最大的特征,指导特征筛选
  • 模型对比:比较不同模型在相同样本上的解释差异
  • 合规审计:为监管机构提供每个预测的详细归因报告
  • 监控漂移:跟踪特征 SHAP 值分布随时间的变化,检测概念漂移