Ensemble Learning ist eine Technik im maschinellen Lernen, bei der mehrere Lernmodelle (sogenannte Basislerner) kombiniert werden, um eine bessere Vorhersagegenauigkeit zu erzielen als mit einem einzelnen Modell. Die Grundidee ist, dass die Schwächen eines Modells durch die Stärken anderer Modelle ausgeglichen werden können.
Mehrere Modelle werden kombiniert, um ein stkärkeres, genaueres Modell zu erstellen.
- Ansäzte, die mehrere Lerner kombinieren, nennt man Ensemble Learning
- Ergebnis des Gesamtklassifikators ist die (gewichtetet) Mehrheitsentscheidung seiner Basisklassifikatioren.
Varianten beim Ensemble Learning
1. Bagging
- Erstellung mehrerer Basislerner, die auf zufälligen Teilmengen der Trainingsdaten trainiert werden.
- Jeder Basislerner wird unabhängig traininert.
- Die endgültige Vorhersage wird durch Mehrhreitsentscheidung (Klassifikation) oder Mittelwertbildung (Regression) der einzelnen Baisislerner getroffen.
- Beispiel: Random Forests
2. Boosting
- Sukzessive Erstellung von Basislernern, wobei jeder neue Lerner versucht, die Fehler der vorherigen Lerner zu korrigieren.
- Die Trainingsdaten werden für jeden neuen Lerner so angepasst, dass die falsch klassifizierten Datenpunkte stärker gewichtet werden. (Resampling/Reweighting)
- Die endgültige Vorhersage wird durch eine gewichtete Kombination der einzelnen Basislerner getroffen.
- Beispiele: AdaBoost, LogitBoost
Random Forests
- Random Forests verwenden den Bagging-Ansatz mit Entscheidungsbäumen als Basislernern
- Für jeden Baum wird eine zufällige Teilmenge der Trainingsdaten und eine zufällige Teilmenge der Features verwendet.
- Dies führt zu einer größeren Vielfalt der Bäume und reduziert die Überanpassung.
- Die endgültige Vorhersage wird durch Mehrheitsentscheidung der einzelnen Bäume getroffen.
Vorteile
- Sehr gute Leistung ohne aufwändige Datenvorverarbeitung
- Geeignet für hochdimensionale Datensätze
- Man kann die Belastbarkeit einer Vorhersage als Prozentwert angeben
Nachteile
- Nicht so gut nachvollziehbar wie Entscheidungsbäume
- Höherer Rechenaufwand
Random Forests in Python
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(criterion = "entropy", n_estimators = 1000) # n_estimators -> Anzahl der Bäume
model.fit(X_train, y_train)
print(model.score(X_test, y_test))
2. Boosting
Es gibt verschiedene Boosting-Verfahren, die sich dadurch unterscheiden:
- wie die Datenemnge für die schwachen Lerner gebildet werden
- wie das Gesamtergebnis aus den Ergebnissen der einzelnen Lerner gebildet werden.
Die gängigste Boosting-Verfahren sind AdaBoost und LogitBoost
Wichtig
Boosting mit flachen Entcheidungsbäumen als Baisslerner gilt als
eines der leistungsfähigsten Klassifikationsmodelle
Anwendung sehr oft bei der automatiiserten Bildanalyse
AdaBoost in Python
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
# DesisionTreeClassifier ist ein Entscheidungsbaum, der
# hier als Basis-Modell (estimator) für AdaBoost verwendet wird.
# Ohne estimator würde es auch funktionieren
model = AdaBoostClassifier(estimator = DecisionTreeClassifier(max_depth=3)) # mit einer maximalen Tiefe von 3 als schacher Lerner
model.fit(X_train, y_train)
print(model.score(X_test, y_test))
Quiz Enemble Learning
Frage 1: Was ist die Grundidee von Ensemble Learning?
a) Ein einzelnes, komplexes Lernmodell zu erstellen, das alle Daten perfekt abbildet
b) Mehrere Lernmodelle zu kombinieren, um die Vorhersagegenauigkeit zu verbessern
c) Die Trainingsdaten in mehrere Teilmengen aufzuteilen und jedes Modell auf einer Teilmenge zu trainierenLösung
b)
Mehrere Lernmodelle zu kombinieren, um die Vorhersagegenauigkeit zu verbessern
Erläuterung: Ensemble Learning basiert auf dem Prinzip, dass die Kombination mehrerer Modelle zu robusteren und genaueren Vorhersagen führt.
Frage 2: Welche zwei Hauptkategorien von Ensemble Learning-Methoden gibt es?
a) Überwachtes und unüberwachtes Lernen
b) Bagging und Boosting
c) Klassifikation und RegressionLösung
b)
Bagging und Boosting
Erläuterung: Bagging und Boosting sind die zwei grundlegenden Ansätze im Ensemble Learning, um die Trainingsdaten und Modelle zu variieren.
Frage 3: Was ist der Hauptunterschied zwischen Bagging und Boosting?
a) Bagging verwendet Entscheidungsbäume, Boosting verwendet andere Modelle
b) Bagging trainiert die Modelle parallel, Boosting trainiert sie sequentiell
c) Bagging gewichtet alle Datenpunkte gleich, Boosting passt die Gewichte der Datenpunkte anLösung
c)
Bagging gewichtet alle Datenpunkte gleich, Boosting passt die Gewichte der Datenpunkte an
Erläuterung: Boosting-Algorithmen passen die Gewichte der Datenpunkte in jeder Iteration an, um die falsch klassifizierten Punkte stärker zu berücksichtigen.
Frage 4: Welches Ensemble Learning-Verfahren wird bei Random Forests verwendet?
a) Bagging
b) Boosting
c) BeidesLösung
a)
Bagging
Erläuterung: Random Forests sind ein bekanntes Beispiel für Bagging-Verfahren, die Entscheidungsbäume als Basislerner verwenden.
Frage 5: Nennen Sie zwei Vorteile von Random Forests.
a) Sie sind einfach zu implementieren und benötigen keine Hyperparameter-Optimierung
b) Sie liefern Einblicke in die Bedeutung der einzelnen Features
c) Sie sind robust gegenüber Ausreißern und hochdimensionalen DatenLösung
b)
undc)
Erläuterung: Random Forests können die Wichtigkeit einzelner Features quantifizieren und sind robust gegenüber Ausreißern sowie hochdimensionalen Daten.
Frage 6: Nennen Sie zwei gängige Boosting-Algorithmen.
a) k-Means und DBSCAN
b) AdaBoost und LogitBoost
c) SVM und Naive BayesLösung
b)
AdaBoost und LogitBoost
Erläuterung: AdaBoost und LogitBoost sind zwei weit verbreitete Boosting-Algorithmen.
Frage 7: Welcher Boosting-Algorithmus basiert auf der logistischen Regression?
a) AdaBoost
b) LogitBoost
c) Gradient BoostingLösung
b)
LogitBoost
Erläuterung: LogitBoost nutzt statistische Methoden der logistischen Regression, um die Gewichte der Datenpunkte anzupassen.
Zusatzfrage: Welches der folgenden Verfahren ist kein Ensemble Learning-Verfahren?
a) Gradient Boosting
b) k-Nearest Neighbors
c) XGBoostLösung
b)
k-Nearest Neighbors
Erläuterung: k-Nearest Neighbors ist ein sogenannter “lazy learner”, der keine explizite Modellbildung durchführt, sondern die Vorhersagen direkt aus den Trainingsdaten ableitet. Es handelt sich daher nicht um ein Ensemble-Verfahren.