【问题标题】:Make a graph in pydot from decision tree in sklearn Python从 sklearn Python 中的决策树在 pydot 中制作图表
【发布时间】:2013-11-05 22:52:07
【问题描述】:

我希望这段代码能够创建树的 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 回溯?

标签: python decision-tree pydot


【解决方案1】:

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

C:\Users\Ron Fredericks>路径 PATH=C:\Program 文件\CollabNet\Subversion 客户端;C:\Program 文件 (x86)\Graphviz2.34\bin

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

【讨论】:

    【解决方案2】:

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

    试着打电话:

    dot_data = StringIO()
    

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

    【讨论】:

      猜你喜欢
      • 2015-04-07
      • 2015-09-21
      • 2014-08-30
      • 2018-09-06
      • 2012-11-21
      • 2020-01-09
      • 2019-03-04
      • 2014-12-23
      • 2015-05-24
      相关资源
      最近更新 更多