试图在我的笔记本中查看决策树

时间:2018-04-11 05:06:40

标签: pandas machine-learning scikit-learn graphviz

我正在尝试扩展我的决策树以适应笔记本,但似乎无法正确扩展。我必须继续滚动以获得更好的视图。我可以帮忙解决一下如何解决这个问题。附件是它的外观图。

from graphviz import Source
from sklearn import tree

from IPython.display import SVG
graph = Source( tree.export_graphviz(dt_classifier, out_file=None, feature_names=X.columns))
SVG(graph.pipe(format='svg'))

enter image description here

1 个答案:

答案 0 :(得分:1)

也许这不再重要了,因为这个问题已经公开了大约六个月了。但是,与其他83位读者一样,我还是偶然发现了它,并且我只是专门针对此问题制定了自己的方法。简单的方法是使用pydot包(pip install pydot),然后添加默认大小。我也一直在使用%matplotlib inline,以便它在笔记本中很好地显示,但不使用svg模块。以您的示例为例:

%matplotlib inline

from graphviz import Source
from sklearn import tree
import pydot

dot_data = tree.export_graphviz(dt_classifier, out_file=None, feature_names=X.columns))
pdot = pydot.graph_from_dot_data(dot_data)
# Access element [0] because graph_from_dot_data actually returns a list of DOT elements.
pdot[0].set_graph_defaults(size = "\"15,15\"")
graph = Source(pdot[0].to_string())
graph

我还向rotate=True添加了export_graphviz,使其以水平样式显示,树的根是直接可见的,并且易于遵循。当然,您可以和size一起玩,以达到您可以接受的目标。

sample use of pydot for resizing graphviz data in Jupyter notebook