保存Shap生成的神经网络解释图(shap.image_plot)

保存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了。

  • 30
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值