SHAP值的“基值”是如何计算的?

数据挖掘 lightgbm 可解释的ai 形状
2022-01-29 11:39:47

我试图了解如何计算基值。所以我使用了 SHAP 的 github notebook 中的一个例子,Census income classification with LightGBM

在我训练好 lightgbm 模型之后,我explainer.shap_values()分别对测试集的每一行进行了应用。通过使用force_plot(),得到基值、模型输出值以及特征的贡献,如下图所示: 在此处输入图像描述

我的理解是,当模型没有特征时,推导出基值。但它实际上是如何在 SHAP 中计算的呢?

1个回答

正如您所说,它是无特征模型的值,通常是训练集中结果变量的平均值(如果分类,通常是对数赔率)。使用force_plot,您实际上将所需的基值作为第一个参数传递;在那个笔记本的情况下,它是explainer.expected_value[1]二等舱的平均水平。

https://github.com/slundberg/shap/blob/06c9d18f3dd014e9ed037a084f48bfaf1bc8f75a/shap/plots/force.py#L31

https://github.com/slundberg/shap/issues/352#issuecomment-447485624