从sklearn Python的决策树中使用pydot绘制图表

4

我希望这段代码能够创建一张树形结构的PDF图表。

from sklearn import datasets,tree
import StringIO
import pydot
from sklearn.externals.six import StringIO  

iris = datasets.load_iris()

clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris['data'],iris['target'])

dot_data = StringIO.StringIO()
tree.export_graphviz(clf, out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("iris.pdf")

是否有通过pydot实现我想要的方法?这种方法是死路一条。

进一步解释问题,代码在最后一条语句中失败。graph.write_pdf()正在查找graph.progs()中的Graphviz,但其中没有任何条目。错误消息显示找不到Graphviz可执行文件。

无论如何,我能够通过在DOS终端中调用dot.exe命令来生成pdf文件,但最好使用pydot来完成此步骤。


“这条路走不通”是什么意思?当运行此代码时,你会收到哪些错误信息和Python回溯? - ogrisel
2个回答

4

3
问题似乎在于您的PATH语句中没有包含对GraphViz的引用,因此您的pydot模块找不到它。要验证这是问题,请从Windows cmd窗口中键入“PATH”。 简化的路径输出如上所示,表明我的系统在PATH中包括Graphviz。如果您的PATH中没有Graphviz,请搜索此字符串“Graphviz executable not found”,查找有关如何将Graphviz安装到用户路径中的答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接