4

私は、このコードがツリーの 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 を使用することをお勧めします。

4

2 に答える 2

4

PATH 変数を追加した後、 StringIO をインポートしてから StringIO.StringIO() を呼び出しているように見えます

ただ電話してみてください:

dot_data = StringIO()

私のpython 2.7.6 Win7 x64環境でpydotとgraphvizエラーが発生しました:dot_parserをインポートできませんでした。ドットファイルの読み込みは修正できません。

于 2014-04-19T06:53:16.460 に答える
3

問題は、PATH ステートメントに GraphViz への参照が含まれていないため、pydot モジュールがそれを見つけられないことです。これが問題であることを確認するには、Windows コマンド ウィンドウから「PATH」と入力します。

C:\Users\Ron Fredericks>path PATH=C:\Program Files\CollabNet\Subversion Client;C:\Program Files (x86)\Graphviz2.34\bin

上記の簡略化されたパスの出力は、システムの PATH に Graphviz が含まれていることを示しています。PATH に Graphviz がない場合は、この文字列 "Graphviz executable not found" を検索する SO で、Graphviz をユーザー パスにインストールする方法についての回答を探してください。

于 2013-12-08T20:39:27.230 に答える