问题标签 [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 回答
304 浏览

python - 如何使用 matplotlib 转换 nd 数组以绘制特征重要性

我正在使用shap来确定mlp_classifier.

(注意 - 我使用的是虚拟数据和模型,因为我的正常数据和模型是专有的)。

shap.summary_plot按照本指南使用,我得到如下图:

在此处输入图像描述

在我的实际数据集中,我有关于10,000特征。我要做的是从该列表中获取最重要的功能,并按照本指南n使用 绘制它们。但是,我收到一个错误和一个空白图表:matplotlib

在此处输入图像描述

完整追溯:

我无法将shap_valuein映射shap_values[1]X_test.columns. 我怎样才能正确地占据顶部n并绘制matplotlib

0 投票
1 回答
986 浏览

python - 使用 predict_contributions 在 Python 中的 H2O 中的负 SHAP 值

我一直在尝试计算 Python 中 H2O 模块中梯度提升分类器的 SHAP 值。下面是该predict_contibutions方法文档中的改编示例(改编自https://github.com/h2oai/h2o-3/blob/master/h2o-py/demos/predict_contributionsShap.ipynb)。

我从上面的代码中得到的图像是: 一次观察的力图

输出是什么意思?考虑到上面的问题是分类问题,预测值应该是概率(甚至预测的类别——0或1),对吧?基值和预测值均为负值。

谁能帮我这个?

0 投票
1 回答
3517 浏览

python - 在 Pip 虚拟环境中 Pip 安装 SHAP 失败

我在 Linux 服务器上的 Python 3.6.3 上使用 pip 虚拟环境。

我尝试 pip 安装 SHAP 但遇到以下错误:

我浏览了一些类似的问题并尝试通过指定包版本来安装 SHAP,但没有任何成功。

你能请教吗?提前致谢!

0 投票
1 回答
356 浏览

python - Tensorflow 模型层连接失败,无法使用 shap.DeepExplainer

我正在尝试应用 shap.deepexplainer 来解释模型输出。

我的模型类如下:

当我将模型应用为:

并且模型加载成功:

然后我尝试使用

但后来它给了我错误:

AttributeError: 层密集未连接,没有输入返回。Traceback(最近一次调用最后一次):文件“/home/ANANT/codes/test/env/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py”,第 1808 行,在输入中没有连接,没有输入返回。')

而且model.layers[-1].output也不能​​给出正确的输出:

AttributeError:Layer dense_4 没有入站节点。回溯(最后一次调用):文件“/home/ANANT/test/env/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py”,第 1827 行,在输出中引发 AttributeError( '图层' + self.name + '没有入站节点。')

我的包版本是:keras==2.3.1,tensorflow==1.15.3,shap==0.35.0

我在这个问题上停留了几天,也尝试了 shap.KernelExplainer,它给了我一个不同的错误:

错误如下:

类型错误:调用()缺少 2 个必需的位置参数:“注册”和“长度”回溯(最近一次调用):文件“/home/ANANT/test/env/lib/python3.6/site-packages/shap/explainers /kernel.py”,第 97 行,在 __init__model_null = match_model_to_data(self.model, self.data) 文件“/home/ANANT/test/env/lib/python3.6/site-packages/shap/common.py”中,第 89 行,在 match_model_to_dataout_val = model.f(data.data) 文件“/home/ANANT/test/env/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py”中,第 968 行, 在 __call__outputs = self.call(cast_inputs, *args, **kwargs)

请帮忙,提前谢谢!

0 投票
1 回答
1352 浏览

python - 在虚拟环境pycharm MAC中安装SHAP包时出错

我正在 pycharm 中开发一个项目,该项目位于 Mac OS 的虚拟环境中。我一直在尝试安装 SHAP 包,不幸的是它没有成功。以下是完整的错误消息。似乎存在一个似乎不存在的 SDK 的问题,但是当我在虚拟环境之外安装包时,我没有遇到任何问题。

0 投票
0 回答
277 浏览

python - 在 SHAP 解释器中使用样本权重

我想计算线性模型的 SHAP 值。对于回归,我必须使用样本权重。

问题是我无法评估样本权重是否实际应用于正确计算 SHAP 值。

这是一个例子。

首先,我计算没有权重的回归。

然后我用权重计算回归。

到目前为止,我发现(我使用其他软件包(例如 R、SPSS 来评估结果)测试了不同的组合)是我必须将权重应用于fit()函数并r2_score()函数以获得正确的结果(参见上面的示例) . 例如,如果我只将权重应用于fit()函数而不应用于r2_score()函数,则报告的 R2 值是错误的(即模型错误)。如果我也将权重应用于predict()函数,则 R2 值也是错误的(即模型错误)。

但是,由于我只能在 Python 中计算 SHAP 值,因此我无法评估结果。问题是我应该如何应用样本权重来计算 SHAP 值?

仅在拟合函数 (?) 中:

或者也在explainer()函数(?)中:

可能还有其他可能性……但我不知道哪个是正确的。

这是一个小数据样本。

0 投票
0 回答
499 浏览

python - 如何将 shap.DeepExplainer (SwigPyObject) 保存到文件中?

我试图使用 保存我的解释shap器类型,但我收到错误:。我的代码:DeepExplainerpickle.dumpcan't pickle SwigPyObject objects

将此类存储到文件的最佳方法是什么?

0 投票
1 回答
308 浏览

python - 在处理上述异常的过程中,使用SHAP解释keras神经网络模型时出现了另一个异常

x_train看起来像这样(22 个特征):

标签是0and 1,这是一个二元分类问题,这是构建模型的代码,我正在关注这个页面来实现 SHAP:

这给了我错误:

我不知道这条消息在抱怨什么,我尝试将 SHAP 与 XGBoost 和 Logistic 回归模型一起使用,它们都工作正常,我是 keras 和 SHAP 的新手,有人可以看看我以及我如何解决它? 非常感谢。

0 投票
1 回答
792 浏览

python - 如何让我的 SHAP 图显示超过 20 个变量?

如何让我的 SHAP 图在我的图表中显示 20 多个变量。这是我的代码:

形状图

0 投票
3 回答
3859 浏览

python - 如何在 Mac 上安装 shap 模块?

我正在尝试安装 shap 包并不断收到以下错误

ModuleNotFoundError: No module named 'shap'

我在笔记本和终端中输入了以下内容

这是错误的行

我目前在 Mac 上