问题标签 [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 投票
0 回答
57 浏览

python-3.x - 是否可以计算序列到序列回归器的 SHAPley 值?

我试图了解不同时间序列对多步超前神经网络预测模型的贡献。输入向量的形状是 (n_samples, n_timestamps_input, n_features),预测的形状是 (n_samples, n_timestamps_output)。我想了解不同的 i 输入样本 -> (n_samples, n_timestamps_input, i) 如何对预测 j -> (j, n_timestamps_output) 做出贡献。有什么建议吗?

0 投票
1 回答
335 浏览

machine-learning - 使用 Shap Kernel Explainer 生成本地解释

我正在尝试使用 shap 内核解释器来解释我的模型。数据集的形状为 (176683, 42)。解释器 (xgbexplainer) 已成功建模,当我使用它生成 shap_values 时,它会引发内存错误。

首先我使用 nsamples 作为默认值 = 2*X_for_shap.shape[2] + 2048,它返回 MemoryError: Unable to allocate array with shape (2132, 7420686) and data type float64

当我将它设置为 nsamples = 1 时,它会无限期地运行。请帮助我了解我在哪里做错了

这是错误信息的截图

0 投票
1 回答
1090 浏览

reactjs - 有没有办法将 Flask 的 SHAP 或 LIME 输出渲染到 React?

我正在使用 Flask 在 React JS 项目上部署用 Python 编写的机器学习模型。

但是,需要显示 LIME 或 SHAP 输出。有没有人对如何将 Flask 的 html 或 js 输出渲染到 React 并显示它有任何想法?

下面是我目前以数字形式发送数据的代码,但不是图像/html/js

获取响应的代码:

0 投票
1 回答
1020 浏览

tensorflow - 如何使用 SHAP 解释多类深度学习分类器?

我在 IRIS 数据集上在 Keras 中训练了一个多类分类器。我想通过使用SHAP来解释我的深度学习模型。我使用以下代码行,其中模型是我训练的神经网络分类器,X1[train]是我的训练输入,X1[test]是我的测试输入:

但是,我得到了这个错误(当我的softmax在二进制分类中有一个输出时我很好。当softmax有超过1个输出时出现问题):

如何解决此问题并获取多类深度学习分类器中单个类的 SHAP 值?

0 投票
1 回答
1829 浏览

python - Shap LSTM (Keras, TensorFlow) ValueError: shape mismatch: objects cannot be broadcast to a single shape

我试图从简单的 LSTM 模型中绘制摘要。我ValueError: shape mismatch: objects cannot be broadcast to a single shape打电话时得到shap.summary_plot重现问题的 Colab

崩溃

我做错了什么还是这是一个错误?这一天我一直在敲我的头。提前谢谢你的帮助。

0 投票
1 回答
615 浏览

tensorflow - SHAP DeepExplainer:包含“nan”值的 shap_values

我的 shap 值有问题,这是我的模型:

我打电话给:

但是我的 shap 值看起来像这样(对于第一个实例):

我相当确定我的 shap_values 中不应该有 nan 值,但我似乎找不到原始问题。此外,由 给出的预测值shap.force_plot与我的模型的预测不同,这就是我首先检查我的 shap_values 的原因。

有人知道我该如何解决吗?

0 投票
1 回答
962 浏览

python - RandomForest 和 XGB 为什么/如何?对此有什么可以做的吗?

从树解释器返回的 SHAP 值为.shap_values(some_data)XGB 和随机森林提供了不同的维度/结果。我试过调查它,但似乎无法找到原因或方式,或者在任何 Slundberg 的(SHAP dude's)教程中的解释。所以:

  • 我失踪有什么原因吗?
  • 是否有一些标志可以为每个类返回 XGB 的 shap 值,就像其他不明显或我遗漏的模型一样?

下面是一些示例代码!

输出:

任何想法都是有帮助的!谢谢!

0 投票
1 回答
2955 浏览

python - 在 jupyter notebook 中安装 shap 时出错:shap 已安装在 ubuntu 系统上,但未安装在 jupyter notebook 上

我在 jupyter notebook 中安装 shap 时遇到问题,它显示以下错误,正在运行 setup.py install for shap ... 错误。虽然从终端安装 shap 没有任何问题。请帮忙。我正在使用: - pip install shap,我也无法使用 conda。使用 pip install conda 也会显示相同类型的错误:- 为 pycosat (setup.py) 构建轮...错误,为 pycosat 运行 setup.py install ... 错误。

以下是我在使用 pip install shap 时遇到的错误:-

使用缓存的 shap-0.35.0.tar.gz (273 kB)

已满足要求:/home/kv/snap/jupyter/common/lib/python3.7/site-packages 中的 numpy(来自 shap)(1.18.2)

已满足要求:/home/kv/snap/jupyter/common/lib/python3.7/site-packages 中的 scipy(来自 shap)(1.4.1)

已满足要求:home/kv/snap/jupyter/common/lib/python3.7/site-packages 中的 scikit-learn(来自 shap)(0.22.2.post1)

已满足要求:/home/kv/snap/jupyter/common/lib/python3.7/site-packages 中的熊猫(来自 shap)(1.0.3)

已满足要求:/home/kv/snap/jupyter/common/lib/python3.7/site-packages 中的 tqdm>4.25.0(来自 shap)(4.45.0)

已满足要求:/home/kv/snap/jupyter/common/lib/python3.7/site-packages 中的 joblib>=0.11(来自 scikit-learn->shap)(0.14.1)

已满足要求:/snap/jupyter/6/lib/python3.7/site-packages 中的 python-dateutil>=2.6.1(来自 pandas->shap)(2.8.0)

已满足要求:/home/kv/snap/jupyter/common/lib/python3.7/site-packages 中的 pytz>=2017.2(来自 pandas->shap)(2019.3)

已满足要求:/snap/jupyter/6/lib/python3.7/site-packages 中的六个>=1.5(来自 python-dateutil>=2.6.1->pandas->shap)(1.12.0)

为收集的包裹建造轮子:shap

shap (setup.py) 的构建轮 ... 错误

错误:命令出错,退出状态为 1:

命令:/snap/jupyter/6/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-vla3cytp/shap/setup.py'"'"'; file ='"'"'/tmp/pip-install-vla3cytp/shap/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open) ( file ) ;code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(代码,文件,'"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-1shy2q7c

完整输出(71 行):

运行 bdist_wheel

运行构建

运行 build_py

创建构建

创建 build/lib.linux-x86_64-3.7

创建 build/lib.linux-x86_64-3.7/shap

复制 shap/datasets.py -> build/lib.linux-x86_64-3.7/shap

复制 shap/ init .py -> build/lib.linux-x86_64-3.7/shap

复制 shap/common.py -> build/lib.linux-x86_64-3.7/shap

创建 build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/partition.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/tf_utils.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/explainer.py -> build/lib.linux-x86_64-3.7/shap/explainers 复制 shap/explainers/sampling.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/mimic.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/linear.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/pytree.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/permutation.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/ init .py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/gradient.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/additive.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/kernel.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/tree.py -> build/lib.linux-x86_64-3.7/shap/explainers

复制 shap/explainers/bruteforce.py -> build/lib.linux-x86_64-3.7/shap/explainers

创建 build/lib.linux-x86_64-3.7/shap/explainers/other

复制 shap/explainers/other/treegain.py -> build/lib.linux-x86_64-3.7/shap/explainers/other

复制 shap/explainers/other/coefficent.py -> build/lib.linux-x86_64-3.7/shap/explainers/other

复制 shap/explainers/other/lime.py -> build/lib.linux-x86_64-3.7/shap/explainers/other

复制 shap/explainers/other/maple.py -> build/lib.linux-x86_64-3.7/shap/explainers/other

复制 shap/explainers/other/ init .py -> build/lib.linux-x86_64-3.7/shap/explainers/other

复制 shap/explainers/other/random.py -> build/lib.linux-x86_64-3.7/shap/explainers/other

创建 build/lib.linux-x86_64-3.7/shap/explainers/deep

复制 shap/explainers/deep/deep_tf.py -> build/lib.linux-x86_64-3.7/shap/explainers/deep

复制 shap/explainers/deep/deep_pytorch.py​​ -> build/lib.linux-x86_64-3.7/shap/explainers/deep

复制 shap/explainers/deep/ init .py -> build/lib.linux-x86_64-3.7/shap/explainers/deep

创建 build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/colorconv.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/colors.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/waterfall.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/monitoring.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/partial_dependence.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/force_matplotlib.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/embedding.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/text.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/summary.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/image.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/decision.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/ init .py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/dependence.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/bar.py -> build/lib.linux-x86_64-3.7/shap/plots

复制 shap/plots/force.py -> build/lib.linux-x86_64-3.7/shap/plots

创建 build/lib.linux-x86_64-3.7/shap/benchmark

复制 shap/benchmark/models.py -> build/lib.linux-x86_64-3.7/shap/benchmark

复制 shap/benchmark/methods.py -> build/lib.linux-x86_64-3.7/shap/benchmark

复制 shap/benchmark/measures.py -> build/lib.linux-x86_64-3.7/shap/benchmark

复制 shap/benchmark/plots.py -> build/lib.linux-x86_64-3.7/shap/benchmark

复制 shap/benchmark/metrics.py -> build/lib.linux-x86_64-3.7/shap/benchmark

复制 shap/benchmark/ init .py -> build/lib.linux-x86_64-3.7/shap/benchmark

复制 shap/benchmark/experiments.py -> build/lib.linux-x86_64-3.7/shap/benchmark

创建 build/lib.linux-x86_64-3.7/shap/plots/resources

复制 shap/plots/resources/logoSmallGray.png -> build/lib.linux-x86_64-3.7/shap/plots/resources

复制 shap/plots/resources/bundle.js -> build/lib.linux-x86_64-3.7/shap/plots/resources

复制 shap/tree_shap.h -> build/lib.linux-x86_64-3.7/shap

运行 build_ext

numpy.get_include() /home/kv/snap/jupyter/common/lib/python3.7/site-packages/numpy/core/include

构建“shap._cext”扩展

创建 build/temp.linux-x86_64-3.7

创建 build/temp.linux-x86_64-3.7/shap

gcc -pthread -B /home/filipe/miniconda3/envs/JUPYTER/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/snap/ jupyter/6/include/python3.7m -I/home/kv/snap/jupyter/common/lib/python3.7/site-packages/numpy/core/include -c shap/_cext.cc -o build/temp。 linux-x86_64-3.7/shap/_cext.o

无法执行“gcc”:没有这样的文件或目录

错误:命令“gcc”失败,退出状态为 1


错误:shap 的构建轮失败

为 shap 运行 setup.py clean

无法构建形状

安装收集的包:shap

3.7/shap/解释器/其他

3.7/shap/解释器/其他

3.7/shap/解释器/其他

3.7/shap/explainers/deep

比较 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/snap/jupyter/6/include/python3.7m -I/home/kv/snap/jupyter/common/lib/python3.7/站点包/numpy/core/include -c shap/_cext.cc -o build/temp.linux-x86_64-3.7/shap/_cext.o

错误:命令出错,退出状态为 1:/snap/jupyter/6/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-vla3cytp/shap/setup.py'"'"'; file ='"'"'/tmp/pip-install-vla3cytp/shap/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)( file ) ;code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(代码,文件,'"'"'exec'"'"'))' install --record /tmp/pip-record-tt70qus_/install-record.

