[ PROMPT_NODE_27406 ]
explainers
[ SKILL_DOCUMENTATION ]
# SHAP 解释器参考
本文档提供了关于所有 SHAP 解释器类、其参数、方法以及何时使用每种类型的全面信息。
## 概述
SHAP 为不同的模型类型提供了专门的解释器,每种解释器都针对特定架构进行了优化。通用的 `shap.Explainer` 类会根据模型类型自动选择合适的算法。
## 核心解释器类
### shap.Explainer (自动选择器)
**目的**:通过选择最合适的解释算法,自动使用 Shapley 值来解释任何机器学习模型或 Python 函数。
**构造函数参数**:
- `model`: 要解释的模型(函数或模型对象)
- `masker`: 用于特征操作的背景数据或掩码对象
- `algorithm`: 可选覆盖,强制指定解释器类型
- `output_names`: 模型输出的名称
- `feature_names`: 输入特征的名称
**何时使用**:当不确定使用哪种解释器时的默认选择;根据模型类型自动选择最佳算法。
### TreeExplainer
**目的**:使用 Tree SHAP 算法为基于树的集成模型提供快速且精确的 SHAP 值计算。
**构造函数参数**:
- `model`: 树模型 (XGBoost, LightGBM, CatBoost, PySpark 或 scikit-learn 树)
- `data`: 用于特征集成的背景数据集 (tree_path_dependent 时可选)
- `feature_perturbation`: 如何处理相关特征
- `"interventional"`: 需要背景数据;遵循因果推理规则
- `"tree_path_dependent"`: 不需要背景数据;使用每个叶节点的训练样本
- `"auto"`: 如果提供了数据则默认为 interventional,否则为 tree_path_dependent
- `model_output`: 要解释的模型输出
- `"raw"`: 标准模型输出 (默认)
- `"probability"`: 概率转换后的输出
- `"log_loss"`: 损失函数的自然对数
- 自定义方法名称,如 `"predict_proba"`
- `feature_names`: 可选的特征命名
**支持的模型**:
- XGBoost (xgboost.XGBClassifier, xgboost.XGBRegressor, xgboost.Booster)
- LightGBM (lightgbm.LGBMClassifier, lightgbm.LGBMRegressor, lightgbm.Booster)
- CatBoost (catboost.CatBoostClassifier, catboost.CatBoostRegressor)
- PySpark MLlib 树模型
- scikit-learn (DecisionTreeClassifier, DecisionTreeRegressor, RandomForestClassifier, RandomForestRegressor, ExtraTreesClassifier, ExtraTreesRegressor, GradientBoostingClassifier, GradientBoostingRegressor)
**关键方法**:
- `s