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 来执行此步骤。

4

2 回答 2

4

添加 PATH 变量后,看起来您正在导入 StringIO 然后调用 StringIO.StringIO()

试着打电话:

dot_data = StringIO()

适用于我的 python 2.7.6 Win7 x64 环境,带有pydot 和 graphviz 错误:无法导入 dot_parser,无法修复加载点文件。

于 2014-04-19T06:53:16.460 回答
3

问题似乎是您的 PATH 语句不包含对 GraphViz 的引用-因此您的 pydot 模块找不到它。要验证这是否是问题所在,请在 Windows cmd 窗口中键入“PATH”。

C:\Users\Ron Fredericks>路径 PATH=C:\Program Files\CollabNet\Subversion Client;C:\Program Files (x86)\Graphviz2.34\bin

上面的简化路径输出显示我的系统在我的 PATH 中包含 Graphviz。如果您的 PATH 中没有 Graphviz,请在此处查找有关如何将 Graphviz 安装到您的用户路径中的答案,搜索此字符串“未找到 Graphviz 可执行文件”

于 2013-12-08T20:39:27.230 回答