Absacken, Boosten und Stapeln beim maschinellen Lernen


245

Was sind die Gemeinsamkeiten und Unterschiede zwischen diesen 3 Methoden:

  • Absacken,
  • Erhöhen,
  • Stapeln?

Welches ist das beste? Und warum?

Kannst du mir für jeden ein Beispiel geben?


3
Als Lehrbuchreferenz empfehle ich: "Ensemble-Methoden: Grundlagen und Algorithmen" von Zhou, Zhi-Hua
Vadim Smolyakov

1
Sehen Sie hier eine verwandte Frage .
Ricardo Cruz

Antworten:


252

Alle drei sind sogenannte "Meta-Algorithmen": Ansätze, um mehrere Techniken des maschinellen Lernens in einem Vorhersagemodell zu kombinieren, um die Varianz ( Bagging ), die Vorspannung ( Boosting ) oder die Vorhersagekraft ( Stacking- Alias- Ensemble ) zu verringern .

Jeder Algorithmus besteht aus zwei Schritten:

  1. Erstellung einer Verteilung einfacher ML-Modelle auf Teilmengen der Originaldaten.

  2. Kombination der Verteilung zu einem "aggregierten" Modell.

Hier ist eine kurze Beschreibung aller drei Methoden:

  1. Absackung (steht für B ootstrap Agg Regat ing ) ist ein Wegdie Varianz Ihrer Vorhersage zu verringernindem zusätzliche Daten fürAusbildung von Ihrer ursprünglichen Datenmengeerzeugen unter Verwendung von Kombinationen mit Wiederholungen zu produzieren Multimengen von der gleichen Mächtigkeit / Größe wieOriginaldaten. Durch Erhöhen der Größe Ihres Trainingssatzes können Sie die Modellvorhersagekraft nicht verbessern, sondern nur die Varianz verringern und die Vorhersage auf das erwartete Ergebnis abstimmen.

  2. Boosting ist ein zweistufiger Ansatz, bei dem zunächst Teilmengen der Originaldaten verwendet werden, um eine Reihe von Modellen mit durchschnittlicher Leistung zu erstellen, und anschließend deren Leistung durch Kombination mit einer bestimmten Kostenfunktion (= Mehrheitsentscheidung) "gesteigert" wird. Im Gegensatz zum Absacken ist beim klassischen Boosten die Erstellung von Teilmengen nicht zufällig und hängt von der Leistung der vorherigen Modelle ab: Jede neue Teilmenge enthält die Elemente, die von vorherigen Modellen (wahrscheinlich) falsch klassifiziert wurden.

  3. Das Stapeln ähnelt dem Boosten: Sie wenden auch mehrere Modelle auf Ihre Originaldaten an. Der Unterschied besteht jedoch darin, dass Sie nicht nur eine empirische Formel für Ihre Gewichtsfunktion haben, sondern eine Metaebene einführen und ein anderes Modell / einen anderen Ansatz verwenden, um die Eingabe zusammen mit den Ausgaben jedes Modells zu schätzen, um die Gewichte oder zu schätzen Mit anderen Worten, um zu bestimmen, welche Modelle bei diesen Eingabedaten eine gute und welche eine schlechte Leistung erbringen.

Hier ist eine Vergleichstabelle:

Vergleichstabelle

Wie Sie sehen, sind dies verschiedene Ansätze, um mehrere Modelle zu einem besseren zu kombinieren, und es gibt hier keinen einzigen Gewinner: Alles hängt von Ihrer Domain und dem ab, was Sie tun werden. Sie können das Stapeln immer noch als eine Art Steigerung des Fortschritts betrachten . Die Schwierigkeit, einen guten Ansatz für Ihr Meta-Level zu finden, macht es jedoch schwierig, diesen Ansatz in der Praxis anzuwenden.

Kurze Beispiele von jedem:

  1. Absacken : Ozondaten .
  2. Boosting : Wird verwendet, um die Genauigkeit der optischen Zeichenerkennung (OCR) zu verbessern .
  3. Stapeln : Wird zur Klassifizierung von Krebs-Microarrays in der Medizin verwendet.

8
Ihre Boosting-Definition scheint sich von der im Wiki (für das Sie einen Link erstellt haben) oder in diesem Artikel zu unterscheiden . Beide sagen, dass beim Boosten des nächsten Klassifikators Ergebnisse von zuvor trainierten verwendet werden, aber das haben Sie nicht erwähnt. Die Methode, die Sie auf der anderen Seite beschreiben, ähnelt einigen Abstimmungs- / Modellmittelungstechniken.
Alexander Rodin

