问题标签 [shap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
118 浏览

python - ClipByValue 不存在于 Shap 包的 tf_ops._gradient_registry._registry

我尝试使用python 中的这个包示例来解释我的深度学习模型。shap

当我调用 时explainer.shap_values(test[:2]),我得到一个 Keyerror - ClipByValue。

显然 ClipByValue 不存在于我的tf_ops._gradient_registry._registry.

0 投票
1 回答
4059 浏览

scikit-learn - 如何将 SHAP 与 sklearn 中的线性 SVC 模型一起使用 Pipeline?

我正在使用 sklearn 的线性 SVC 模型进行文本分类。现在我想通过使用 SHAP ( https://github.com/slundberg/shap )来可视化哪些词/标记对分类决策的影响最大。

现在这不起作用,因为我收到一个错误,该错误似乎源于我定义的管道中的矢量化步骤 - 这里有什么问题?

在这种情况下,我关于如何使用 SHAP 的一般方法是否正确?

这是我收到的错误消息:

0 投票
1 回答
2151 浏览

python - 如何告诉 shap 树解释器和 shap 值计算器哪些变量是分类的?

我需要更好地理解我的 LightGBM 模型,所以我正在使用 SHAP Tree 解释器。需要对lightgbm数据进行编码,我将相同的数据传递给树解释器。因此,我担心 SHAPTreeExplainer并将shap_values()我的数据视为数字数据。如何指定数据是分类的?这会改变 SHAP 值的计算吗?

我已经浏览了文档

0 投票
0 回答
395 浏览

python - 当我运行 SHAP 时,这个错误是什么?“无法导入名称'_validate_lengths'”

当我运行时import shap,出现以下错误:

0 投票
1 回答
399 浏览

python - 形状统计

我曾经shap确定具有相关特征的多元回归的特征重要性。

在此处输入图像描述

shap提供图表来获取形状值。是否还有可用的统计数据?我对确切的形状值感兴趣。我阅读了 Github 存储库和文档,但我没有发现关于这个主题的任何内容。

0 投票
0 回答
353 浏览

python-3.x - 安装 SHAP 后 pandas 和 numpy 无法正常运行

我是 python 编程的新手,想安装 SHAP。安装 SHAP 后,我收到了基本代码的错误,这些代码之前执行得很好(pandas 和 numpy)。我的版本是 python 3.7.1 conda 4.7.11 pd__version__ :'0.23.4'

我遇到了类似的问题并尝试进行故障排除,但现在 SHAP 和 numpy、pandas 都无法正常工作。我正在为 Windows 开发 anaconda 发行版。并pip install --upgrade没有解决我的问题。

目前甚至 pd.read_csv 都不起作用

升级或重新安装 pandas 已满足要求。

0 投票
1 回答
1849 浏览

tensorflow - 使用 DeepExplainer 获取 Keras 中具有 tensorflow 后端的 MLP 模型的 shap 值

我正在使用 DeepExplainer 来获取深度学习模型的 shap 值。通过遵循一些教程,我可以获得一些结果,即哪些变量从基值推动模型预测,基值是训练集中的平均模型输出。

我有大约 5,000 个观察值和 70 个特征。DeepExplainer 的表现中规中矩。我的代码是:

情节如下: 在此处输入图像描述

这里的基值为 0.012(也可以通过e.expected_value[0]看到),非常接近输出值 0.01。

在这一点上,我有一些问题:

1) 输出值与通过model0.predict(test[healthFeatures])[947] = -0.103得到的预测值不同我应该如何评估输出值?

2) 可以看出,我使用整个训练集作为背景来近似 SHAP 值的条件期望。使用训练集和整个集的随机样本有什么区别?它仅与性能问题有关吗?

提前谢谢了!

0 投票
1 回答
3556 浏览

python-3.x - 如何将绘图(由 shap_values 生成)保存到 png?

我使用 Shap 库来可视化变量的重要性。

我尝试将 shap_summary_plot 保存为“png”图像,但我的 image.png 但他们得到一个空图像

这是我使用的代码:

代码有效,但保存的图像为空。

如何将绘图保存为 image.png?

0 投票
1 回答
2338 浏览

python - 形状力图和决策图为 XGBClassifier 模型提供了错误的输出

我正在尝试为一小部分预测提供 shap 决策图,但 shap 找到的输出与我在仅使用模型进行预测时得到的结果不同,即使在调用中使用 link = 'logit' 也是如此。由于我试图绘制的子集,我试图生成的每个决策图的结果都应该大于预期值。但是,生成的每个图的预测值都低于预期值。

我有两个模型处于最小集合中,因此我使用 for 循环来确定要为其生成绘图的模型。我为 RandomForestClassifier 模型创建正确的图没有问题,但 XGB 模型出现了问题。

如前所述,在评分时,(我关心的)每个观察值都应该 > 0.5,但这不是我在 shap plots 中看到的。这是一个例子:

示例决策图

该图显示了大约 0.1 的输出,但是当使用 predict_proba 对该观察进行评分时,我得到的值为 0.608

由于数据的敏感性,我无法真正提供代表,我不确定根本问题是什么。

非常欢迎任何反馈,谢谢。



相关点冻结项目:

蟒蛇 3.7.3

matplotlib==3.0.3

形状==0.30.1

xgboost==0.90

0 投票
1 回答
2187 浏览

machine-learning - 用于可解释机器学习的 Shapley 值和 SHAP 之间的差异

关于模具封装的论文shap给出了 (4) 中的 Shapley 值和显然在 (8) 中的 SHAP 值的公式

我仍然不太了解 Shapley 和 SHAP 值之间的区别。据我了解,对于 Shapley,我需要在每个可能的参数子集上重新训练我的模型,而对于 SHAP,我只是使用在所有参数上训练的基本模型。是这样吗?那么SHAP在计算上更容易吗?