71 lines
3.2 KiB
Markdown
71 lines
3.2 KiB
Markdown
---
|
||
title: "SHAP (SHapley Additive exPlanations)"
|
||
type: concept
|
||
tags: [model-interpretability, feature-attribution, explainable-ai]
|
||
last_updated: 2026-04-25
|
||
---
|
||
|
||
## Definition
|
||
|
||
SHAP(SHapley Additive exPlanations)是一种基于博弈论 Shapley 值的模型可解释性框架,为每个特征的贡献提供统一的量化度量。通过计算每个特征在所有可能的特征组合中的边际贡献均值,SHAP 给出唯一且公平的归因值。
|
||
|
||
## Core Concepts
|
||
|
||
### Global Interpretability
|
||
- **SHAP Summary Plot (Beeswarm)**:同时展示特征值方向和影响幅度的散点图,横轴为 SHAP 值,纵轴为特征,颜色编码特征值高低
|
||
- **SHAP Bar Plot**:各特征 mean |SHAP| 排序,展示整体特征重要性
|
||
- **应用场景**:与文档化特征理由对比,识别未在方法论文档中讨论但实际影响显著的"隐性特征"
|
||
|
||
### Local Interpretability
|
||
- **SHAP Waterfall Plot**:解释单个预测——从基础值(base value)出发,逐特征展示其推动预测的方向和幅度
|
||
- **SHAP Force Plot**:可视化单个预测的特征贡献,常用于高风险决策解释
|
||
- **应用场景**:边缘案例预测(top/bottom decile、误分类记录)的深度分析
|
||
|
||
### SHAP Interaction Values
|
||
- 检测特征之间的依赖和交互效应
|
||
- 将总 SHAP 贡献分解为:主效应 + 交互效应
|
||
- 用于识别模型学习到的非预期特征交互
|
||
|
||
## Usage
|
||
|
||
```python
|
||
import shap
|
||
|
||
explainer = shap.TreeExplainer(model)
|
||
shap_values = explainer.shap_values(X)
|
||
|
||
# Global: beeswarm
|
||
shap.summary_plot(shap_values, X, show=False)
|
||
plt.savefig("shap_beeswarm.png", dpi=150)
|
||
|
||
# Global: bar
|
||
shap.summary_plot(shap_values, X, plot_type="bar", show=False)
|
||
plt.savefig("shap_importance.png", dpi=150)
|
||
|
||
# Local: waterfall
|
||
explanation = explainer(X.iloc[[idx]])
|
||
shap.plots.waterfall(explanation[0], show=False)
|
||
plt.savefig(f"shap_waterfall_{idx}.png", dpi=150)
|
||
```
|
||
|
||
## Model QA 中的应用
|
||
|
||
Model QA Specialist 使用 SHAP 进行以下审计:
|
||
1. **全局分析**:对比 SHAP 特征重要性与文档化特征理由,发现未记录的高贡献特征
|
||
2. **PDP 交叉验证**:SHAP 分析结合 PDP 验证特征方向是否符合预期
|
||
3. **局部解释**:边缘案例的 SHAP waterfall 揭示模型决策机制
|
||
4. **稳定性监测**:跨时间窗口的 SHAP 排名变化反映特征重要性漂移
|
||
|
||
## Relationship
|
||
|
||
- **依赖** [[Population-Stability-Index]]:PSI 监测特征分布漂移,SHAP 监测特征贡献变化,两者结合才能完整评估模型健康度
|
||
- **依赖** [[Calibration-Testing]]:SHAP 解释模型"为什么"预测,校准测试验证模型"多准确"预测
|
||
- **依赖** [[Discrimination-Metrics]]:SHAP 贡献分析在 AUC/Gini 判定模型整体可用之后进行细节诊断
|
||
- **支撑** [[Partial-Dependence-Plots]]:PDP 提供边际效应可视化,SHAP 提供精确归因,两者互补
|
||
|
||
## Key Limitations
|
||
|
||
- 计算复杂度:精确 Shapley 值计算为指数级,TreeExplainer 对树模型高效但对神经网络等黑盒模型需用 KernelExplainer(采样近似)
|
||
- 交互效应分离:当特征高度相关时,Shapley 值归因可能不稳定
|
||
- 基准依赖:Shapley 值的解释力取决于基准(base value)的选取
|