首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Shap force plot不显示图形: shap.plots._force.AdditiveForceVisualizer

Shap force plot不显示图形: shap.plots._force.AdditiveForceVisualizer
EN

Stack Overflow用户
提问于 2021-03-30 08:59:12
回答 1查看 1.6K关注 0票数 0

我正在通过https://towardsdatascience.com/explain-your-model-with-the-shap-values-bc36aac4de3d尝试打印force_plot

我在Ubuntu 20.04上运行Python 3.8.5

我运行以下代码:

代码语言:javascript
运行
复制
shap.initjs()

# Write in a function

random_picks = np.arange(1,330,50) # Every 50 rows
S = X_test.iloc[random_picks]
def shap_plot(j):
    explainerModel = shap.TreeExplainer(xg_clf)
    shap_values_Model = explainerModel.shap_values(S)
    p = shap.force_plot(explainerModel.expected_value, shap_values_Model[j], S.iloc[[j]])
    return(p)
z = shap_plot(3)

我得到了<shap.plots._force.AdditiveForceVisualizer object at 0x7f1568cac070>

返回。

我不是python专家,所以我试着查看以下数据:

代码语言:javascript
运行
复制
display(z)

其中没有定义。

还有print(z),它只返回对象的名称,并不能帮助我查看绘制的内容。

我也尝试过使用已经加载的matplotlib

代码语言:javascript
运行
复制
def shap_plot(j):
    explainerModel = shap.TreeExplainer(xg_clf)
    shap_values_Model = explainerModel.shap_values(S)
    p = shap.force_plot(explainerModel.expected_value, shap_values_Model[j], S.iloc[[j]])
    plt.savefig('tmp.svg')
    plt.close()
    return(p)
shap_plot(3)

但这只会给出一个空的图像。

如果有错误,我看不到它。

如何让此shap.force_plot显示图像?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-30 09:59:30

解决方案在手册中:

代码语言:javascript
运行
复制
help(shap.force_plot)

它显示了

代码语言:javascript
运行
复制
matplotlib : bool
        Whether to use the default Javascript output, or the (less developed) matplotlib output. Using matplotlib can be helpful in scenarios where rendering Javascript/HTML is inconvenient.

实际上,运行笔记本电脑对我的目的来说非常不方便。

因此,为了保存图像:

代码语言:javascript
运行
复制
def shap_plot(j):
    explainerModel = shap.TreeExplainer(xg_clf)
    shap_values_Model = explainerModel.shap_values(S)
    p = shap.force_plot(explainerModel.expected_value, shap_values_Model[j], S.iloc[[j]], matplotlib = True, show = False)
    plt.savefig('tmp.svg')
    plt.close()
    return(p)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66863490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档