【发布时间】:2021-03-25 17:59:34
【问题描述】:
我正在尝试使用 SHAP 解释基于 LightGBM 的回归模型。我正在使用 shap.TreeExplainer().shap_values(X) 方法来获取 SHAP 值,其中 X 是整个训练数据集。这些 SHAP 值让我可以比较单个预测与整个数据集的平均预测。
在 Christopher Molnar 的在线书籍第 5.9.4 节中,他提到: “您可以将其与子集甚至单个数据点进行比较,而不是将预测与整个数据集的平均预测进行比较。”
我对此有几个问题:
- 如果我没有传递整个训练数据集,而是传递了 20 个观察值的子集,那么我是否正确解释,那么返回的 SHAP 值将相对于这 20 个观察值的平均值?这相当于 Christopher Molnar 在他的书中提到的“子集”
- 假设问题 1 的答案是肯定的,如果不是生成相对于 20 次观察平均值的 SHAP 值,而是生成相对于一个特定观察值的 SHAP 值,该怎么办。 Christopher Molnar 似乎暗示这是可能的。如果可能,我该怎么做?
提前感谢您的指导!
【问题讨论】: