我希望这段代码可以创建树的 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 来执行此步骤。

最佳答案

添加 PATH 变量后,您似乎正在导入 StringIO 然后调用 StringIO.StringIO()

尝试调用:

dot_data = StringIO()

使用 pydot and graphviz error: Couldn't import dot_parser, loading of dot files will not be possible 修复程序适用于我的 python 2.7.6 Win7 x64 环境。

关于python - 从sklearn Python中的决策树在pydot中制作图形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19613239/

10-12 19:57