Entscheidungsbäume und Random Forest: Regeln aus Daten lernen
Kurz: Ein Entscheidungsbaum teilt Daten durch Ja/Nein-Fragen in Gruppen; ein Random Forest mittelt viele zufällige Bäume und ist robuster und genauer als ein einzelner.
Genauer: Ein Entscheidungsbaum lernt aus Beispielen eine Folge von Fragen („Ist Alter > 30?“), an deren Ende eine Klasse (Klassifikation) oder ein Wert (Regression) steht. Er ist leicht lesbar und wird oft als erstes Modell für tabellarische Daten ausprobiert.
Im Detail
Wie ein Baum lernt
Bei jedem Knoten wird das Merkmal und der Schwellwert gewählt, die die Daten am besten trennen. Maß: Gini-Unreinheit 1 − Σ pᵢ² oder Entropie −Σ pᵢ log₂ pᵢ; der Informationsgewinn ist die Verringerung der Unreinheit.
Beispiel: 10 Mails, 5 Spam/5 Ham. Ein Split „enthält ‚Gewinn‘“ ergibt links 4 Spam/0 Ham (rein), rechts 1 Spam/5 Ham: deutlich reiner → guter Split. Der Baum wächst rekursiv, bis die Blätter rein sind oder eine Tiefe/Mindestgröße erreicht ist.
Stärken und Schwächen
- + Nachvollziehbar, wenig Vorverarbeitung (keine Normalisierung), mischt Zahlen und Kategorien, erfasst nichtlineare Zusammenhänge und Wechselwirkungen.
- − Ein tiefer Baum überanpasst (lernt Rauschen auswendig, Overfitting), schon kleine Datenänderungen ändern den Baum (hohe Varianz), Diagonale Grenzen schwer, Extrapolation nicht möglich.
- Gegenmittel: Pruning (Beschneiden),
max_depth,min_samples_leaf, Kreuzvalidierung.
Random Forest
Idee Bagging: Viele Bäume, jeder auf einer Zufallsstichprobe mit Zurücklegen (Bootstrap) der Daten und mit zufälliger Teilmenge der Merkmale an jedem Split. Klassifikation: Mehrheitsentscheid; Regression: Mittelwert. Das senkt die Varianz, hält die Verzerrung klein. Out-of-Bag-Fehler liefert eine Fehlerschätzung ohne extra Testdaten. Merkmalswichtigkeit zeigt, welche Variablen zählen (Vorsicht bei korrelierten Merkmalen).
from sklearn.ensemble import RandomForestClassifier
modell = RandomForestClassifier(n_estimators=300, max_depth=None, random_state=42)
modell.fit(X_train, y_train)
print(modell.score(X_test, y_test))Weiterführend und Praxis
- Gradient Boosting (XGBoost, LightGBM, CatBoost): Bäume nacheinander, jeder korrigiert Fehler des vorigen; auf Tabellendaten oft Spitzenreiter (Kaggle).
- Extra Trees, Isolation Forest (Anomalien).
- Wann? Tabellarische Daten (Kunden, Preise, Sensoren), Baselines; nicht für Bilder/Text/Audio roh (dort neuronale Netze).
- Erklärbarkeit: Baum visualisieren (
plot_tree), SHAP. - Praxis: Klassen-Ungleichgewicht (
class_weight), Hyperparameter-Suche, Daten-Leck vermeiden, Train/Test-Trennung. - Prüfung: Gini/Entropie für ein einfaches Beispiel berechnen, einen Baum von Hand zeichnen.
Siehe auch: Ensemble-Methoden, Overfitting und Underfitting, Klassifikation und Regression, Erklärbare KI