注意:您可能需要重新启动内核才能使用更新的软件包。

0 投票
1 回答
59 浏览

python - 有没有办法为机器学习模型中的每个预测给出一个理由

我正在做一个项目,我需要为从我的机器学习模型中获得预测的每个数据行提供一个原因。我正在使用逻辑回归模型(二元分类)来获得我的预测,并且截止阈值为 0.6。我曾尝试使用 SHAP 和 ELI5 来识别最重要的特征,但这适用于所有数据点。我想为每个数据点说明它被归类为 1 的原因。我不确定如何使其在本地可解释以供人类理解预测。

0 投票
0 回答
289 浏览

h2o - h2o SHAP 使用 MOJO 预测贡献

根据发布(https://www.h2o.ai/blog/h2o-release-3-26-yau/),据说也可以从 MOJO 中检索 SHAP 值。但是,没有诸如h2o.mojo_predict_contributions或等效的功能?

一旦模型被导入:gbm_m=h2o.import_mojo('GBM_model_R.zip')h2o.predict_contributions(gbm_m,data)运行(注意数据已经是一个 h2o 数据帧并且 h20 集群处于活动状态)。下面是输出:

在此处输入图像描述

除了_ _苏打水 h2o 版本。我们如何直接使用 MOJO 对象提取 SHAP 值,而无需剥离集群,即函数,例如h2o.mojo_predict_df