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带来的预测变化,然后按组合出现的概率加权平均。
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万
2.5 SHAP与线性模型的对比
| 对比维度 | 线性模型系数 | SHAP值 |
|---|---|---|
| 适用范围 | 仅线性模型 | 任何模型(线性、树、神经网络等) |
| 特征交互 | 不考虑交互 | 通过遍历所有子集,天然包含交互效应 |
| 局部vs全局 | 全局固定系数 | 每个样本的贡献不同(局部解释) |
| 单位 | 模型输出单位 | 模型输出单位(可直接相加) |
| 一致性 | 不保证 | 严格保证 |
重要提醒:SHAP值不是特征重要性(Feature Importance)。特征重要性衡量的是特征对模型整体的平均影响,而SHAP值衡量的是单个样本中每个特征的具体贡献。同一个特征在不同样本中的SHAP值可能完全不同。
2.6 本节小结
- Shapley值起源于合作博弈论,是唯一满足有效性、对称性、虚拟性、可加性四个公理的公平分配方案。
- SHAP将Shapley值应用于模型解释,通过遍历所有特征子集计算每个特征的边际贡献加权平均。
- 加性特征归因将模型预测分解为:基准值 + 所有特征SHAP值之和,实现精确、一致、可解释的局部解释。
- 计算复杂度为O(2^|N|),实际应用中需要近似算法(后续章节详解)。