0

Visualizing a Decision Tree - Machine Learning import numpy as np from sklearn.datasets import load_iris from sklearn import tree から以下のコードを取得しました

iris = load_iris()
test_idx = [0, 50 , 100]

train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx , axis=0)

test_target = iris.target[test_idx]
test_data = iris.data[test_idx] 

clf = tree.DecisionTreeClassifier()
clf.fit(train_data, train_target)

print(test_target)
print(clf.predict(test_data))

#viz_code
from sklearn.externals.six import StringIO
import pydot
dot_data = StringIO()
tree.export_graphviz(clf,
      out_file=dot_data,
      feature_names = iris.feature_names,
      class_names = iris.target_names,
      filled = True, rounded = True,
      impurity = False)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("iris.pdf")

Python 3.5 で実行しようとしましたが、グラフがリストであるというエラーが表示されます。

Traceback (most recent call last):
  File "Iris.py", line 31, in <module>
    graph.write_pdf("iris.pdf")
AttributeError: 'list' object has no attribute 'write_pdf'
Press any key to continue . . .

graphなぜここにリストがあるのですか?

4

2 に答える 2

0

Pydot は Python3 では動作しません。pydot の代わりに python3 にPydotplus ( graph.write_pdf("iris.pdf") AttributeError: 'list' object has no attribute 'write_pdf' ") を使用できます。

ただし、YouTube に表示されているコードは Python2 用です。したがって、Python2 を使用した方がよいでしょう。

于 2016-11-17T12:10:29.493 に答える