Python Databricks 无法可视化 dtreeviz 决策树

Python Databricks cannot visualise dtreeviz decision tree

我需要在 Databricks 的 dtreeviz 中可视化决策树。 该代码似乎工作正常。 但是,它没有显示决策树,而是抛出以下内容:

Out[23]: <dtreeviz.trees.DTreeViz at 0x7f5b27a91160>

运行以下代码:

import pandas as pd
from sklearn import preprocessing, tree
from dtreeviz.trees import dtreeviz

Things = {'Feature01': [3,4,5,0], 
          'Feature02': [4,5,6,0], 
          'Feature03': [1,2,3,8], 
          'Target01': ['Red','Blue','Teal','Red']}
df = pd.DataFrame(Things,
                  columns= ['Feature01', 'Feature02', 
                            'Feature02', 'Target01']) 

label_encoder = preprocessing.LabelEncoder()
label_encoder.fit(df.Target01)
df['target'] = label_encoder.transform(df.Target01)

classifier = tree.DecisionTreeClassifier()
classifier.fit(df.iloc[:,:3], df.target)

dtreeviz(classifier,
         df.iloc[:,:3],
         df.target,
         target_name='toy',
         feature_names=df.columns[0:3],
         class_names=list(label_encoder.classes_)
         )

如果你查看 dtreeviz 文档,你会发现 dtreeviz 方法只是创建一个对象,然后你需要使用像 .view() 这样的函数来显示它。在 Databricks 上,view 不起作用,但您可以使用 .svg() 方法将输出生成为 SVG,然后使用 displayHTML function 显示它。以下代码:

viz = dtreeviz(classifier,
  ...)
displayHTML(viz.svg())

会给你想要的输出:

P.S。您需要使用 dot 命令行工具来生成输出。可以在notebook的一个单元格中执行安装:

%sh apt-get install -y graphviz