Random Forest
Random Forest
Definition
Der Random Forest ist ein Ensemble-Lernverfahren des maschinellen Lernens, das aus einer Vielzahl von Entscheidungsbäumen besteht. Die einzelnen Bäume werden auf zufällig ausgewählten Teilmengen der Trainingsdaten und Merkmale trainiert, und ihre Ergebnisse werden kombiniert, um eine robuste und genaue Vorhersage zu erhalten.
---
Grundlagen
Ensemble Learning
Random Forest gehört zur Klasse der Ensemble-Methoden:
- Kombination mehrerer Modelle
- Ziel: bessere Generalisierung
- Reduktion von Overfitting
---
Entscheidungsbäume
Ein Entscheidungsbaum ist ein baumartiges Modell:
- Knoten: Entscheidungsregeln
- Blätter: Vorhersagen
- Pfade: Entscheidungswege
---
Bagging (Bootstrap Aggregating)
- Ziehen zufälliger Stichproben mit Zurücklegen
- Jeder Baum wird auf einer eigenen Stichprobe trainiert
- Reduziert Varianz
---
Zufällige Merkmalsauswahl
- Bei jedem Split wird nur eine Teilmenge der Features betrachtet
- Erhöht Diversität der Bäume
---
Funktionsweise
- Erzeuge mehrere Bootstrap-Stichproben aus dem Trainingsdatensatz
- Trainiere für jede Stichprobe einen Entscheidungsbaum
- Wähle bei jedem Split zufällig eine Teilmenge der Features
- Kombiniere die Ergebnisse aller Bäume
---
Vorhersage
Klassifikation
- Mehrheitsentscheidung (Voting)
Regression
- Mittelwert der Vorhersagen
---
Mathematische Intuition
Gegeben:
- Trainingsdaten D
- Anzahl Bäume: T
Für jeden Baum t:
- Ziehe Stichprobe Dₜ
- Trainiere Baum hₜ(x)
Gesamtmodell:
- h(x) = MajorityVote(h₁(x), ..., hₜ(x)) (Klassifikation)
oder
- h(x) = (1/T) Σ hₜ(x) (Regression)
---
Eigenschaften
- Nichtlinear
- Nicht-parametrisch
- Robust gegenüber Rauschen
- Geringe Overfitting-Gefahr
---
Wichtige Konzepte
Out-of-Bag (OOB) Fehler
- Daten, die nicht im Training eines Baums enthalten sind
- Werden zur Validierung genutzt
---
Feature Importance
Random Forest kann die Wichtigkeit von Merkmalen bestimmen:
- Gini Importance
- Permutation Importance
---
Hyperparameter
| Parameter | Bedeutung |
|---|---|
| n_estimators | Anzahl der Bäume |
| max_depth | Maximale Tiefe der Bäume |
| max_features | Anzahl betrachteter Features pro Split |
| min_samples_split | Minimale Anzahl an Samples pro Split |
---
Vorteile
- Hohe Genauigkeit
- Robust gegenüber Overfitting
- Funktioniert mit vielen Features
- Keine starke Parametrisierung notwendig
- Feature-Importance verfügbar
---
Nachteile
- Geringe Interpretierbarkeit
- Hoher Speicherbedarf
- Langsam bei sehr großen Datensätzen
---
Vergleich zu anderen Verfahren
| Verfahren | Eigenschaften |
|---|---|
| Entscheidungsbaum | Einfach, interpretierbar, anfällig für Overfitting |
| Random Forest | Robust, genau, weniger interpretierbar |
| Gradient Boosting | Sehr genau, aber anfälliger für Overfitting |
---
Anwendungen
- Klassifikation (z. B. Spam-Erkennung)
- Regression (z. B. Preisvorhersage)
- Medizinische Diagnosen
- Betrugserkennung
- Bildverarbeitung
---
Erweiterungen
- Extremely Randomized Trees (ExtraTrees)
- Random Survival Forests
- Online Random Forests
---
Beispiel (Pseudocode)
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
prediction = model.predict(X_test)
---
Herausforderungen
- Wahl geeigneter Hyperparameter
- Umgang mit großen Datenmengen
- Interpretierbarkeit
---
Literatur
- Breiman, L.: Random Forests (2001)
- Hastie, T.: The Elements of Statistical Learning
---