集成树模型如何用 SHAP 做解释?
简化版
树集成常用 TreeSHAP 高效计算局部特征贡献,使预测等于基线加各贡献;解释前要明确输出是 raw margin、概率还是损失,并选择合适背景分布。SHAP 满足可加性,不等于因果或特征独立。
详细版
-
TreeSHAP 利用树路径结构,通常比通用枚举快。
-
多分类会为每个类别产生一组贡献。
-
概率空间未必保持与 raw margin 相同的严格加法。
-
相关特征的贡献分配依赖条件/干预假设。
-
全局 summary 常聚合绝对 SHAP,会丢失正负方向。
完整版教学
一、SHAP 是相对基线的合作博弈分摊
模型预测相对背景期望多出的部分,被分给各特征。
基线不是零,而是解释器背景数据上的期望输出。
树算法可沿路径统计特征出现与样本覆盖,避免通用 SHAP 对所有特征子集做指数枚举;加速不消除解释假设。
二、底层机制与公式
f(x)=E[f(X)]+sum_j phi_j
for binary raw margin: logit(x)=base_value+sum_j phi_j
三、带数字的推演
raw margin 基线 -1.0,三个贡献 [+0.8,+0.4,-0.2],最终 margin=0,对应概率 0.5。
不能把贡献直接说成概率增加 80%、40%、减少 20%。
四、方案对比
| 方案/对象 | 核心特点 | 代价或边界 |
|---|---|---|
| TreeSHAP | 树结构专用且快 | 依赖输出与扰动设定 |
| KernelSHAP | 模型无关 | 采样近似且昂贵 |
| Path contribution | 实现直观 | 不一定满足 SHAP 公理 |
五、执行流程
固定模型/背景集 -> 指定输出空间 -> 计算单样本贡献
-> 校验 base+sum=output -> 聚合全局分布 -> 相关特征与漂移检查
六、边界条件与工程代价
背景集过大增加计算,过窄则基线只代表某个小群体。
可分业务人群选代表性背景并记录版本。
把绝对贡献求均值得到全局重要性时,正负效果都会变正;方向需看 dependence plot 或分桶统计。
记忆钩子:先做加法对账:基线 + 贡献 = 指定空间的输出。
七、常见误区与追问
-
误区:SHAP +0.2 表示概率提高 20%。 可能解释的是 raw margin,必须看输出空间。
-
追问:base value 是什么? 背景分布下模型输出的期望。
-
误区:TreeSHAP 自动给出因果贡献。 它仍是模型函数的归因。
-
追问:多分类如何展示? 每个类别分别有基线和贡献向量。
-
追问:怎样做数值自检? 确认基线加贡献之和与指定模型输出一致。
八、加强记忆
先做加法对账:基线 + 贡献 = 指定空间的输出。
再解释背景集、相关特征与 raw/probability 区别,避免把漂亮图误当因果结论。