Absacken, Boosten und Stapeln beim maschinellen Lernen

Was sind die Ähnlichkeiten und Unterschiede zwischen diesen drei Methoden:

  • Absacken,
  • Boosten,
  • Stapeln?

Welches ist das beste? Und warum?

Können Sie mir ein geben? Beispiel für jeden?

Kommentare

  • für eine Lehrbuchreferenz empfehle ich: “ Ensemble-Methoden: Grundlagen und Algorithmen “ von Zhou, Zhi-Hua
  • Hier finden Sie eine -bezogene Frage .

Antwort

Alle drei sind sogenannte „Meta-Algorithmen“: Ansätze zur Kombination mehrerer Techniken des maschinellen Lernens in ein Vorhersagemodell, um die Varianz ( bagging ), die Vorspannung ( boosting ) oder die Vorhersagekraft ( stacking alias ) zu verringern Ensemble ).

Jeder Algorithmus besteht aus zwei Schritten:

  1. Erstellen eines Distrikts ibution einfacher ML-Modelle auf Teilmengen der Originaldaten.

  2. Kombinieren der Verteilung zu einem „aggregierten“ Modell.

Hier ist eine kurze Beschreibung aller drei Methoden:

  1. Bagging (steht für B ootstrap Agg regat ing ) ist eine Möglichkeit zum Verringern die Varianz Ihrer Vorhersage durch Generieren zusätzlicher Daten für das Training aus Ihrem ursprünglichen Datensatz unter Verwendung von -Kombinationen mit Wiederholungen , um Multisets zu erzeugen von derselben Kardinalität / Größe wie Ihre Originaldaten. Durch Erhöhen der Größe Ihres Trainingssatzes können Sie die Vorhersagekraft des Modells nicht verbessern, sondern nur die Varianz verringern und die Vorhersage eng auf das erwartete Ergebnis abstimmen.

  2. Boosting ist ein zweistufiger Ansatz, bei dem zuerst Teilmengen von verwendet werden die Originaldaten, um eine Reihe von Modellen mit durchschnittlicher Leistung zu erstellen und dann ihre Leistung zu „steigern“, indem sie unter Verwendung einer bestimmten Kostenfunktion (= Mehrheitsabstimmung) kombiniert werden. Im Gegensatz zum Absacken wird im klassisches Boosten Die Erstellung von Teilmengen ist nicht zufällig und hängt von der Leistung der vorherigen Modelle ab: Jede neue Teilmenge enthält die Elemente, die von früheren Modellen (wahrscheinlich) falsch klassifiziert wurden.

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

Hier ist eine Vergleichstabelle:

Vergleichstabelle

Wie Sie sehen, handelt es sich hierbei um unterschiedliche Ansätze, um mehrere Modelle zu einem besseren zu kombinieren Kein einziger Gewinner hier: Alles hängt von Ihrer Domain ab und davon, was Sie tun werden. Sie können Stapeln immer noch als eine Art Fortschritt Boosten behandeln. Die Schwierigkeit, einen guten Ansatz für Ihre Metaebene zu finden, macht es jedoch schwierig, diesen Ansatz in der Praxis anzuwenden

Kurze Beispiele für jedes:

  1. Bagging : Ozondaten .
  2. Boosting : wird verwendet, um die Genauigkeit der optischen Zeichenerkennung (OCR) zu verbessern.
  3. li> Stacking : wird in der Klassifizierung von Krebs-Microarrays in der Medizin verwendet.

