[ PROMPT_NODE_27408 ]
plots
[ SKILL_DOCUMENTATION ]
# SHAP 可视化参考
本文档提供了关于所有 SHAP 绘图函数、其参数、用例以及可视化模型解释的最佳实践的全面信息。
## 概述
SHAP 提供了多种可视化工具,用于在个体和全局层面解释模型预测。每种图表类型在理解特征重要性、交互作用和预测机制方面都有特定用途。
## 图表类型
### 瀑布图 (Waterfall Plots)
**目的**:展示个体预测的解释,显示每个特征如何将预测值从基准(期望值)推向最终预测结果。
**函数**:`shap.plots.waterfall(explanation, max_display=10, show=True)`
**关键参数**:
- `explanation`: Explanation 对象中的单行数据(非多个样本)
- `max_display`: 要显示的特征数量(默认:10);影响较小的特征会合并为“其他特征”项
- `show`: 是否立即显示图表
**视觉元素**:
- **X 轴**: 显示 SHAP 值(对预测的贡献)
- **起点**: 模型的期望值(基准)
- **特征贡献**: 红色条(正向)或蓝色条(负向),显示每个特征如何推动预测
- **特征值**: 显示在特征名称左侧的灰色区域
- **终点**: 最终模型预测值
**何时使用**:
- 详细解释个体预测
- 理解哪些特征驱动了特定决策
- 传达单实例的模型行为(例如:贷款拒绝、诊断)
- 调试意外的预测结果
**重要说明**:
- 对于 XGBoost 分类器,预测是在对数几率单位(逻辑转换前的边际输出)中进行解释的
- SHAP 值之和等于基准与最终预测之间的差值(可加性属性)
- 将散点图与瀑布图结合使用,以探索跨多个样本的模式
**示例**:
python
import shap
# 计算 SHAP 值
explainer = shap.TreeExplainer(model)
shap_values = explainer(X_test)
# 绘制第一个预测的瀑布图
shap.plots.waterfall(shap_values[0])
# 显示更多特征
shap.plots.waterfall(shap_values[0], max_display=20)
### 蜂群图 (Beeswarm Plots)
**目的**:信息密集型摘要,展示顶级特征如何影响整个数据集的模型输出,结合了特征重要性和值分布。
**函数**:`shap.plots.beeswarm(shap_values, max_display=10, order=Explanation.abs.mea