Ich habe mit Weka einen Entscheidungsbaum erstellt, aber es war mühsam, die Daten arff zu machen. Ich habe einen Entscheidungsbaum mit der Python-Bibliothek für maschinelles Lernen scikit-learn erstellt. Ich wollte es benutzen Die Installation von Scikit-Learn wird auf anderen Websites höflich gelehrt
Das Entscheidungsbaumobjekt selbst ist ziemlich einfach zu erstellen. Installieren Sie Graphviz mit Brew (Mac) Weil die Bibliothek namens Pyparsing aktualisiert wurde Wenn du zeichnen willst
sudo pip install -U pydot pyparsing==1.5.7
Bitte downgraden Ich verstehe Windows nicht (leise Stimme)
tree_ex.py
#-*-coding:utf-8 -*-
#Nullwert kann nicht verwendet werden → Was soll ich tun?
# yes,nein ist 1,-1
#Zeichen können nicht verwendet werden
from sklearn import tree
from sklearn.externals.six import StringIO
import pydot
if __name__ == '__main__':
X = [
[0,1],
[0,-1],
[1,1]
]
Y = [1,2,3] #Entspricht in der Reihenfolge von oben
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X,Y) #Dies vervollständigt das Entscheidungsbaumobjekt
#Magie zum Zeichnen
dot_data = StringIO()
tree.export_graphviz(clf,out_file = dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("tree_ex.pdf")
#pre = clf.predict([0,1])
#print pre #Das Ergebnis ist 1
X sind die Daten und Y ist die Bezeichnung für jede Daten. Massendocking von X und Y mit der Anpassungsfunktion (möglicherweise)
Wenn die Anpassungsfunktion angewendet wird, ist clf ein Entscheidungsbaumobjekt und ein Klassifizierer. Mit der auskommentierten Vorhersagefunktion können Sie klassifizieren, zu welcher Klasse die neuen Daten gehören.
Danach sollte es eine Magie sein, Pydot aufzurufen und zu zeichnen.
Das obige Zeichnungsergebnis sieht folgendermaßen aus
Wekas Entscheidungsbaum ist schwer zu sehen. Als ich versuchte, mit Python einen Entscheidungsbaum zu erstellen, wurde es so. Das Erstellen eines Entscheidungsbaums selbst ist sehr einfach. Es ist leicht zu sehen
・ Keine Verzweigungsbedingungen (können aufgrund mangelnder Fähigkeiten nicht ausgestellt werden)
・ Fragebögen mit 1, 2 oder 3 Arten von Antworten in einem Punkt können nicht sortiert werden (Ja und Nein können mit [1, -1] realisiert werden)
・ Nullwert ・ Akzeptieren Sie keine Zeichenfolgen
Im Moment habe ich das Gefühl, dass Weka einfacher zu bedienen ist. Soll ich eine Argumentoption hinzufügen? .. ..
Recommended Posts