Kommentare

  • Ihre Boosting-Definition unterscheidet sich anscheinend von der im Wiki (für das Sie verlinkt haben) oder in dieses Dokuments . Beide sagen, dass beim Boosten des nächsten Klassifikators Ergebnisse von zuvor trainierten verwendet werden, aber ‚ hat dies nicht erwähnt. Die Methode, die Sie andererseits beschreiben, ähnelt einigen Abstimmungs- / Modellmittelungstechniken.
  • @ a-rodin: Vielen Dank, dass Sie auf diesen wichtigen Aspekt hingewiesen haben. Ich habe diesen Abschnitt komplett neu geschrieben, um dies besser widerzuspiegeln. In Bezug auf Ihre zweite Bemerkung verstehe ich, dass Boosten auch eine Art von Abstimmung / Mittelwertbildung ist, oder habe ich Sie falsch verstanden?
  • @AlexanderGalkin Ich hatte zum Zeitpunkt des Kommentierens das Boosten von Gradienten im Sinn: es tut es nicht ‚ sieht nicht nach Abstimmung aus, sondern nach einer iterativen Funktionsnäherungstechnik. Z.B. AdaBoost sieht eher nach Abstimmung aus, daher werde ich ‚ nicht darüber streiten.
  • In Ihrem ersten Satz sagen Sie, dass Boosting die Voreingenommenheit verringert, aber in der Vergleichstabelle sagen Sie es erhöht die Vorhersagekraft.Sind beide wahr?

Antwort

Absacken :

  1. parallel Ensemble: Jedes Modell wird unabhängig erstellt.

  2. zielt darauf ab, die Varianz zu verringern , nicht Bias

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

  4. ein Beispiel einer baumbasierten Methode ist Zufallswald , der ausgewachsene Bäume entwickelt (beachten Sie, dass RF das gewachsene Verfahren modifiziert, um die Korrelation zu verringern zwischen Bäumen)

Boosting :

  1. sequentielles Ensemble: Versuchen Sie, neue Modelle hinzuzufügen, die wo gut funktionieren früheren Modellen fehlt

  2. das Ziel, zu verringern b ias , nicht Varianz

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

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

Kommentare

  • Es wäre großartig, jeden der Punkte zu kommentieren, um zu beantworten, warum es so ist und wie es erreicht wird Verbesserung Ihrer Antwort.
  • Können Sie ein Dokument / einen Link freigeben, in dem erklärt wird, dass durch das Erhöhen der Varianz die Varianz verringert wird und wie dies funktioniert? Ich möchte nur genauer verstehen
  • Danke Tim, ich ‚ werde später einige Kommentare hinzufügen. @ML_Pro, aus dem Boosting-Verfahren (z. B. Seite 23 von cs.cornell.edu/courses/cs578/2005fa/… ), es ist ‚ verständlich, dass das Boosten die Verzerrung verringern kann.

Antwort

Nur um die Antwort von Yuqian etwas näher zu erläutern. Die Idee hinter dem Absacken ist, dass Sie, wenn Sie mit einer nichtparametrischen Regressionsmethode (normalerweise Regressions- oder Klassifizierungsbäume, aber fast jede nichtparametrische Methode) ÜBERFÜHREN neigen dazu, zu dem Teil mit hoher Varianz, keinem (oder niedrigen) Bias des Bias / Varianz-Kompromisses zu gehen. Dies liegt daran, dass ein Überanpassungsmodell sehr flexibel ist (also eine geringe Bias über viele Resamples aus derselben Population, wenn diese verfügbar waren), aber hat Hohe Variabilität (wenn ich eine Stichprobe sammle und überpasse und Sie eine Probe sammle und überpasse, unterscheiden sich unsere Ergebnisse, da die nichtparametrische Regression das Rauschen in den Daten verfolgt). Was können wir tun? Wir können viele Resamples nehmen (von Bootstrapping) , jede Überanpassung, und mitteln sie zusammen. Dies sollte zu der gleichen Verzerrung (niedrig) führen, aber zumindest theoretisch einen Teil der Varianz aufheben.

