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 trainieren

Frage 2: Welche zwei Hauptkategorien von Ensemble Learning-Methoden gibt es?

a) Überwachtes und unüberwachtes Lernen
b) Bagging und Boosting
c) Klassifikation und Regression

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 an

Frage 4: Welches Ensemble Learning-Verfahren wird bei Random Forests verwendet?

a) Bagging
b) Boosting
c) Beides

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 Daten

Frage 6: Nennen Sie zwei gängige Boosting-Algorithmen.

a) k-Means und DBSCAN
b) AdaBoost und LogitBoost
c) SVM und Naive Bayes

Frage 7: Welcher Boosting-Algorithmus basiert auf der logistischen Regression?

a) AdaBoost
b) LogitBoost
c) Gradient Boosting

Zusatzfrage: Welches der folgenden Verfahren ist kein Ensemble Learning-Verfahren?

a) Gradient Boosting
b) k-Nearest Neighbors
c) XGBoost