2016-07-08 17 views
1

Ich verwende IPython unter Windows10, um einen Entscheidungsbaum zu trainieren und zu zeichnen. Ich weiß, dass der folgende Code einige Zeit auf Linux gearbeitet hat. Ich installierte pydot und habe auch graphviz (mit dem Pfad korrekt angegeben).Attribut Fehler mit Pydot, um ein Diagramm zu erstellen

# Train and draw out a decision tree 

from IPython import display 
from sklearn import datasets, tree, utils 
from sklearn.externals.six import StringIO 
import pydot 

# Train a small decision tree on the iris dataset 
dataset = datasets.load_iris() 
X_iris, y_iris = utils.shuffle(dataset.data, dataset.target,random_state=42) 
tree_clf = tree.DecisionTreeClassifier(max_depth=3).fit(X_iris, y_iris) 

# Generate a plot of the decision tree 
dot_data = StringIO() 
tree.export_graphviz(tree_clf, out_file=dot_data) 
graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
display.Image(graph.create_png()) 

bekomme ich folgende Fehlermeldung:

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-5-3452aa5e9794> in <module>() 
    15 tree.export_graphviz(tree_clf, out_file=dot_data) 
    16 graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
---> 17 display.Image(graph.create_png()) 

AttributeError: 'list' object has no attribute 'create_png' 
+0

Bitte formatieren Sie Ihre Ausgabe so, dass es lesbar ist – Dbz

+0

ich die unformatierte Text entfernt haben - es war nur der in dot_data.getvalue enthaltenen Wert() und kann an dieser Stelle nicht – rahul

Antwort

1

ich dieses Problem gelöst, indem alle pydot Befehl in pydotplus Wechsel (einschließlich import pydotplus) kann es sein, mögliche Verwendung !pip install pydotplus pydotplus Paket zu installieren..

Referenz https://github.com/scikit-learn/scikit-learn/pull/7342/files

+0

Ja relevant sein, In Python 3.5 war dies der einzige Weg, um das Problem zu beheben. Vielen Dank! –