You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks内核重启后SHAP summary plot无法显示的问题求助

问题描述

在Databricks中运行以下SHAP绘图代码时,仅输出<Figure size 576x684 with 2 Axes>,无法显示实际图形;且该问题不仅出现在SHAP绘图中,其他绘图也存在相同异常:

shap.summary_plot(shap_values.values, X[input_cols])
# 或
shap.summary_plot(shap_values, X[input_cols])

此前代码可正常运行,内核重启后出现该问题。相关前置代码如下:

import shap
explainer=shap.TreeExplainer(pipelineModel.stages[2])# 从PySpark Pipeline中提取的梯度提升模型
shap_values=explainer(X,check_additivity=False)# X为模型预测用的DataFrame

已确认shap_values和X数据正常,模型可正常完成预测;尝试添加matplotlib=True参数会直接引发错误。

解决方案
  • 强制配置Matplotlib inline后端
    内核重启后可能丢失默认绘图后端配置,在代码开头添加以下内容,确保图形直接在单元格内渲染:

    import matplotlib.pyplot as plt
    %matplotlib inline
    

    注意%matplotlib inline是IPython魔法命令,需放在代码块最上方生效。

  • 手动触发图形渲染
    部分场景下SHAP绘图函数不会自动调用渲染方法,需手动添加触发代码:

    shap.summary_plot(shap_values.values, X[input_cols])
    plt.show()
    
  • 检查并修复依赖包版本兼容
    内核重启后可能出现依赖包版本冲突(尤其是SHAP、Matplotlib与PySpark的版本匹配问题):

    1. 运行以下命令查看当前版本:
      print(shap.__version__, matplotlib.__version__)
      
    2. 若版本不兼容,重新安装适配版本(示例版本可根据Databricks Runtime调整):
      %pip install shap==0.41.0 matplotlib==3.7.1
      
  • 切换至静态绘图渲染模式
    若Databricks默认启用了交互式绘图后端(如Plotly),可能与Matplotlib/SHAP冲突,可通过以下命令切换回静态渲染:

    %config InlineBackend.figure_format = 'retina'
    

内容的提问来源于stack exchange,提问作者DrRaspberry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:27:28