3. SHAP 核心概念:期望值、边际贡献与 SHAP 值的数学定义
SHAP(SHapley Additive exPlanations)的核心思想源自博弈论中的 Shapley 值。要理解 SHAP 如何解释模型,必须掌握三个基础概念:期望值、边际贡献以及SHAP 值的数学定义。本节将逐一拆解这些概念,并说明它们如何共同构成模型可解释性的理论基础。
3.1 期望值:预测的基准点
在 SHAP 框架中,期望值(Expected Value)是所有预测的平均基准。它代表在没有任何特征信息的情况下,模型对目标变量的“默认”预测。
- 数学表达:对于训练数据集 \( D = \{x^{(1)}, x^{(2)}, ..., x^{(n)}\} \),模型 \( f \) 的期望值为:
E[f(x)] ≈ (1/n) * Σ f(x^{(i)}) - 直观理解:期望值相当于“全局平均预测值”。例如,在房价预测模型中,期望值可能是所有训练样本预测房价的平均值,如 50 万美元。
- 在 SHAP 中的作用:期望值是 SHAP 解释的起点。对于单个预测样本,其预测值可以表示为:
其中 \( SHAP_j \) 是第 \( j \) 个特征的贡献值。这意味着:预测值 = 基准值 + 所有特征的贡献之和。f(x) = E[f(x)] + Σ SHAP_j
💡 关键理解:期望值将模型预测“锚定”在一个可解释的全局基准上。所有特征的 SHAP 值都是相对于这个基准的“偏移量”,正数表示该特征将预测值推高,负数表示推低。
3.2 边际贡献:特征在合作中的价值
边际贡献(Marginal Contribution)衡量的是:在已有某些特征信息的情况下,加入一个新特征对模型预测带来的变化量。
- 定义:对于特征子集 \( S \)(不包含特征 \( j \)),特征 \( j \) 的边际贡献为:
其中 \( f(S) \) 表示仅使用子集 \( S \) 中的特征时模型的预测值。Δ_j(S) = f(S ∪ {j}) - f(S) - 核心思想:边际贡献不是孤立计算的,而是依赖于上下文(即已经存在的特征集合 \( S \))。同一个特征在不同的特征组合中,其边际贡献可能完全不同。
- 示例:在预测信用风险时,“收入”特征在已有“负债率”特征时的边际贡献,与没有“负债率”时的边际贡献可能差异很大。
⚠️ 注意:边际贡献的“上下文依赖性”是 SHAP 能够捕捉特征交互效应的关键。它避免了简单线性归因的缺陷,能够反映特征之间的协同或抵消关系。
3.3 SHAP 值的数学定义与性质
SHAP 值本质上是所有可能特征组合下边际贡献的加权平均。它通过考虑所有可能的特征子集顺序,公平地分配每个特征的贡献。
3.3.1 数学定义
对于特征 \( j \),其 SHAP 值 \( \phi_j \) 定义为:
ϕ_j = Σ_{S ⊆ N \ {j}} [ |S|! * (|N| - |S| - 1)! / |N|! ] * [ f(S ∪ {j}) - f(S) ]
其中:
- \( N \):所有特征的集合,\( |N| \) 为特征总数。
- \( S \):不包含特征 \( j \) 的特征子集。
- \( f(S) \):仅使用子集 \( S \) 中特征时的模型预测值。
- \( |S|! * (|N| - |S| - 1)! / |N|! \):权重系数,确保所有特征子集顺序被公平考虑。
3.3.2 核心性质
| 性质 | 数学表达 | 直观解释 |
|---|---|---|
| 局部准确性 | \( f(x) = \phi_0 + \sum_{j=1}^{M} \phi_j \) | 所有特征的 SHAP 值之和加上期望值,精确等于模型预测值。 |
| 对称性 | 若 \( f(S ∪ {i}) = f(S ∪ {j}) \) 对所有 \( S \) 成立,则 \( \phi_i = \phi_j \) | 两个特征对模型贡献相同时,它们的 SHAP 值相等。 |
| 虚拟性 | 若 \( f(S ∪ {j}) = f(S) \) 对所有 \( S \) 成立,则 \( \phi_j = 0 \) | 对模型预测无影响的特征,其 SHAP 值为 0。 |
| 可加性 | 对于两个独立模型 \( f \) 和 \( g \),\( \phi_j(f+g) = \phi_j(f) + \phi_j(g) \) | 多个模型的 SHAP 值可以线性叠加。 |
🔑 性质的重要性:这四个性质确保了 SHAP 值是唯一满足所有条件的特征归因方法。其中“局部准确性”是 SHAP 用于单样本解释的基础;“对称性”和“虚拟性”保证了分配的公平性;“可加性”使得 SHAP 可以用于集成模型。
3.4 SHAP 值计算流程
下图展示了从模型预测到生成 SHAP 解释值的完整流程:
3.5 期望值与 SHAP 值的关系
为了更直观地理解期望值、边际贡献和 SHAP 值之间的关系,下图展示了它们如何共同构成一个完整的解释框架:
3.6 实际应用中的计算挑战
理论上,SHAP 值需要遍历所有 \( 2^M \) 个特征子集(\( M \) 为特征数量),这在特征较多时计算量巨大。实际应用中采用以下近似方法:
- Kernel SHAP:基于核方法的近似,适用于任意模型。
- Tree SHAP:针对树模型的优化算法,利用树结构高效计算。
- Deep SHAP:针对深度学习模型的近似方法。
📌 课程实践提示:在后续的变量分箱案例中,我们将使用 Tree SHAP 对分箱后的特征进行解释。分箱操作会减少特征的可能取值数量,从而在一定程度上降低 SHAP 值的计算复杂度,同时增强解释的稳定性。