2017-08-31 6 views
1

ich die Antwort auf einen früheren Post präsentierte am folgenden: Is it possible to print the decision tree in scikit-learn?graphviz Mit Entscheidungsbaum zeichnen in Python

from sklearn.datasets import load_iris 
from sklearn import tree 
from sklearn.externals.six import StringIO 
import pydot 

clf = tree.DecisionTreeClassifier() 
iris = load_iris() 

clf = clf.fit(iris.data, iris.target) 
tree.export_graphviz(clf, out_file='tree.dot') 
dot_data = StringIO() 
tree.export_graphviz(clf, out_file=dot_data) 
graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
graph.write_pdf("iris.pdf") 

Leider kann ich herausfinden, nicht die folgenden Fehler:

'list' object has no attribute 'write_pdf' 

Weiß jemand, ein Weg um dies als die Struktur der generierten tree.dot Datei ist eine Liste?

aktualisieren

Ich habe mit der Web-Anwendung versucht http://webgraphviz.com/. Dies funktioniert jedoch, die Entscheidungsbaumbedingungen zusammen mit den Klassen werden nicht angezeigt. Gibt es eine Möglichkeit, diese in die Datei tree.dot aufzunehmen?

Antwort

1

Sieht aus, als ob Daten, die Sie in sammeln, vom Typ list sind.

graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
type(graph) 
<type 'list'> 

Wir sind nur daran interessiert, erste Element der Liste. So können Sie diese auf einen der folgenden zwei Arten tun,

1) Ändern Sie Zeile, wo Sie dot_data Wert in zu

(graph,) = pydot.graph_from_dot_data(dot_data.getvalue()) 

2) Oder sammeln gesamte Liste in sammeln, sondern nur das erste Element verwenden, um zu pdf gesendet werden soll

graph[0].write_pdf("iris.pdf") 

Hier ist, was ich als Ausgabe von iris.pdf

01 erhalten

enter image description here aktualisieren

um Wegfehlers zu erhalten,

Exception: "dot.exe" not found in path.

graphviz Installieren von here

dann entweder in Ihrem Code folgenden verwenden.

import os 
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/' 

Oder fügen Sie einfach folgenden zu Ihrem Windows-Pfad in der Systemsteuerung.

C:\Program Files (x86)\Graphviz2.38\bin

Per graphviz Dokumentation, es nicht zu Windows-Pfad bei der Installation hinzugefügt bekommen.

+0

Danke für Ihre Antwort. Ich habe mit ähnlichen Lösungen herumgespielt, habe aber den Fehler "dot.exe" im Pfad nicht gefunden. " Ich denke, dass dieser Fehler auf meine Installation von Graphiz zurückzuführen ist. – Sjoseph

+1

Bitte beachten Sie meine Änderungen für Pfadfehler. Wenn dies Ihr Problem löst, betrachten Sie es als Antwort, die Schleife zu schließen. –

Verwandte Themen