Files
nexus/wiki/concepts/SHAP.md

3.2 KiB
Raw Blame History

title, type, tags, last_updated
title type tags last_updated
SHAP (SHapley Additive exPlanations) concept
model-interpretability
feature-attribution
explainable-ai
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

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-IndexPSI 监测特征分布漂移SHAP 监测特征贡献变化,两者结合才能完整评估模型健康度
  • 依赖 Calibration-TestingSHAP 解释模型"为什么"预测,校准测试验证模型"多准确"预测
  • 依赖 Discrimination-MetricsSHAP 贡献分析在 AUC/Gini 判定模型整体可用之后进行细节诊断
  • 支撑 Partial-Dependence-PlotsPDP 提供边际效应可视化SHAP 提供精确归因,两者互补

Key Limitations

  • 计算复杂度:精确 Shapley 值计算为指数级TreeExplainer 对树模型高效但对神经网络等黑盒模型需用 KernelExplainer采样近似
  • 交互效应分离当特征高度相关时Shapley 值归因可能不稳定
  • 基准依赖Shapley 值的解释力取决于基准base value的选取