【发布时间】:2015-03-05 06:16:17
【问题描述】:
我正在尝试在 Python 中使用 scikit-learn 设计一个简单的决策树(我在 Windows 操作系统上使用 Anaconda 的 Ipython Notebook 和 Python 2.7.3)并将其可视化如下:
from pandas import read_csv, DataFrame
from sklearn import tree
from os import system
data = read_csv('D:/training.csv')
Y = data.Y
X = data.ix[:,"X0":"X33"]
dtree = tree.DecisionTreeClassifier(criterion = "entropy")
dtree = dtree.fit(X, Y)
dotfile = open("D:/dtree2.dot", 'w')
dotfile = tree.export_graphviz(dtree, out_file = dotfile, feature_names = X.columns)
dotfile.close()
system("dot -Tpng D:.dot -o D:/dtree2.png")
但是,我收到以下错误:
AttributeError: 'NoneType' object has no attribute 'close'
我使用以下博文作为参考:Blogpost link
以下 stackoverflow 问题似乎对我也不起作用:Question
有人可以帮助我如何在 scikit-learn 中可视化决策树吗?
【问题讨论】:
-
文件
dtree2.dot被创建了吗? -
你能否调试
export_graphviz行,因为它返回None,所以发生了一些错误 -
是的。 dtree2.dot 确实被创建了。
-
Scikit-learn from version
0.21有方法plot_tree比导出到 graphviz 更容易使用。无论如何,还有非常好的包dtreeviz。下面是sklearn树的可视化方法对比:blog post link
标签: python scikit-learn visualization decision-tree