2. SHAP基础概念:SHAP值定义、博弈论中的Shapley值、特征贡献度、可解释性分类

SHAP(SHapley Additive exPlanations)是目前最主流的模型可解释性方法之一。要真正理解SHAP,需要从博弈论中的Shapley值出发,逐步建立特征贡献度的数学直觉,并明确可解释性的分类体系。本章将围绕这四个核心概念展开,为后续SQL实战打下坚实的理论基础。

2.1 博弈论中的Shapley值

Shapley值由诺贝尔经济学奖得主Lloyd Shapley于1953年提出,用于解决合作博弈中的公平分配问题。其核心思想是:在一个多人合作中,每个成员的贡献应当根据其边际贡献的加权平均来公平分配总收益。

核心公式(简化理解):
Shapley值 = 所有可能加入顺序下,该成员带来的边际贡献的平均值。

假设一个模型有M个特征,每个特征相当于博弈中的“玩家”,模型的预测结果相当于“总收益”。Shapley值计算每个特征在所有可能的特征组合顺序下,对预测结果的边际贡献的加权平均。

博弈论概念 SHAP对应概念 说明
玩家(Player) 特征(Feature) 参与预测的每个输入变量
联盟(Coalition) 特征子集(Feature Subset) 部分特征组合形成的预测条件
总收益(Total Payout) 模型预测值(Prediction) 模型对当前样本的输出结果
边际贡献(Marginal Contribution) 特征加入前后的预测差值 某特征加入联盟后预测值的变化量
公平分配(Fair Allocation) SHAP值(SHAP Value) 每个特征对预测值的归因贡献
直观理解: 想象一个三人小组完成项目获得奖金。Shapley值会计算每个人在所有可能的加入顺序下(A先、B先、C先),每次加入时带来的价值增量,然后取平均值。SHAP对特征做完全相同的计算。
Shapley值计算流程(以3个特征为例) 特征集合 {A, B, C} 所有排列顺序 3! = 6种顺序 边际贡献 每次加入的预测差值 加权平均 Shapley值 排列示例(以特征A为例) 顺序1: A→B→C → A的边际贡献 = f(A) - f(∅) 顺序2: B→A→C → A的边际贡献 = f(B,A) - f(B) ... 共6种顺序,取平均值 特征A的Shapley值 φ(A) = (1/6) × Σ(所有顺序下A的边际贡献) 满足效率性、对称性、哑元性、可加性

2.2 SHAP值定义

SHAP将Shapley值引入机器学习,为每个样本的每个特征分配一个归因值。SHAP值满足三个关键性质,使其成为唯一符合这些性质的加性特征归因方法:

  • 局部准确性(Local Accuracy): 所有特征的SHAP值之和加上基线值(所有样本的平均预测值)等于当前样本的预测值。
  • 缺失性(Missingness): 缺失的特征SHAP值为0。
  • 一致性(Consistency): 如果某个特征对模型输出的边际贡献增加,其SHAP值不会减少。
SHAP值数学表达:
g(z') = φ₀ + Σ(φⱼ × z'ⱼ)

其中:
- g(z') 为解释模型
- φ₀ 为基线值(所有样本的平均预测值)
- φⱼ 为特征j的SHAP值
- z'ⱼ ∈ {0,1} 表示特征j是否存在

2.3 特征贡献度

特征贡献度是SHAP值的直接应用,用于衡量每个特征对单个预测结果的影响方向和大小。贡献度分为两种尺度:

贡献度类型 含义 SHAP值符号 示例
正向贡献 该特征将预测值推向高于基线 SHAP值 > 0 年龄=45岁,SHAP=+0.32,推高信用评分
负向贡献 该特征将预测值推向低于基线 SHAP值 < 0 逾期次数=3次,SHAP=-0.87,拉低信用评分
零贡献 该特征对当前预测无影响 SHAP值 = 0 性别特征,SHAP=0.00,无影响
关键理解: SHAP值不是特征重要性(Feature Importance),而是特征贡献度(Feature Contribution)。重要性只告诉你“这个特征重不重要”,贡献度告诉你“这个特征在这个样本上如何影响预测结果”。
单个样本的SHAP值贡献度分解 基线值 φ₀ 平均预测 = 0.50 正向贡献 +0.32 (年龄) 正向贡献 +0.18 (收入) 负向贡献 -0.87 (逾期) 负向贡献 -0.05 (负债率) 零贡献 0.00 (性别) 最终预测 0.50 + 0.32 + 0.18 - 0.87 - 0.05 = 0.08 SHAP值加和性质验证 φ₀ + φ₁ + φ₂ + φ₃ + φ₄ = 0.50 + 0.32 + 0.18 + (-0.87) + (-0.05) = 0.08 最终预测值 = 0.08 ✅ 满足局部准确性 每个特征的SHAP值代表其对预测结果的独立贡献

2.4 可解释性分类

在模型可解释性领域,SHAP主要解决局部可解释性问题,同时也能聚合为全局可解释性。理解这两种分类有助于在实际项目中正确使用SHAP。

可解释性类型 定义 SHAP对应方法 应用场景
全局可解释性 理解模型整体的行为逻辑 SHAP特征重要性(平均|SHAP值|)、SHAP依赖图 模型审计、特征筛选、业务规则验证
局部可解释性 理解单个样本的预测原因 SHAP值分解、瀑布图、力图(Force Plot) 风控拒贷解释、医疗诊断辅助、异常检测
群体可解释性 理解某个子群体的共同模式 SHAP交互值、分组SHAP汇总 用户分群分析、公平性评估
常见误区: 不要将SHAP值直接等同于特征重要性。特征重要性(如树模型的feature_importances_)只反映特征在全局的平均使用频率或信息增益,而SHAP值可以给出每个样本上每个特征的具体贡献方向和大小。两者互补,不可替代。

2.5 本章小结

  • Shapley值是博弈论中的公平分配方法,SHAP将其引入机器学习,为每个特征分配归因值。
  • SHAP值满足局部准确性、缺失性和一致性,是唯一符合这些性质的加性特征归因方法。
  • 特征贡献度分为正向、负向和零贡献,SHAP值的符号和大小直接反映特征对预测的影响方向和强度。
  • 可解释性分类包括全局、局部和群体三个层次,SHAP在局部解释上具有独特优势,同时也能聚合为全局解释。