3. SHAP原理入门:博弈论中的Shapley值、SHAP的核心思想、加性特征归因模型
SHAP(SHapley Additive exPlanations)是目前最主流的模型可解释性方法之一。要理解SHAP,需要从博弈论中的Shapley值出发,逐步过渡到SHAP的核心思想,最后掌握其数学表达形式——加性特征归因模型。
3.1 博弈论中的Shapley值
Shapley值由诺贝尔经济学奖得主Lloyd Shapley于1953年提出,用于解决合作博弈中如何公平分配总收益的问题。其核心思想是:每个参与者的贡献应等于其在所有可能联盟中的边际贡献的平均值。
核心公式: Shapley值 φi = ΣS ⊆ N\{i} [ |S|! (|N|-|S|-1)! / |N|! ] × [ v(S∪{i}) - v(S) ]
其中 N 为所有参与者的集合,S 为不包含 i 的子集,v(S) 为联盟 S 的收益函数。
其中 N 为所有参与者的集合,S 为不包含 i 的子集,v(S) 为联盟 S 的收益函数。
将这一思想迁移到机器学习中:
- 参与者 → 模型的输入特征
- 联盟 → 特征子集
- 收益函数 → 模型在给定特征子集下的预测值
- 公平分配 → 每个特征对预测结果的贡献度
| 概念 | 博弈论 | 机器学习解释 |
|---|---|---|
| 参与者集合 | N = {1, 2, ..., n} 个玩家 | N = {x₁, x₂, ..., xₙ} 个特征 |
| 联盟 | 玩家子集 S | 特征子集 S |
| 收益函数 | v(S):联盟 S 的总收益 | E[f(x) | xS]:基于特征子集 S 的条件期望预测 |
| 边际贡献 | v(S∪{i}) - v(S) | 加入特征 i 后预测值的变化 |
| 最终分配 | Shapley值 φi | 特征 i 的SHAP值 |
直观理解: Shapley值保证每个特征获得的贡献度是唯一满足对称性、有效性、可加性和虚拟性四个公理的解。这意味着特征贡献的分配是数学上公平的。
3.2 SHAP的核心思想
SHAP将Shapley值的计算框架与机器学习模型的具体结构相结合,提出了加性特征归因模型(Additive Feature Attribution Model)。其核心思想是:模型的预测结果可以表示为每个特征贡献的线性加和。
3.3 加性特征归因模型
加性特征归因模型是SHAP的理论基础,其数学形式为:
加性归因模型定义:
g(z') = φ₀ + Σi=1M φᵢ · z'i
其中:
g(z') = φ₀ + Σi=1M φᵢ · z'i
其中:
- g(z') 为解释模型对简化输入 z' 的预测
- φ₀ 为基准值(所有特征缺失时的期望预测)
- φᵢ 为特征 i 的SHAP值(贡献度)
- z'i ∈ {0, 1} 表示特征 i 是否存在
- M 为特征总数
加性归因模型满足以下三个重要性质:
| 性质 | 数学表达 | 实际含义 |
|---|---|---|
| 局部精确性 | f(x) = φ₀ + Σφᵢ | 解释模型在样本 x 上的预测等于原模型预测 |
| 缺失性 | 若 φᵢ = 0,则特征 i 不影响解释 | 贡献为零的特征不会干扰解释结果 |
| 一致性 | 若模型变化后特征 i 的边际贡献不降,则 φᵢ 不降 | 特征重要性排序不会因模型复杂度增加而反转 |
注意: 加性归因模型假设特征之间是线性可加的。对于树模型等非线性模型,SHAP通过计算所有可能的特征子集的条件期望来逼近这一假设,因此计算复杂度为 O(2M),实际应用中需要近似算法(如TreeSHAP、KernelSHAP)。
3.4 SHAP值的计算流程
计算单个样本的SHAP值通常包含以下步骤:
- 确定基准值 φ₀: 计算所有特征缺失时的期望预测值,通常使用训练集预测的均值。
- 枚举特征子集: 对于每个特征 i,枚举所有不包含 i 的特征子集 S。
- 计算边际贡献: 对每个子集 S,计算加入特征 i 前后的预测差值。
- 加权平均: 按子集大小赋予权重,计算所有边际贡献的加权平均值。
- 输出SHAP值: 每个特征得到一个 φᵢ,所有 φᵢ 之和加上 φ₀ 等于模型预测值。
3.5 SHAP与LIME的对比
SHAP和LIME都是常用的模型解释方法,但两者在理论基础和计算方式上有显著差异:
| 对比维度 | SHAP | LIME |
|---|---|---|
| 理论基础 | 博弈论Shapley值 | 局部线性近似 |
| 解释形式 | 加性特征归因 | 线性模型局部拟合 |
| 一致性 | 满足一致性公理 | 不保证一致性 |
| 计算复杂度 | 高(需枚举子集) | 较低(采样+线性回归) |
| 适用场景 | 需要严格数学保证 | 快速原型验证 |
| 全局解释 | 支持(SHAP summary plot) | 需逐个样本聚合 |
实践建议: 在需要向业务方或监管机构解释模型决策时,优先使用SHAP,因为其数学基础更严谨、解释结果更稳定。在快速迭代或特征数量极大(M > 100)时,可先用LIME做初步分析,再用SHAP做最终验证。