Files
nexus/wiki/concepts/SHAP.md

71 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "SHAP (SHapley Additive exPlanations)"
type: concept
tags: [model-interpretability, feature-attribution, explainable-ai]
last_updated: 2026-04-25
---
## Definition
SHAPSHapley 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的选取