1

scikit-learn のアイリス データセットを使用して決定木をトレーニングしようとしています。次のコマンドを実行してみました。

from sklearn.datasets import load_iris
from sklearn import tree
clf = tree.DecisionTreeClassifier()
iris = load_iris()
clf = clf.fit(iris.data, iris.target)
tree.export_graphviz(clf,out_file='tree.dot')  

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()) 

次のエラーが発生しました。

TypeError: startswith first arg must be str or a tuple of str, not bytes

誰かがこの問題を整理するのを手伝ってくれませんか.ありがとう

エラーで取得したトレースバック

TypeError トレースバック (最新の呼び出しが最後) in () ----> 1 グラフ = pydot.graph_from_dot_data(dot_data.getvalue())

C:\Users\Priya\Anaconda3\Lib\site-packages\pydot.py in graph_from_dot_data(data)

218 """ 219

--> 220 リターン dot_parser.parse_dot_data(データ) 221 222

C:\Users\Priya\Anaconda3\Lib\site-packages\dot_parser.py in parse_dot_data(data)

508 top_graphs = list() 509

--> 510 data.startswith(codecs.BOM_UTF8) の場合: 511 data = data.decode( 'utf-8' ) 512

TypeError: startswith 最初の引数は、バイトではなく、str または str のタプルでなければなりません

4

1 に答える 1