问题标签 [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.
python - Python 中的 SHAP 在使用 DeepExplainer 时是否支持 Keras 或 TensorFlow 模型?
我目前正在使用 SHAP 包来确定功能贡献。我已经将这种方法用于 XGBoost 和 RandomForest,并且效果非常好。由于我正在处理的数据是顺序数据,我尝试使用 LSTM 和 CNN 来训练模型,然后使用 SHAP 获得特征重要性DeepExplainer
;但它不断抛出错误。我得到的错误是:
我也附上了示例代码(LSTM)。如果有人可以帮助我,那将会很有帮助。
python-3.x - 将 Tensorflow 2.0 降级到 1.5 后,结果发生了变化,结果再现不可用
你能帮我在不重新启动 Python 内核的情况下使用 Tensorflow 1.15 实现可重现的结果吗?为什么 TF 2.0 和 TF 1.5 的输出结果在参数和数据集完全相同的情况下是不同的?是否有可能实现相同的输出?
更多细节:我试图通过以下方式解释 TF 2.0 中的模型结果:
我收到一个错误:
根据SO topic,我尝试通过在我的代码前面使用来设置 TF 2.0 与 TF 1 的兼容性:
但是错误又出现了。根据许多用户的建议,我将 TF2 降级到 TF 1.15 它解决了问题,并且 shap 模块解释了结果,但是:1)为了使结果可重现,现在我必须更改 tf.random.set_random_seed 上的 tf.random.set_seed(7) (7)并且每次都重启Python内核!在 TF2 中,我不必重新启动内核。2)预测结果发生了变化,尤其是经济效率(即TF1.5.错误分类比TF2.0更重要的样本)。
TF 2:精度:94.95%,经济效率=64%
TF 1:精度:94.85%,经济效率=56%
模型的代码在这里
python - 如何在 SHAP 汇总图上绘制特定特征?
我目前正在尝试在 SHAP 汇总图上绘制一组特定功能。但是,我正在努力寻找这样做所需的代码。
查看 Github 上的源代码时,summary_plot 函数似乎确实具有“特征”属性。但是,这似乎不能解决我的问题。
任何人都可以帮我绘制一组特定的功能,或者这在当前的 SHAP 代码中不是一个可行的选项。
python - Keras LSTM:使用 SHAP 的特征重要性条形图
我正在研究用于时间序列预测的 LSTM。现在我想了解,哪些功能对输出的影响最大,哪些不重要。目标是像在 pycharm 中使用 matplotlib 的条形图(参考:https ://github.com/slundberg/shap ):
这是我的模型:
在计算 shap_values (shap_values = ...) 时出现以下错误:
有任何想法吗?提前致谢!
python - 使用 SHAP 的 Tkinter 回调异常
我正在尝试在 Python 中绘制一些SHAP 图,以更深入地了解我的机器学习模型的输出。这是我在 for 循环中调用的方法:
绘图按预期保存到磁盘,但在每次调用 savefig 方法后,我收到以下错误消息:
任何想法如何摆脱这个异常?
keras - ValueError:两个形状中的维度 1 必须相等,但分别为 10 和 1
我试图在 MNIST 数据集的帮助下实现 shap DeepExplainer (DeepSHAP) 模块。但我收到以下错误:
ValueError:两个形状中的维度 1 必须相等,但为 10 和 1。形状为 [?,10] 和 [?,1]。对于 gradients_7/dense_2_1/Softmax_grad/gradients/gradients_7/dense_2_1/Softmax_grad/truediv_grad/Select_1 (op: 'Select') 输入形状:[?,1], [?,10], [?,10]。
错误在该行中:
shap_values = e.shap_values(x_test[1:5])
完整代码:
python - 带有 Shap ValueError 的 DeepExplainer:使用不是符号张量的输入调用了 Layersequential_1
我尝试使用带有 Shap 库的 Keras 获取经典神经网络的特征重要性,但出现以下错误: ValueError: Layersequential_1 was called with an input that is not a symbolic tensor。我查看了论坛,但答案仅适用于卷积网络。请在下面找到我的代码。
我的 X 是具有以下形状的数据框:
我的标签是具有以下形状的数据框:
我的模型如下:
当我尝试获取功能重要性时,我遇到了 DeepExplainer 的问题:
有人有想法吗?在此先感谢您的帮助。
shap - 获取使用 kNN 进行的预测的 SHAP 值
如果我想获得带有 n 个变量的 kNN 分类器的核 SHAP 值,我是否必须重新计算预测 2^n 次?
(我用的不是python,而是MATLAB,所以需要知道里面的算法)