2

私は決定木アルゴリズムで遊んでいて、木をプロットしようとしていました。ただし、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と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で実行しています。OSはwin8.1です。ご協力いただきありがとうございます。

4

3 に答える 3

2

私にとって、pydotplus は pyparsing v2.0 以降と互換性があるため、代わりにpydotplusをインストールすることをお勧めします。また、Anaconda からの Graphviz インストールで動作するという利点もあります。私はAnaconda v2.4.1を使用しており、Windows 7 x64およびcondasを使用してインストールされたGraphviz 2.38で使用しています。

于 2016-03-25T00:04:44.193 に答える