我正在使用决策树算法并尝试绘制树。但是,IDE报告了以下错误:
Couldn't import dot_parser, loading of dot files will not be possible.
<class 'pandas.core.frame.DataFrame'>
Traceback (most recent call last):
File "C:/Users/s152730/Desktop/exe1.py", line 70, in <module>
graph = pydot.graph_from_dot_data(test.getvalue())
File "C:\Python27\lib\site-packages\pydot.py", line 220, in graph_from_dot_data
return dot_parser.parse_dot_data(data)
NameError: global name 'dot_parser' is not defined
我不知道如何处理这个问题,因为我试图卸载并重新安装pydot dan pyparsing,这是在其他答案中提出的,但它没有帮助。
这是我的代码:
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import ExtraTreeClassifier
from sklearn import tree
from sklearn.externals.six import StringIO
import pydot
from IPython.display import Image
test = StringIO()
tree.export_graphviz(clf, out_file=test, feature_names = attribute_names)
graph = pydot.graph_from_dot_data(test.getvalue())
graph.writepng('test.png')
image(filename = 'test.png')
我正在使用python2.7并在PyCharm上运行,操作系统是win8.1。 谢谢你的帮助。
答案 0 :(得分:2)
由于安装顺序不正确,您的错误似乎是遗漏了部分库(pyparsing
)。
明确了发起但不是新手:解决方法是 安装pyparsing&lt;在安装pydot(或包)之前的2.0.0 这取决于pydot。)
$ pip install pyparsing == 1.5.7
解决方案似乎是首先删除pydot
和pyparsing
,然后先安装pyparsing
,然后安装pydot
。
将要安装的版本很可能在将来发生变化,所以目前您似乎需要运行以下内容:(取自this可爱答案)
pip uninstall pyparsing
pip install -Iv https://pypi.python.org/packages/source/p/pyparsing/pyparsing-1.5.7.tar.gz#md5=9be0fcdcc595199c646ab317c1d9a709
pip install pydot
答案 1 :(得分:2)
对我来说,我发现一个很好的建议是安装pydotplus,因为它与pyparsing v2.0及更高版本兼容。它还具有可以与Anaconda的graphviz安装一起使用的优点。我使用Anaconda v2.4.1和Windows 7 x64以及使用condas安装的Graphviz 2.38。
答案 2 :(得分:2)
我刚刚将pydot
更新为1.2.3
,错误消失了。
sudo pip install -U pydot