Entscheidungsbäume sind ein beliebtes Verfahren für Klassifikationsaufgaben im maschinellen Lernen. Sie zeichnen sich durch ihre einfache Interpretierbarkeit und Visualisierung aus, wodurch sie auch für Nicht-Experten leicht verständlich sind

Funktionsweise von Entscheidungsbäumen

Ein Entscheidungsbaum wird in Form eines Baumdiagramms darstellt.

  1. An jedem Knoten wird eine Frage zu einem Merkaml des Datensatzes gestellt
  2. Je nach Antwort wird der Datensatz in Teilmenge aufgeteilt und zu den entsprechenden Folgeknoten weitergeleitet
  3. Wiederhole 1. und 2. solange, bis ein Blatt des Baumes erreicht ist
  4. Das Blatt enthält die finale Klassifizierung des Datensatzs

Bäume aus Trainingsdaten erstellen

  • Zur automatischen Erstellung von Bäumen braucht man ein Maß für die Homogenität einer Menge
  • Der ID3-Algorithmus ist ein bekanntes Verfahren, um Entscheidungsbäume automatisch aus Trainingsdaten zu erstellen.

Idee

Man wirft alle Datensätze in einen Los-Topf, zieht einen davon raus und schaut, zu welcher Klasse er gehöhrt.

  • Je sicherer das Ergebnis vorhergesagt werden kann, desto geringer ist die Verblüffung, wenn es tatsächlich eintritt.

Bäume aus Lerndaten erstellen

  • Shannon definiert den Informationsgehalt , für das die Wahrscheinlichkeit eines Ereignisses ist, gilt
  • ist größer, je weinger das Ereignis vorhersehbar ist.

Das sichere sowie unmögliche Ereignis haben daher jeweils keinen Informationsgehalt.

Entropie berechnen

Wird der Informationsgehalt für alle möglichen Ausgängen aufsummiert, erhält man die Entropie.

  • Die Entropie ist ein Maß für den mittleren Informationsgehalt eines Zufallsexpermients

Entropie Formel

  • Entropie
  • Zufallsexperments
  • Mögliche Ausgänge
  • Je größer die Entropie ist, desto größer ist die Gleichheit innerhalb der Wahrscheinlichkeit

Vor- und Nachteile von Entscheidungsbäume

Vorteile

  • Interpretierbarkeit (sehr gut nachvollziebar verfolgen, welcher Weg ein Datensatz durch den Baum gegangen ist)
  • Effizent (Die Berechnung sind schnell und einfach)
  • Graphische Visualisierung

Nachteile

  • Überanpassungen an die Datensätze
  • Mit Trennebenen sind Daten mit komplexen Entscheidungsgrenzen schlecht nachzubilden.

Entscheidungsbäume in Python

Klassifikator trainieren und bewerten

from sklearn.tree import DesisionTreeClassifier
model = DesisionTreeClassifier(criterion='entropy') # Entropie als Maß verwenden
model.fit(X_train, y_train)
print(model.score(X_test, y_test)) # Bei Klassifikatoren berechnet score die Trefferquote

Vorhersage machen

Mit dem traininerten Modell können jetzt Vorhersagen für bisher unbekannten Werte gemacht werden.

import numpy as np
# z.B. man möchte wissen, ob mit 830 bar Druck und 200 °C ein Gutteil produziert wurde.
X_wert = npp.array([[430, 240]]) # Eingabedaten in das richtige Format bringen 
ergebnis = model.predict(X_wert) # Vorhersage machen mit predict 
print(ergebnis[0])

Visualisierung

Mit der Funktion **plot_classifier können die Entscheidungsgrenzen visualisiert werden.

# Trainings-Daten plotten
plot_classifier(model, X_train, y_train, proba = False,
                xLabel = "Druck", ylabel = "Temperatur", cmapName = "bwr")

die Miniabschnitte, die sich nicht im Bereich ihrer Klasse befinden, werden in den Testdaten nicht wiedergefunden.

Es handelt sich um Ausreißer

Durch die Brücksichtigung dieser Ausreißer wurde das Modell unnötig komplex (“Überanpassung”)

Baum darstellen

import matplotlib.pyplot as plt
from sklearn.tree import plot_tree
 
plot_treee(model)
plot.show()

Für bessere Lesbarkeit

import matplotlib.pyplot as plt
from sklearn.tree import plot_tree
 
plot_treee(model, 
          feature_names = ["Druck", "Temperatur"],
          class_names = ["gut", "schlecht"],
          filled = True,
          rounded = True
          )
plot.show()

Entscheidungsbäume beschränken

Um Überanpassung zu reduzieren, können die Entscheidungsgrenzen durch die Reduktion der Tiefer beschräntk werden.

  • Man kann festlegen, wie viele Trainingsdaten in einnem Blattknoten landen soll. z.B.
from sklearn.tree import DesisionTreeClassifier
model = DesisionTreeClassifier(criterion='entropy', max_depth = 4,
                               min_samples_leaf = 3) # In jedem Blattknoten müssen mindestens drei Trainingsdaten landen
  • Damit kann vermieden werden, dass es zu Überanpassung kommt, da mindestens drei Trainingdsdaten in einem Blattknoten sein soll.

Quiz Entscheidungsbäume

Frage 1: Was ist die Grundidee hinter Entscheidungsbäumen?

a) Einen Datensatz anhand eines Entscheidungsfindungsprozesses in Teilmengen aufteilen
b) Einen Datensatz mithilfe statistischer Methoden in Gruppen einteilen
c) Die Wahrscheinlichkeit eines Ereignisses anhand von Trainingsdaten vorhersagen
d) Die Beziehung zwischen zwei Variablen grafisch darstellen

Frage 2: Welches Maß verwendet der ID3-Algorithmus, um die Homogenität der Teilmengen zu bewerten?

a) Varianz
b) Standardabweichung
c) Informationsentropie
d) Bestimmtheitsmaß

Frage 3: Was ist ein Vorteil von Entscheidungsbäumen im Vergleich zu anderen Klassifikationsverfahren?

a) Sie sind robuster gegenüber Ausreißern
b) Sie können komplexe nichtlineare Zusammenhänge modellieren
c) Die Entscheidungsfindung ist leicht nachvollziehbar und visualisierbar
d) Sie benötigen weniger Trainingsdaten

Frage 4: Was versteht man unter Überanpassung bei Entscheidungsbäumen?

a) Der Baum ist zu komplex und modelliert die Trainingsdaten zu genau, was zu schlechter Generalisierung auf neue Daten führt
b) Der Baum ist zu einfach und kann die Zusammenhänge in den Daten nicht ausreichend erfassen
c) Die Trainingsdaten sind nicht repräsentativ für die Grundgesamtheit
d) Der Baum verwendet zu viele Merkmale (Features) zur Klassifizierung

Frage 5: Welche Maßnahme kann ergriffen werden, um Überanpassung bei Entscheidungsbäumen zu vermeiden?

a) Erhöhung der Lernrate
b) Verwendung eines polynomialen Kernels
c) Begrenzung der maximalen Baumtiefe
d) Anwendung von One-Hot Encoding

Frage 6: Wofür steht die Abkürzung ID3 im Zusammenhang mit Entscheidungsbäumen?

a) Iterative Dichotomiser 3
b) Intelligent Decisioning 3
c) Integrated Data Divider 3
d) Inductive Decision Tree 3

Frage 7: Was ist KEIN typischer Anwendungsfall für Entscheidungsbäume?

a) Spam-Filterung
b) Bildverarbeitung
c) Medizinische Diagnose
d) Kreditrisikobewertung