用途:该技能提供 SHAP(基于合作博弈论 Shapley 值)的模型可解释性指导,适用于解释模型特征重要性、单条预测原因、模型调试与验证、公平性与偏差分析,以及在生产中实现可解释 AI。
主要能力:为树模型(XGBoost、LightGBM、CatBoost、随机森林)用 TreeExplainer,深度模型用 DeepExplainer 或 GradientExplainer,线性模型用 LinearExplainer,黑盒模型用 KernelExplainer,不确定时用 shap.Explainer 自动选择。计算得到 Explanation 对象,含 values(特征归因)、base_values(基线)、data(原始特征值)。绘图包括全局的 beeswarm、bar,单样本的 waterfall、force,特征关系的 scatter,以及 heatmap 等。
使用方式:安装需 shap >= 0.41(现代 API 与 shap.plots.* 命名空间所需)。在 uv 项目中执行 uv add "shap>=0.41" matplotlib;临时运行可用 uv run --with "shap>=0.41" --with matplotlib python explain.py。matplotlib 为可选绘图依赖,需显式安装。典型流程:选择解释器→计算 shap_values = explainer(X_test)→用 shap.plots.beeswarm、shap.plots.bar、shap.plots.waterfall、shap.plots.scatter 等可视化。生产环境可用 joblib 持久化解释器并缓存。
适用场景:基本模型解释、模型调试、特征工程、模型对比、公平性分析、生产部署、时序与 MLOps 集成。
限制与注意:SHAP 反映关联而非因果;需注意模型输出单位(概率、log-odds、原始输出);KernelExplainer 较慢,仅在必要时使用;背景数据建议 50 至 1000 个代表性样本;大数据集可分批或抽样;高特征重要性可能提示数据泄漏。
分类依据:依据模型可解释性与分析用途,归入 data(数据与分析)。