2
@ a-rodin: Vielen Dank, dass Sie auf diesen wichtigen Aspekt hingewiesen haben. Ich habe diesen Abschnitt komplett neu geschrieben, um dies besser zu reflektieren. Was Ihre zweite Bemerkung betrifft, so ist nach meinem Verständnis das Boosten auch eine Art Abstimmung / Mittelwertbildung, oder habe ich Sie falsch verstanden?
Alexander Galkin

@AlexanderGalkin Ich hatte zum Zeitpunkt des Kommentierens Gradientenerhöhung im Sinn: Es sieht nicht nach einer Abstimmung aus, sondern eher nach einer iterativen Funktionsannäherungstechnik. Allerdings sieht zB AdaBoost eher nach Abstimmung aus, weshalb ich nicht darüber streiten werde.
Alexander Rodin

3
In Ihrem ersten Satz sagen Sie, dass Boosting die Verzerrung verringert, in der Vergleichstabelle jedoch die Vorhersagekraft erhöht. Sind diese beiden wahr?
Ben Lindsay

68

Absackung :

  1. Paralleles Ensemble: Jedes Modell wird einzeln gebaut

  2. Ziel ist es, die Varianz zu verringern , nicht die Vorurteile

  3. geeignet für Low Bias Modelle mit hoher Varianz (komplexe Modelle)

  4. Ein Beispiel für eine baumbasierte Methode ist der Zufallswald , bei dem ausgewachsene Bäume entstehen.

Boosting :

  1. Sequentielles Ensemble: Versuchen Sie, neue Modelle hinzuzufügen, die dort gut funktionieren, wo vorherige Modelle fehlen

  2. Ziel ist es, die Tendenz zu verringern , nicht die Varianz

  3. Geeignet für Modelle mit niedriger Varianz und hoher Vorspannung

  4. Ein Beispiel für eine baumbasierte Methode ist die Gradientenverstärkung


5
Wenn Sie jeden der Punkte kommentieren, um zu beantworten, warum es so ist und wie es erreicht wird, wäre dies eine große Verbesserung Ihrer Antwort.
Tim

2
Können Sie ein Dokument / Link teilen, das erklärt, dass Boosten die Varianz verringert und wie es funktioniert?
Ich

1
Danke Tim, ich werde später einige Kommentare hinzufügen. @ML_Pro: Aus der Vorgehensweise beim Boosten (z. B. Seite 23 von cs.cornell.edu/courses/cs578/2005fa/… ) geht hervor, dass Boosten die Verzerrung verringern kann.
Yuqian

43

Nur um Yuqians Antwort etwas zu erläutern. Die Idee hinter dem Absacken ist, dass Sie, wenn Sie mit einer nichtparametrischen Regressionsmethode (normalerweise Regressions- oder Klassifikationsbäume, die jedoch nahezu jede nichtparametrische Methode sein kann) ÜBERFERTIGEN, dazu neigen, den Teil der Verzerrung mit hoher Varianz und ohne (oder mit geringer) Verzerrung zu wählen / Varianz Kompromiss. Dies liegt daran, dass ein Überpassungsmodell sehr flexibel ist (so wenig Verzerrung bei vielen Resamples aus derselben Population, wenn diese verfügbar waren), aber eine hohe Variabilität aufweist (wenn ich eine Stichprobe sammle und überpasse und Sie eine Stichprobe sammle und überpasse) Die Ergebnisse sind unterschiedlich, da die nichtparametrische Regression das Rauschen in den Daten verfolgt. Was können wir tun? Wir können viele Resamples (aus dem Bootstrapping) nehmen, die jeweils überpassend sind, und sie zusammen mitteln. Dies sollte zu derselben Verzerrung (niedrig) führen, aber einen Teil der Varianz ausgleichen.

Gradient Boosting funktioniert im Kern mit nichtparametrischen UNDERFIT-Regressionen, die zu einfach sind und daher nicht flexibel genug, um die tatsächliche Beziehung in den Daten zu beschreiben (dh voreingenommen), aber aufgrund der mangelnden Anpassung eine geringe Varianz aufweisen (Sie würden dazu tendieren) um dasselbe Ergebnis zu erzielen, wenn Sie neue Datensätze sammeln). Wie korrigieren Sie das? Grundsätzlich enthalten die RESIDUALS Ihres Modells, wenn Sie nicht fit sind, noch nützliche Strukturen (Informationen über die Population), sodass Sie den Baum, den Sie haben (oder einen beliebigen nichtparametrischen Prädiktor), mit einem Baum erweitern, der auf den Residuen aufgebaut ist. Dies sollte flexibler sein als der ursprüngliche Baum. Sie generieren wiederholt mehr und mehr Bäume, jeweils in Schritt k, ergänzt durch einen gewichteten Baum, der auf einem Baum basiert, der an die Residuen aus Schritt k-1 angepasst ist. Einer dieser Bäume sollte optimal sein, Am Ende gewichten Sie entweder alle diese Bäume zusammen oder wählen einen Baum aus, der am besten zu Ihnen passt. Daher ist Gradienten-Boosting eine Möglichkeit, eine Reihe flexiblerer Kandidatenbäume zu erstellen.

