Mein Code folgt der Klasse des maschinellen Lernens von Google. Die zwei Codes sind gleich. Ich weiß nicht warum show error.May der Typ der Variablen ist der Fehler. Aber Googles Code ist für mich gleich. Wer hatte dieses Problem jemals?graph.write_pdf ("iris.pdf") AttributeError: 'list' Objekt hat kein Attribut 'write_pdf'
Dies ist Fehler
[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]
Dieser Code
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")
Vielen Dank sehr sehr !!!! Diese Methode löste mein Problem. –
Ich hatte gerade einen Blick. Das Diagramm ist eine Liste und es enthält ein pydot.Dot-Objekt. Ich benutze das Pydot.Dot-Objekt Aufruf der Funktion write_pdf ("iris.pdf"), es löst auch die Frage. –
@ 乔守卿 Welche Syntax haben Sie verwendet/wie haben Sie pydot.Dot verwendet? – programmer