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

Databricks中调用CatBoostClassifier的plot_tree无法生成树仅返回Digraph对象

CatBoost树在Databricks中可视化的解决方案
  • 第一步:安装系统层面的graphviz依赖
    你安装的graphviz==0.18.2只是Python封装包,还需要在集群节点安装graphviz二进制程序,在Databricks notebook中运行以下sh命令即可临时生效:
    %sh
    apt-get update && apt-get install -y graphviz
    
    如果需要永久生效,可把该命令加入集群的初始化脚本,避免每次集群重启后重复安装。
  • 方案一:直接用IPython的display方法渲染Digraph对象
    运行以下代码即可正常显示树图:
    from IPython.display import display
    tree = model.plot_tree(tree_idx=0)
    display(tree)
    
  • 方案二:通过SVG转HTML渲染(兼容性更好)
    如果方案一未生效,可以把Digraph对象转成SVG格式后用Databricks原生的displayHTML接口渲染:
    from databricks.displayHTML import displayHTML
    
    tree = model.plot_tree(tree_idx=0)
    svg_content = tree.pipe(format="svg").decode("utf-8")
    displayHTML(svg_content)
    
  • 方案三:导出dot文件后加载渲染
    如果前面两种方案都不生效,可以先把树结构导出为dot文件再加载显示:
    from IPython.display import display
    import graphviz
    
    # 导出树结构到dot文件
    model.plot_tree(tree_idx=0, save_path="./catboost_tree_0.dot")
    # 加载dot文件并渲染
    tree_graph = graphviz.Source.from_file("./catboost_tree_0.dot")
    display(tree_graph)
    
  • 额外排查点
    如果上述操作完成后仍无法显示,检查CatBoost版本兼容性,建议升级到最新稳定版后重试:
    %pip install -U catboost
    
    运行后重启notebook的Python内核即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:36:00