sklearn决策树图的Pydot错误
Pydot error with sklearn decision tree graph
我正在尝试使用 sklearn (http://scikit-learn.org/stable/modules/tree.html) 中的以下代码:
from sklearn.externals.six import StringIO
import pydot
dot_data = StringIO()
tree.export_graphviz(clf, out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("iris.pdf")
我已经安装了 pydot==1.0.2
,当我使用 Ipython notebook 运行 这段代码时,出现以下错误。
InvocationException Traceback (most recent call last)
<ipython-input-22-18c25f6a061c> in <module>()
4 tree.export_graphviz(clf, out_file=dot_data)
5 graph = pydot.graph_from_dot_data(dot_data.getvalue())
----> 6 graph.write_pdf("iris.pdf")
/Users/aj/anaconda/lib/python2.7/site-packages/pydot.pyc in <lambda>(path, f, prog)
1600 self.__setattr__(
1601 'write_'+frmt,
-> 1602 lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog))
1603
1604 f = self.__dict__['write_'+frmt]
/Users/aj/anaconda/lib/python2.7/site-packages/pydot.pyc in write(self, path, prog, format)
1694 dot_fd.write(self.to_string())
1695 else:
-> 1696 dot_fd.write(self.create(prog, format))
1697 dot_fd.close()
1698
/Users/aj/anaconda/lib/python2.7/site-packages/pydot.pyc in create(self, prog, format)
1794 raise InvocationException(
1795 'Program terminated with status: %d. stderr follows: %s' % (
-> 1796 status, stderr_output) )
1797 elif stderr_output:
1798 print stderr_output
InvocationException: Program terminated with status: 1. stderr follows: Format: "pdf" not recognized. Use one of
不管我把它改成什么格式,它都给出了同样的错误。我 运行 在 Mac OS X Yosemite 上发布这个。
如有任何建议,我们将不胜感激。
其实这是graphviz的问题。显然,它需要 XQuartz 包(http://xquartz.macosforge.org/landing/),安装后一切正常。
我正在尝试使用 sklearn (http://scikit-learn.org/stable/modules/tree.html) 中的以下代码:
from sklearn.externals.six import StringIO
import pydot
dot_data = StringIO()
tree.export_graphviz(clf, out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("iris.pdf")
我已经安装了 pydot==1.0.2
,当我使用 Ipython notebook 运行 这段代码时,出现以下错误。
InvocationException Traceback (most recent call last)
<ipython-input-22-18c25f6a061c> in <module>()
4 tree.export_graphviz(clf, out_file=dot_data)
5 graph = pydot.graph_from_dot_data(dot_data.getvalue())
----> 6 graph.write_pdf("iris.pdf")
/Users/aj/anaconda/lib/python2.7/site-packages/pydot.pyc in <lambda>(path, f, prog)
1600 self.__setattr__(
1601 'write_'+frmt,
-> 1602 lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog))
1603
1604 f = self.__dict__['write_'+frmt]
/Users/aj/anaconda/lib/python2.7/site-packages/pydot.pyc in write(self, path, prog, format)
1694 dot_fd.write(self.to_string())
1695 else:
-> 1696 dot_fd.write(self.create(prog, format))
1697 dot_fd.close()
1698
/Users/aj/anaconda/lib/python2.7/site-packages/pydot.pyc in create(self, prog, format)
1794 raise InvocationException(
1795 'Program terminated with status: %d. stderr follows: %s' % (
-> 1796 status, stderr_output) )
1797 elif stderr_output:
1798 print stderr_output
InvocationException: Program terminated with status: 1. stderr follows: Format: "pdf" not recognized. Use one of
不管我把它改成什么格式,它都给出了同样的错误。我 运行 在 Mac OS X Yosemite 上发布这个。
如有任何建议,我们将不胜感激。
其实这是graphviz的问题。显然,它需要 XQuartz 包(http://xquartz.macosforge.org/landing/),安装后一切正常。