Update nexus: fix conflicts and sync local changes
This commit is contained in:
@@ -1,70 +1,70 @@
|
||||
---
|
||||
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)的选取
|
||||
---
|
||||
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)的选取
|
||||
|
||||
Reference in New Issue
Block a user