Die Gradientenverstärkung in seinem Herzen funktioniert 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, da sie nicht passen, eine geringe Varianz aufweisen (Sie würden tendenziell das gleiche Ergebnis erzielen, wenn Sie neue Datensätze erfassen). Wie korrigierst du das? Wenn Sie nicht fit sind, enthalten die RESIDUALS Ihres Modells grundsätzlich immer noch eine nützliche Struktur (Informationen zur Population), sodass Sie den Baum, den Sie haben (oder einen anderen nichtparametrischen Prädiktor), um einen Baum erweitern, der auf den Residuen basiert. Dies sollte flexibler sein als der ursprüngliche Baum. Sie generieren wiederholt immer mehr Bäume, die jeweils in Schritt k durch einen gewichteten Baum ergänzt werden, der auf einem Baum basiert, der an die Residuen aus Schritt k-1 angepasst ist. Einer dieser Bäume sollte optimal sein, sodass Sie entweder alle diese Bäume zusammen gewichten oder einen auswählen, der am besten zu Ihnen passt. Gradient Boosting ist daher eine Möglichkeit, eine Reihe flexiblerer Kandidatenbäume zu erstellen.

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

Diese beiden 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 dies schwierig ist um Parameter so einzustellen, dass eine Unteranpassung oder Überanpassung vermieden wird.

Kommentare

  • +1 für das Argument „Überanpassung = Varianz, Unteranpassung = Verzerrung“! Ein Grund für die Verwendung von Entscheidungsbäumen besteht darin, dass sie strukturell instabil sind und daher stärker von geringfügigen Änderungen der Bedingungen profitieren. ( abbottanalytics.com / assets / pdf / … )

Antwort

Antwort

Um es kurz zusammenzufassen: Bagging und Boosting wird normalerweise in einem Algorithmus verwendet, während Stapeln normalerweise erfolgt wird verwendet, um mehrere Ergebnisse aus verschiedenen Algorithmen zusammenzufassen.

  • Absacken : Bootstrap Teilmengen von Funktionen und Beispielen, um mehrere Vorhersagen und Durchschnittswerte (oder auf andere Weise) die Ergebnisse, z. B. Random Forest, wodurch die Varianz beseitigt wird und keine Überanpassungsprobleme auftreten.
  • Boosten : Der Unterschied zum Bagging besteht darin, dass das spätere Modell dies versucht Lernen Sie den Fehler des vorherigen kennen, zum Beispiel GBM und XGBoost, die die Varianz beseitigen, aber ein Überanpassungsproblem haben.
  • Stapeln : Wird normalerweise in Wettbewerben verwendet, wenn mehrere Algorithmen verwendet werden, um mit demselben Datensatz und Durchschnitt zu trainieren (max, min oder andere Kombinationen) das Ergebnis, um eine höhere Genauigkeit der Vorhersage zu erhalten.

Antwort

beide Absackungen und Boosten verwenden Sie einen einzigen Lernalgorithmus für alle Schritte; Sie verwenden jedoch unterschiedliche Methoden für den Umgang mit Trainingsmustern. Bei beiden handelt es sich um eine Ensemble-Lernmethode, bei der Entscheidungen aus mehreren Modellen kombiniert werden.
Bagging :
1. Die Trainingsdaten werden erneut abgetastet M Teilmengen (Bootstrapping);
2. trainiert M Klassifikatoren (gleicher Algorithmus) basierend auf M Datensätzen (verschiedene Stichproben);
3. Endklassifizierer kombiniert M Ausgaben durch Abstimmung;
Stichproben gewichten gleich;
Klassifikatoren wiegen gleich;
verringert den Fehler durch Verringern der Varianz
Boosting : hier konzentrieren wir uns auf den Adaboost-Algorithmus
1. Beginnen Sie mit dem gleichen Gewicht für alle Proben in der ersten Runde;
2. Erhöhen Sie in den folgenden M-1-Runden das Gewicht von Proben, die in der letzten Runde falsch klassifiziert wurden, und verringern Sie es Gewichte von Stichproben, die in der letzten Runde korrekt klassifiziert wurden
3. Bei Verwendung einer gewichteten Abstimmung kombiniert der endgültige Klassifizierer mehrere Klassifizierer aus früheren Runden und gibt Klassifizierern mit weniger Fehlklassifizierungen größere Gewichte.
schrittweise gewichtete Stichproben; Gewichte für jede Runde basierend auf den Ergebnissen der letzten Runde
Proben neu gewichten (Boosten) statt Resampling (Absacken).

