2. SHAP基础理论:Shapley值起源、博弈论解释、SHAP核心公式与加性特征归因

SHAP(SHapley Additive exPlanations)是目前最主流的模型可解释性方法之一。要理解SHAP,必须从它的数学根源——Shapley值开始。本节将沿着“博弈论 → 合作博弈 → Shapley值 → SHAP公式 → 加性特征归因”这条主线,建立完整的理论基础。

2.1 Shapley值的起源:合作博弈中的公平分配

Shapley值由诺贝尔经济学奖得主Lloyd Shapley于1953年提出,用于解决合作博弈中的收益分配问题。核心场景是:多个参与者组成联盟,共同创造了一个总收益,如何公平地分配这个收益给每个参与者?

Shapley给出了唯一满足以下四个公理的分配方案:

公理 含义 直观解释
有效性 所有参与者的Shapley值之和等于总收益 分配不浪费、不克扣
对称性 如果两个参与者贡献完全相同,则分配相同 不歧视、不偏袒
虚拟性 如果参与者对任何联盟都没有贡献,则分配为0 不白给、不白拿
可加性 两个独立博弈的Shapley值可以相加 分配方案可组合、可分解
关键洞察:这四个公理保证了Shapley值是唯一公平的分配方案。在机器学习中,我们将“特征”视为“参与者”,“模型预测值”视为“总收益”,Shapley值就变成了每个特征对预测的贡献。

2.2 博弈论解释:特征联盟与边际贡献

将博弈论映射到模型解释:

  • 参与者(Player) → 输入特征(如年龄、收入、信用分)
  • 联盟(Coalition) → 特征子集(如{年龄, 收入})
  • 收益函数(Payoff) → 模型在给定特征子集下的预测值
  • 边际贡献(Marginal Contribution) → 加入一个特征后预测值的变化量

Shapley值的核心思想是:一个特征的贡献 = 它在所有可能的特征联盟中,加入该特征时带来的边际贡献的加权平均。

数学上,对于特征 \(i\),其Shapley值 \(\phi_i\) 定义为:

φ_i = Σ_{S ⊆ N \ {i}} [ |S|! * (|N| - |S| - 1)! / |N|! ] * [ f(S ∪ {i}) - f(S) ]

其中:
- N = 所有特征的集合
- S = 不包含特征i的特征子集
- f(S) = 模型在特征子集S上的预测值
- |S| = 子集S的大小
- |N| = 特征总数

这个公式遍历了所有可能的特征组合,计算每个组合下加入特征i带来的预测变化,然后按组合出现的概率加权平均。

Shapley值计算流程:特征联盟与边际贡献 特征全集 N {年龄, 收入, 信用分} |N| = 3 所有子集 S ⊆ N\{i} S₁ = {} (空集) S₂ = {年龄} S₃ = {收入} S₄ = {年龄, 收入} 边际贡献计算 Δ₁ = f(S₁∪{i}) - f(S₁) Δ₂ = f(S₂∪{i}) - f(S₂) Δ₃ = f(S₃∪{i}) - f(S₃) Δ₄ = f(S₄∪{i}) - f(S₄) 加权平均 → φᵢ φᵢ = Σ (|S|!(|N|-|S|-1)!/|N|!) × Δ 核心思想: 特征i的Shapley值 = 在所有可能的特征子集中, 加入特征i时带来的边际贡献的加权平均。 计算复杂度: 对于|N|个特征,需要计算2^|N|种特征子集组合。当特征较多时(如>20), 精确计算不可行,需要采用近似方法(如Kernel SHAP、Tree SHAP)。

2.3 SHAP核心公式:从Shapley值到模型解释

SHAP将Shapley值引入机器学习,核心公式为:

g(z') = φ₀ + Σᵢ φᵢ * z'ᵢ

其中:
- g(z') = 简化输入z'对应的模型预测值
- φ₀ = 基准预测值(所有特征缺失时的预测,通常取训练集平均预测)
- φᵢ = 特征i的SHAP值(即Shapley值)
- z'ᵢ ∈ {0, 1} = 特征i是否被观测到(1=观测到,0=缺失)

这个公式表明:模型的预测值 = 基准值 + 所有特征的SHAP值之和。这正是“加性特征归因”名称的由来。

加性特征归因的核心性质:
  • 局部准确性:对于单个样本,所有特征的SHAP值之和加上基准值,精确等于模型对该样本的预测值。
  • 一致性:如果模型发生变化,使得某个特征对预测的边际贡献增加,则该特征的SHAP值不会减少。
  • 缺失性:如果特征对任何子集都没有贡献,其SHAP值为0。

2.4 加性特征归因:线性分解的直观理解

加性特征归因将复杂的模型预测分解为每个特征的独立贡献,使得解释变得直观:

概念 数学表示 直观含义
基准预测 \(\phi_0\) 所有特征缺失时的“默认”预测(如平均房价)
特征贡献 \(\phi_i\) 特征i对当前样本预测的“推高”或“拉低”作用
最终预测 \(\phi_0 + \sum \phi_i\) 基准值 + 所有特征贡献的总和

示例:假设房价预测模型,基准预测为50万。对于某个样本:

  • 面积SHAP值 = +20万(面积大,推高房价)
  • 房龄SHAP值 = -5万(房龄老,拉低房价)
  • 位置SHAP值 = +10万(位置好,推高房价)
  • 最终预测 = 50 + 20 - 5 + 10 = 75万
加性特征归因:SHAP值分解示意图 基准值 φ₀ = 50万 + 面积 φ₁ = +20万 (推高) + 房龄 φ₂ = -5万 (拉低) + 位置 φ₃ = +10万 (推高) = 最终预测 = 75万 50 + 20 - 5 + 10 = 75 加性归因的关键性质: 1. 局部准确性:对于单个样本,所有SHAP值之和 + 基准值 = 模型预测值(精确相等) 2. 可解释性:每个特征的贡献独立可读,正向推高、负向拉低,一目了然 3. 一致性:模型变化时,特征贡献的变化方向与边际贡献变化方向一致

2.5 SHAP与线性模型的对比

对比维度 线性模型系数 SHAP值
适用范围 仅线性模型 任何模型(线性、树、神经网络等)
特征交互 不考虑交互 通过遍历所有子集,天然包含交互效应
局部vs全局 全局固定系数 每个样本的贡献不同(局部解释)
单位 模型输出单位 模型输出单位(可直接相加)
一致性 不保证 严格保证
重要提醒:SHAP值不是特征重要性(Feature Importance)。特征重要性衡量的是特征对模型整体的平均影响,而SHAP值衡量的是单个样本中每个特征的具体贡献。同一个特征在不同样本中的SHAP值可能完全不同。

2.6 本节小结

  • Shapley值起源于合作博弈论,是唯一满足有效性、对称性、虚拟性、可加性四个公理的公平分配方案。
  • SHAP将Shapley值应用于模型解释,通过遍历所有特征子集计算每个特征的边际贡献加权平均。
  • 加性特征归因将模型预测分解为:基准值 + 所有特征SHAP值之和,实现精确、一致、可解释的局部解释。
  • 计算复杂度为O(2^|N|),实际应用中需要近似算法(后续章节详解)。