AI-United » Allgemein » Bagging und Boosting im maschinellen Lernen: Konzepte, Funktionsweisen, Unterschiede

Bagging und Boosting im maschinellen Lernen: Konzepte, Funktionsweisen, Unterschiede

Erläuterung, wie Bagging und Boosting funktionieren und Modelle des maschinellen Lernens helfen 

Das Ziel dieses Artikels ist es, einen kurzen Überblick über die Konzepte von Bagging und Boosting im maschinellen Lernen als die zwei bekanntesten Ensemble-Methoden zu geben.

Zuerst wird Bagging behandelt, dann wird dokumentiert, was Boosting ist, und schließlich werden die Unterschiede zwischen diesen beiden Ensemble-Methoden erklärt.

Diese Methoden werden in Python dargestellt.

Konzept des Baggings

  • Bagging, kurze Form von Bootstrap-Aggregation, befindet sich über dem Mehrheitsentscheidungprinzip.
  • Der ursprünglichen Trainingsdatenmenge werden wiederholt Bootstrap-Stichproben entnommen. Nachdem die Stichproben ausgewählt worden sind, werden sie zum Trainieren und Validieren von Vorhersagen verwendet. Die Stichproben werden dann in den Trainingssatz zurückgelegt. Die Auswahl der Stichproben erfolgt nach dem Zufallsprinzip. Diese Methode wird also Bagging genannt.
  • Zusammenfassend lässt sich sagen, dass jedem grundlegenden Klassifizierer, bei dem es sich typischerweise um Entscheidungsbäume handelt, eine zufällige Teilmenge der ursprünglichen Trainingsdatenmenge zugewiesen wird. Die einzelnen Vorhersagen werden dann durch Auswahl oder Mittelwertbildung aggregiert. Die Endergebnisse werden als Vorhersagen verwendet. Dies führt zur Reduzierung der Varianz eines Black-Box-Estimators. 

Die nachfolgende Abbildung fasst das Konzept von Bagging zusammen:

Dank der rekursiven Art der zufälligen Auswahl der Stichproben mit Ersetzung kann die Korrektklassifizierungsrate instabiler Modelle des maschinellen Lernens verbessert, das Ausmaß der Überanpassung gesenkt sowie die Verallgemeinerung der Modelle auf unsichtbare Daten verbessert werden.

Konzept des Boostings

  • Im Grunde genommen geht es beim Konzept des Adaptiven Boostings um die Korrektur früherer Fehler des Klassifizierers. Jeder Klassifizierer wird am Stichprobensatz trainiert und lernt, Vorhersagen zu treffen. Bei jedem Trainingsdurchlauf werden die Fehlklassifizierungsfehler dem nächsten Klassifizierer in der Kette zugewiesen und zur Korrektur der Fehler verwendet. Das Endergebnis ist ein Klassifizierer, der eine möglichst höhere Genauigkeit hat.
  • Der kleine Unterschied zwischen AdaBoost und Boosting besteht darin, dass beim Boosting die Stichproben von einem Klassifizierer trainiert werden und die Fehlerkorrektur auf Basis der Fehler erfolgt.
  • Die Hauptidee des Boostings basiert auf den spezifischen schwer zu klassifizierenden Trainingsstichproben. Wie bekannt werden diese Trainingsstichproben von den Klassifizierern falsch klassifiziert. Diese Modelle (Klassifizierer) werden auch schwache Klassifizierer genannt.
  • Bei falscher Klassifizierung einer Trainingsstichprobe von einem schwachen Klassifizierer werden genau diese Stichproben vom Algorithmus zur Verbesserung der Leistung des Ensembles verwendet.
  • Der gesamte Trainingssatz wird dem AdaBoost hinzugefügt. Das Endergebnis ist ein starker Klassifizierer, der aus den Fehlern der vorherigen schwachen Lerner, d. h. schwachen Klassifizierer, im Ensemble lernt.

Angenommen es gibt drei schwache Klassifizierer namens WC1, WC2 und WC3. Sie können auf dem Algorithmus der Entscheidungsbäume basieren.

Jede Iteration dient der Aktualisierung der Gewichtungen, wobei die vorhergesagten und tatsächlichen Trainingsdaten verglichen werden. Die Fehlerrate wird Fehlklassifizierungsrate genannt.

AdaBoost kann an dem Trainingssatz überanpassen. Im Vergleich zu Bagging-Modellen führen Boosting-Algorithmen zur Verringerung der Verzerrung und Varianz.

Bagging und Boosting: Unterschied 

  1. Durch die Bagging-Methode kann die Varianz eines Modells verringert, eine Überanpassung verhindert und die Genauigkeit instabiler Modelle erhöht werden.
  2. Boosting dagegen ermöglicht, ein starkes Modell durch das Kombinieren einer Reihe von schwachen Modellen zu implementieren.
  3. Im Gegensatz zum Bagging werden die aus dem Trainingsdatensatz entnommenen Proben während des Boosting-Vorgangs nicht wieder in den Trainingssatz zurückgeführt. 
  4. Im Vergleich zu den von Entscheidungsbäumen berechneten Entscheidungsgrenzen (auch als Stümpfe bekannt) können die vom Adaptive Boosting-Algorithmus berechneten Entscheidungsgrenzen sehr komplex sein.
  5. Obwohl dies dazu beitragen kann, dass ein starkes Vorhersagemodell implementiert wird, erhöht das Ensemble-Lernen die Komplexität der Berechnung verglichen mit einzelnen Klassifizierern.

Python Code Bagging

Im diesem Abschnitt wird dargestellt, wie die Bagging-Methode in Python implementiert werden kann.

Im Scikit-learn ist bereits ein Bagging-Klassifizierer implementiert:

sklearn.ensemble.BaggingClassifier
from sklearn.ensemble import BaggingClassifier
ds = DecisionTreeClassifier(criterion='entropy',max_depth=None)
bag = BaggingClassifier(max_samples=1.0,bootstrap=True)
bag.fit(X_train, y_train)

Im obigen Code wird der standardmäßige base_estimator eines Entscheidungsbaums verwendet. Er wird an die Zufallsstichproben mit Ersetzungen angepasst. Stichproben werden für alle Merkmale des Trainingssatzes genommen.

Python Code Boosting

Mit dem weiteren von Scikit-learn bereitgestellten Modul können auch die Vorteile des Adaptive Boosting-Algorithmus genutzt werden:

from sklearn.ensemble import AdaBoostClassifier
tree = DecisionTreeClassifier(criterion='entropy')
booster = AdaBoostClassifier(base_estimator=tree)
booster = booster.fit(x, y)

Der AdaBoost-Algorithmus kann eine viel höhere Genauigkeit erreichen als die Entscheidungsbäume alleine.

Fazit

In diesem Artikel wurde ein kurzer Überblick über die Konzepte von Bagging und Boosting im maschinellen Lernen als die zwei bekanntesten Ensemble-Methoden gegeben.

Zuerst wurde Bagging behandelt, dann wurde Boosting erläutert und schließlich wurden kurz die Unterschiede zwischen diesen beiden Ensemble-Methoden beschrieben.

Sollten Sie weitere Fragen zu Bagging und Boosting haben, so können Sie sich an das Team von AI-United.de per Mail oder Q&A wenden.

Quelle
AI-United-Redaktion

Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.