Antwort

Bagging

Bootstrap AGGregatING (Bagging) ist ein Ensemble-Generierungsmethode, die Variationen von Samples verwendet, die zum Trainieren von Basisklassifizierern verwendet werden. Für jeden zu generierenden Klassifikator wählt Bagging (mit Wiederholung) N Proben aus dem Trainingssatz mit der Größe N aus und trainiert einen Basisklassifikator. Dies wird wiederholt, bis die gewünschte Größe des Ensembles erreicht ist.

Das Absacken sollte mit instabilen Klassifizierern verwendet werden, d. H. Klassifizierern, die empfindlich auf Abweichungen im Trainingssatz reagieren, wie z. B. Entscheidungsbäume und Perzeptrone.

Random Subspace ist ein interessanter ähnlicher Ansatz, bei dem Variationen in den Merkmalen anstelle von Variationen in den Stichproben verwendet werden, die normalerweise in Datensätzen mit mehreren Dimensionen und geringem Merkmalsraum angegeben werden.

Boosting

Boosting generiert ein Ensemble durch Hinzufügen von Klassifizierern , die „schwierige Stichproben“ korrekt klassifizieren. Durch Boosten werden für jede Iteration die Gewichte der Samples aktualisiert, sodass Samples, die vom Ensemble falsch klassifiziert wurden, ein höheres Gewicht und damit eine höhere Wahrscheinlichkeit haben, für das Training des neuen Klassifikators ausgewählt zu werden.

Boosting ist ein interessanter Ansatz, aber sehr rauschempfindlich und nur mit schwachen Klassifikatoren wirksam. Es gibt verschiedene Varianten der Boosting-Techniken AdaBoost, BrownBoost (…). Jede hat ihre eigene Regel zur Gewichtsaktualisierung, um bestimmte Probleme (Lärm, Klassenungleichgewicht…) zu vermeiden.

Stapeln

Stapeln ist ein Meta-Learning-Ansatz , bei dem ein Ensemble verwendet wird, um „Features zu extrahieren“ , die von verwendet werden eine weitere Schicht des Ensembles. Das folgende Bild (aus Kaggle Ensembling Guide ) zeigt, wie dies funktioniert.

Geben Sie hier die Bildbeschreibung ein.

Zuerst (unten) werden mehrere verschiedene Klassifizierer mit dem Trainingssatz trainiert, und ihre Ausgaben (Wahrscheinlichkeiten) sind Wird zum Trainieren der nächsten Schicht (mittlere Schicht) verwendet. Schließlich werden die Ausgaben (Wahrscheinlichkeiten) der Klassifizierer in der zweiten Schicht unter Verwendung des Durchschnitts (AVG) kombiniert.

Es gibt verschiedene Strategien Kreuzvalidierung, Mischung und andere Ansätze, um eine Überanpassung durch Stapeln zu vermeiden. Einige allgemeine Regeln bestehen jedoch darin, einen solchen Ansatz bei kleinen Datensätzen zu vermeiden und zu versuchen, verschiedene Klassifikatoren zu verwenden, damit sie sich gegenseitig „ergänzen“ können.

Das Stapeln wurde in mehreren Wettbewerben für maschinelles Lernen wie Kaggle und Top verwendet Codierer. Es ist definitiv ein Muss beim maschinellen Lernen.

Antwort

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

Beim Stapeln werden Ergebnisse heterogener Modelltypen kombiniert.

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

Schreibe einen Kommentar

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