Ist AdaBoost weniger oder anfälliger für Überanpassungen?


20

Ich habe verschiedene (scheinbar) widersprüchliche Aussagen darüber gelesen, ob AdaBoost (oder andere Boosting-Techniken) im Vergleich zu anderen Lernmethoden weniger oder anfälliger für Überanpassungen sind.

Gibt es gute Gründe, den einen oder anderen zu glauben? Wenn es darauf ankommt, wovon hängt es ab? Was sind die Gründe, warum AdaBoost weniger / mehr zur Überanpassung neigt?


1
Meiner Intuition nach ist es anfälliger für Überanpassungen als ein zufälliger Wald. Der Algorithmus wurde jedoch entwickelt, um eine Überanpassung zu vermeiden, und es scheint normalerweise kein Problem zu sein. Ich habe keine Referenzen, um dies caretzu sichern , aber Sie können das Paket zur Kreuzvalidierung von Adaboost verwenden, und ich habe festgestellt, dass es in der Regel gut verallgemeinert ist.
Zach

Antworten:


17

Wie Sie sagen, wurde viel über diese Angelegenheit diskutiert, und es gibt eine ziemlich schwere Theorie, die damit einherging, dass ich zugeben muss, dass ich sie nie vollständig verstanden habe. Nach meiner praktischen Erfahrung ist AdaBoost ziemlich robust gegen Überanpassung und LPBoost (Linear Programming Boosting) umso mehr (weil die Zielfunktion eine spärliche Kombination schwacher Lernender erfordert, was eine Form der Kapazitätssteuerung darstellt). Die Hauptfaktoren, die es beeinflussen, sind:

  • Die "Stärke" der "schwachen" Lernenden: Wenn Sie sehr einfache schwache Lernende wie Entscheidungsstümpfe (einstufige Entscheidungsbäume) verwenden, sind die Algorithmen viel weniger anfällig für Überanpassung. Wann immer ich versucht habe, kompliziertere schwache Lernende (wie Entscheidungsbäume oder sogar Hyperebenen) zu verwenden, habe ich festgestellt, dass die Überanpassung viel schneller erfolgt

  • Der Geräuschpegel in den Daten: AdaBoost ist besonders anfällig für Überanpassungen bei verrauschten Datensätzen. In dieser Einstellung sind die regulierten Formulare (RegBoost, AdaBoostReg, LPBoost, QPBoost) vorzuziehen

  • Die Dimensionalität der Daten: Wir wissen, dass es im Allgemeinen zu einer stärkeren Überanpassung in hochdimensionalen Räumen kommt ("der Fluch der Dimensionalität"), und AdaBoost kann in dieser Hinsicht ebenfalls darunter leiden, da es sich lediglich um eine lineare Kombination von Klassifikatoren handelt, die selbst darunter leiden vom problem. Ob es so anfällig ist wie andere Klassifikatoren, ist schwer zu bestimmen.

k


9

Ich stimme mit den meisten Punkten überein, die im tdc-Kommentar erwähnt wurden. Ich muss jedoch einige Dinge hinzufügen und korrigieren.

  • Wie in L2Boost von Peter Bühlmann gezeigt, konvergiert der Bias exponentiell schnell, während die Varianz um geometrisch abnehmende Größen zunimmt, wenn die Anzahl der schwachen Lernenden (Anhebungsrunden) zunimmt.
  • Es wurde fälschlicherweise in Zach Kommentar erwähnt, dass es in Bezug auf Überanpassung besser ist als zufällige Wald. Das ist völlig falsch. In der Tat ist Random Forest laut Theorie (siehe Original-Random-Forest-Paper von Breiman) absolut immun gegen Überanpassung, solange seine schwachen Klassifikatoren nicht zu stark an Daten angepasst sind.
  • Anders als in tdc comment erwähnt, reagieren die meisten Boosting-Methoden sehr empfindlich auf Beschriftungsgeräusche und können bei Vorhandensein von Beschriftungsgeräuschen leicht zu Übersteuerungen führen.
  • In Datensätzen, in denen die Bayes-Fehlerraten weit von 0 entfernt sind (dh Merkmale sind nicht diskriminierend genug), können Boosting-Methoden ebenfalls leicht überbewertet werden. Weil sie versuchen, den Trainingsfehler auf Null zu reduzieren, während in der Realität sogar der optimale Klassifikator, dh der Bayes-Klassifikator, eine Fehlerrate von sagen wir 40% erreichen kann.
  • und dies wurde nicht veröffentlicht, wo (nach meinem besten Wissen) eine Art Überanpassung vorliegt, bei der der Verallgemeinerungsfehler nicht zunimmt, wenn die Boosting-Runden zunehmen, sondern auch nicht abnimmt. Dies bedeutet, dass der Algorithmus in einem lokalen Optimum steckt. In dieser Situation nimmt der Trainingsfehler konstant ab, während der Testfehler nahezu konstant bleibt. Bisher haben wir dieses Phänomen nie als Hinweis auf eine Überanpassung angesehen, aber ich glaube, es ist ein Zeichen für eine Überanpassung, und wenn wir komplexere schwache Lernende einsetzen (seltsam!), Können wir tatsächlich dagegen vorgehen (Dieser letzte Punkt sollte mit Vorsicht betrachtet werden : D)

1
Es lohnt sich, zu dieser Antwort hinzuzufügen, dass ich die letztere Art der Überanpassung heute sowohl mit AdaBoost als auch mit Random Forest erlebt habe. Bei der Kreuzvalidierung konvergierte der Out-of-Fold-Fehler gegen eine Konstante mit nur 20 Basisschätzern und prallte dann mit hoher Varianz um diese Konstante herum. Mein Verdacht war genau das gleiche: Die gierigen Algorithmen blieben in einer Art lokalem Optimum stecken. Dies ist keine Bestätigung dessen, was passiert ist, aber es ist schön zu wissen, dass jemand anderes den gleichen Gedanken hatte.
Shadowtalker

@ssdecontrol Können Sie uns mitteilen, was Sie getan haben? Ich möchte die Ergebnisse zum besseren Verständnis
reproduzieren

@saurabhagarwal Ich glaube, ich habe am Kaggle Titanic-Projekt gearbeitet
shadowtalker
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.