保存Shap生成的神经网络解释图(shap.image_plot)
保存Shap生成的神经网络解释图(shap.image_plot)调用shap.image_plot后发现使用plt.savefig保存下来的图像为空白图,经过查资料发现这是因为调用plt.show()后会生成新画板。(参考链接:保存plot_如何解决plt.savefig()保存的图片为空白的问题?)找到了一篇介绍如何保存Shap图的博客(原文地址:shap解释模型特征,多张图保存的实现(要改源
·
保存Shap生成的神经网络解释图(shap.image_plot)
调用shap.image_plot后发现使用plt.savefig保存下来的图像为空白图,经过查资料发现这是因为调用plt.show()后会生成新画板。(参考链接:保存plot_如何解决plt.savefig()保存的图片为空白的问题?)
找到了一篇介绍如何保存Shap图的博客(原文地址:shap解释模型特征,多张图保存的实现(要改源码)),但是里面并没有提到image_plot怎么处理。此外,前面那个链接里提到的“先在画图前调用myfig = plt.gcf(),再调用myfig.savefig()的方法也不起作用”。
最后干脆去看了一下shap.image_plot的源代码,不知道怎么查看函数源代码的朋友可以去看一下我写的另一篇博客,简单易操作(链接:Python查看函数源码)发现image_plot使用plt显示图像的源代码为:
if show:
pl.show()
这就好办了,show是调用image_plot时可以选择传递的一个参数,默认为True,调用的时候设为False就行了,代码如下:
shap.image_plot(shap_values, -x_test[1:5], show = False)
plt.savefig('./shap.png')
然后就能在源码同级目录下看到保存的shap.png了。
更多推荐
已为社区贡献1条内容
所有评论(0)