Wie bei allen nichtparametrischen Regressions- oder Klassifizierungsansätzen funktioniert das Absacken oder Boosten manchmal hervorragend, manchmal ist der eine oder andere Ansatz mittelmäßig, und manchmal stürzt der eine oder andere Ansatz (oder beide) ab und brennt.

Beide Techniken können auch auf andere Regressionsansätze als Bäume angewendet werden, sie werden jedoch am häufigsten mit Bäumen in Verbindung gebracht, möglicherweise weil es schwierig ist, Parameter festzulegen, um eine Unteranpassung oder Überanpassung zu vermeiden.


3
+1 für das Argument overfit = varianz, underfit = bias! Ein Grund für die Verwendung von Entscheidungsbäumen ist, dass sie strukturell instabil sind und daher eher von geringfügigen Änderungen der Bedingungen profitieren. ( abbottanalytics.com/assets/pdf/… )
Mark Horvath


3

Kurz gesagt, Bagging und Boosting werden normalerweise in einem Algorithmus verwendet, während Stacking normalerweise verwendet wird, um mehrere Ergebnisse aus verschiedenen Algorithmen zusammenzufassen.

  • Bagging : Bootstrap- Untergruppen von Features und Beispielen, um beispielsweise verschiedene Vorhersagen zu erhalten und die Ergebnisse zu mitteln (oder auf andere Weise) Random Forest, wodurch Varianz beseitigt wird und keine Überanpassung auftritt.
  • Boosting : Der Unterschied zu Bagging besteht darin, dass das spätere Modell versucht, den Fehler zu ermitteln, den das vorherige Modell gemacht hat GBMund XGBoostder die Varianz beseitigt, aber ein Überpassungsproblem aufweist.
  • Stacking : Wird normalerweise in Wettbewerben verwendet, wenn mehrere Algorithmen zum Trainieren desselben Datensatzes und zum Mitteln (max, min oder andere Kombinationen) des Ergebnisses verwendet werden, um eine höhere Vorhersagegenauigkeit zu erzielen.

2

Sowohl beim Absacken als auch beim Boosten wird für alle Schritte ein einziger Lernalgorithmus verwendet. Beim Umgang mit Trainingsmustern wenden sie jedoch unterschiedliche Methoden an. beide sind Gesamteindrucks - Lernmethode , die Entscheidungen von mehreren Modellen kombiniert
Absackung :
1. Resampling Trainingsdaten M Untergruppen (Bootstrapping) zu erhalten;
2. trainiert M Klassifikatoren (gleicher Algorithmus) basierend auf M Datensätzen (verschiedene Stichproben);
3. Endklassifikator kombiniert M Ausgänge durch Abstimmung;
Proben werden gleichmäßig gewogen;
Klassifikatoren wiegen gleichermaßen;
Verringert den Fehler durch Verringern der Varianz.
Boosting : Konzentrieren Sie sich hier auf den Adaboost-Algorithmus.
1. Beginnen Sie mit dem gleichen Gewicht für alle Proben in der ersten Runde.
2. In den folgenden M-1-Runden die Gewichte der in der letzten Runde falsch klassifizierten Proben erhöhen, die Gewichte der in der letzten Runde richtig klassifizierten Proben verringern.
3. Mit einer gewichteten Abstimmung kombiniert der endgültige Klassifikator mehrere Klassifikatoren aus vorherigen Runden und gibt größere Gewichte zu Klassifizierern mit weniger Fehlklassifizierungen.
schrittweise Gewichtung der Proben; Die Gewichte für jede Runde basieren auf den Ergebnissen der letzten Runde. Die
Proben werden neu gewichtet (Boosten), anstatt neu abgetastet (Absacken).


0

Beim Absacken und Boosten werden in der Regel viele homogene Modelle verwendet.

Beim Stapeln werden Ergebnisse von heterogenen Modelltypen kombiniert.

Da kein einzelner Modelltyp in der Regel für die gesamte Verteilung am besten geeignet ist, können Sie erkennen, warum dies die Vorhersagekraft erhöhen kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.