用途:用 SHAP 描述已训练模型如何将输入映射到输出,面向模型预测的解释、归因分析与审计,而非替代预测验证。
主要能力:支持自动分派 shap.Explainer 及 TreeExplainer、LinearExplainer、ExactExplainer、PermutationExplainer、PartitionExplainer、DeepExplainer、GradientExplainer、KernelExplainer;提供 beeswarm、waterfall、bar、scatter、heatmap、text、image 等可视化;支持多输出模型、特征分组、文本与图像掩码、队列比较。
必要用法:要求 Python 3.12 及以上,安装命令为 uv venv --python 3.12、source .venv/bin/activate、uv pip install "shap[plots]==0.52.0"。优先使用 shap.Explanation 对象与 explainer(X);部分专用选项仍需 .shap_values(X)。多输出需先用 explanation[..., output_index] 选择输出。须校验 base_values + values.sum(...) 是否等于被解释的模型输出。树模型概率或 log loss 输出须使用 interventional 掩码与背景数据。
适用场景:树集成、线性模型、通用表格可调用对象、分层特征组、文本与图像、可微神经网络的特征归因;全局与局部分析、多分类、队列与误差分析。
限制:SHAP 只描述特定掩码与背景选择下的模型行为,不证明因果、公平性、补救措施或科学机制;不得把 SHAP 当作预测验证手段;归因加性失败须先排查输入形状、预处理、模型版本、输出空间与行顺序;不要加载不可信的 pickle、joblib、模型或解释器文件;部分预训练、GPU 与分布式集成仍需自行验证。文档还提供 references 参考索引与确定性脚本 tabular_report.py,脚本不下载数据也不反序列化模型。