【问题标题】:Trying to view decision tree in my notebook试图在我的笔记本中查看决策树
【发布时间】:2018-09-20 20:31:10
【问题描述】:
我正在尝试扩展我的决策树以适应笔记本,但它似乎无法正确扩展。我必须继续滚动以获得更好的视图。我可以就如何解决这个问题提供一些帮助。附上一张它的样子。
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'))
【问题讨论】:
标签:
pandas
machine-learning
scikit-learn
graphviz
【解决方案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
我还在export_graphviz 中添加了rotate=True,以便它以水平样式显示,树的根部直接可见,并且更易于跟踪。当然,你也可以玩转size,以达到你可以接受的程度。