Mój kod jest zgodny z klasą uczenia maszynowego google. Oba kody są takie same.Nie wiem dlaczego to pokaż error.May być typem zmiennej jest błąd. Ale kod google jest dla mnie taki sam. Kto kiedykolwiek miał ten problem?graph.write_pdf ("iris.pdf") AttributeError: 'list' obiekt nie ma atrybutu "write_pdf"
Jest to błąd
[0 1 2]
[0 1 2]
Traceback (most recent call last):
File "/media/joyce/oreo/python/machine_learn/VisualizingADecisionTree.py", line 34, in <module>
graph.write_pdf("iris.pdf")
AttributeError: 'list' object has no attribute 'write_pdf'
[Finished in 0.4s with exit code 1]
[shell_cmd: python -u "/media/joyce/oreo/python/machine_learn/VisualizingADecisionTree.py"]
[dir: /media/joyce/oreo/python/machine_learn]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
Jest to kod
import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
test_idx = [0, 50, 100]
# training data
train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)
# testing data
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")
Dziękuję bardzo bardzo! Ta metoda rozwiązała mój problem. –
Właśnie się obejrzałem. Wykres jest listą i zawiera obiekt pydot.Dot. Używam obiektu pydot.Dot wywołującego funkcję write_pdf ("iris.pdf"), ale także rozwiązuje to pytanie. –
@ 乔守卿 Jakiej składni używałeś/jak używałeś pydot.Dot? – programmer