Entscheidungsbäume modellieren die Beziehung zwischen Features und einer Zielvariable mithilfe der Struktur eines Baumes. Bei Klassifizierungsentscheidungsbäumen ist die Zielvariable eine kategoriale (meist binär) Variable. Ziel ist es, durch die Features die Zugehörigkeit zu einer Klasse vorherzusagen. Durch rekursives Partitionieren (teilen des Datensatzes) anhand der Features entstehen möglichst homogene Gruppen, welche wiederum in weitere möglichst homogene Gruppen unterteilt werden, bis ein Stoppkriterium einsetzt oder die festgelegte Homogenität erreicht ist. Die Unterteilung kann aufgrund verschiedener Maßzahlen erfolgen wie z.B. dem Information Gain oder dem Gini-Index.
Entscheidungsbäume starten mit einem Wurzelknoten, welcher alle Beobachtungen enthält (oberster Knoten in unten dargestelltem Baum). In weiteren Schritten werden die Beobachtungen in binären Splits weiter unterteilt, beispielsweise anhand des Gini-Index. Findet ein Split statt, werden alle verbleibenden Features betrachtet und dasjenige gewählt, das den Datensatz derart optimal teilt, dass möglichst homogene (eng. pure) Gruppen entstehen. Homogen heißt, dass die Gruppe maximal viele Beobachtungen einer Ausprägung der Zielvariable enthält (je mehr, sie enthält desto reiner, engl. pure, ist sie).
Der obige Entscheidungsbaum bildet keine kategoriale Zielvariable ab, sondern eine kontinuierliche. Dadurch können auch kontinuierliche Variablen, wie beispielsweise Umsatz geschätzt werden.
from sklearn.tree import DecisionTreeClassifier
from sklearn.externals.six import StringIO
from IPython.display import Image
from sklearn.tree import export_graphviz
import pydotplus
clf = DecisionTreeClassifier(max_depth=4, criterion = „gini“)
clf = clf.fit(X_train, y_train)
export_graphviz(clf, out_file=dot_data, filled=True, rounded=True, special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
Image(graph.create_png())
Weitere Infos zum Coden gibt’s für Python in der Dokumentation von sklearn.
Erläuterung des Entscheidungsbaums
Der visualisierte Entscheidungsbaum stellt einen Regressionsbaum dar, der eine kontinuierliche Zielvariable schätzt. Der erste Split erfolgt am Wurzelknoten. Wenn die „recency “ kleiner als 104.1 ist, wird der linke Zweig gewählt, ansonsten der rechte.
Die untersten Knoten stellen Endknoten dar. Die Größe des Entscheidungsbaums kann durch die Einstellung verschiedener Parameter gesteuert werden. In diesem Fall wurden die Parameter so eingestellt, dass kein großer Entscheidungsbaum wächst (Varianz-Bias-Trade-Off). Wenn eine neue Beobachtung (wie z.B. der orangen Pfad) geschätzt werden soll, wird der Entscheidungsbaum nur von oben nach unten durchlaufen. Dies zeigt eine Stärke von Entscheidungsbäumen: die einfache Interpretation. Außerdem kann auf die Variablenwichtigkeit geschlossen werden. Je weiter oben eine Variable steht, desto wichtiger ist sie für die Vorhersage.