解决pycharm使用shap绘图时无法显示的问题

31 篇文章 3 订阅

什么报错都没有,就是无法显示图片

解决方法

将下面的显示方法:

shap.force_plot(value[0])

替换为:

import matplotlib.pyplot as plt

shap.force_plot(value[0], show=False, matplotlib=True)
plt.show()

示例

比如下面的代码:

import matplotlib.pyplot as plt
import xgboost
import shap
import pandas as pd


def load_data(samples=1000):
    """用来生成训练、测试数据"""
    from sklearn.datasets import make_regression
    data_x, data_y = make_regression(n_samples=samples, n_features=10)
    df_x = pd.DataFrame(data_x, columns=['f_1', 'f_2', 'f_3', 'f_4', 'f_5', 'f_6', "f_7", "f_8", "f_9", "f_10"])
    df_y = pd.Series(data_y)
    return df_x, df_y


def main():
    X, y = load_data()
    model = xgboost.XGBRegressor().fit(X, y)
    # 新建一个解释器,直接解析模型
    explainer = shap.Explainer(model)
    shap_values = explainer(X)
    shap.force_plot(shap_values[0], show=False, matplotlib=True)
    plt.show()
    print('a')


if __name__ == '__main__':
    main()

直接运行,就可以在pycharm里展示出来图片:
在这里插入图片描述

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值