Warum brauchen wir XGBoost und Random Forest?

25

Bei einigen Konzepten war mir nicht klar:

  1. XGBoost wandelt schwache Lernende in starke Lernende um. Was ist der Vorteil davon? Kombinieren Sie viele schwache Lernende, anstatt nur einen einzigen Baum zu verwenden?

  2. Random Forest verwendet verschiedene Stichproben aus einem Baum, um einen Baum zu erstellen. Was ist der Vorteil dieser Methode, anstatt nur einen einzelnen Baum zu verwenden?

John Constantine
quelle

Antworten:

35

Es ist einfacher, mit der zweiten Frage zu beginnen und dann mit der ersten Frage fortzufahren.

Absacken

Random Forest ist ein Absackalgorithmus. Es reduziert die Varianz.

Angenommen, Sie haben sehr unzuverlässige Modelle, z. B. Entscheidungsbäume. (Warum unzuverlässig? Denn wenn Sie Ihre Daten ein wenig ändern, kann der erstellte Entscheidungsbaum sehr unterschiedlich sein.) In einem solchen Fall können Sie durch Absacken ein robustes Modell erstellen (Varianz reduzieren) - beim Absacken werden verschiedene Modelle erstellt indem Sie Ihre Daten erneut abtasten, um das resultierende Modell robuster zu machen.

Random Forest ist das, was wir für das Absacken von Entscheidungsbäumen bezeichnen, aber es unterscheidet sich nicht von anderen Absackalgorithmen.

Warum würdest du das tun wollen? Das hängt vom Problem ab. In der Regel ist es jedoch äußerst wünschenswert, dass das Modell stabil ist.

Boosting

Boosting reduziert die Varianz und reduziert auch die Vorspannung. Dies verringert die Varianz, da Sie mehrere Modelle verwenden (Absacken). Es reduziert die Verzerrung, indem es das nachfolgende Modell trainiert, indem es ihm mitteilt, welche Fehler die vorherigen Modelle gemacht haben (das Boosting-Teil).

Es gibt zwei Hauptalgorithmen:

  • Adaboost: Dies ist der ursprüngliche Algorithmus. Sie weisen nachfolgende Modelle an, schwerwiegendere Beobachtungen zu bestrafen, die von den vorherigen Modellen verwechselt wurden
  • Gradient Boosting: Sie trainieren jedes nachfolgende Modell mit den Residuen (der Differenz zwischen den vorhergesagten und den wahren Werten)

In diesen Ensembles, Ihre Basis Lerner muss schwach sein. Wenn es über die Daten hinausgeht, gibt es keine Residuen oder Fehler für die nachfolgenden Modelle, auf denen aufgebaut werden kann. Warum sind diese guten Modelle? Nun, die meisten Wettbewerbe auf Websites wie Kaggle wurden mit gradientensteigernden Bäumen gewonnen. Data Science ist eine empirische Wissenschaft, "weil es funktioniert" ist gut genug. Beachten Sie jedoch, dass Boosting-Modelle übermäßig angepasst werden können (auch wenn dies empirisch nicht sehr häufig vorkommt).

Ein weiterer Grund, warum insbesondere die Gradientenverstärkung auch ziemlich cool ist: Sie macht es sehr einfach, verschiedene Verlustfunktionen zu verwenden, selbst wenn die Ableitung nicht konvex ist. Wenn Sie beispielsweise probabilistische Prognosen verwenden, können Sie Dinge wie die Flipperfunktion als Verlustfunktion verwenden. etwas, was bei neuronalen Netzen viel schwieriger ist (weil die Ableitung immer konstant ist).

[Interessante historische Anmerkung: Boosting war ursprünglich eine theoretische Erfindung, die durch die Frage " Können wir ein stärkeres Modell mit schwächeren Modellen bauen ?" Motiviert war. ]


Hinweis: Menschen verwechseln manchmal zufällige Wald- und Steigungsbäume, nur weil beide Entscheidungsbäume verwenden, aber sie sind zwei sehr unterschiedliche Ensemblefamilien.

Ricardo Cruz
quelle
1
Boosting reduziert die Verzerrung durch iteratives Modellieren des Residuums und der Varianz durch Ermitteln eines gewichteten Durchschnitts. vgl. § 5.5 Bias, Varianz und Stabilität , S. 118, Boosting: Grundlagen und Algorithmen , Robert E. Schapire, Yoav Freund.
Emre
@Emre, du hast natürlich recht. Jemand hat meinen Beitrag bearbeitet und durch Erhöhen verkleinert . Ich habe es zurückgesetzt.
Ricardo Cruz
8

Wenn Sie einen Baum erstellen, müssen Sie einige Kriterien für die Aufteilung von Knoten definieren. Dazu gehören Metriken wie Information Gain und Gini Index. Das sind heuristische Ansätze, sie sind nicht zu geben , die garantiert beste mögliche Spaltung.

Gewicht in der Tatsache, dass einige Attribute weniger relevant und / oder verrauscht sind, und viele andere Probleme, die in realen Daten auftreten. Kurz gesagt, Sie können in einer anständigen Rechenzeit keinen perfekten Baum erstellen (Sie könnten natürlich alle möglichen Bäume erstellen und die besten testen, aber dann müssten Sie selbst in einem mittelgroßen Datensatz einige Jahre auf das Training warten).

Da wir nicht den besten Baum haben können, haben wir Annäherungen. Eine Annäherung besteht darin, viele Bäume zu erstellen (unter Verwendung verschiedener Datenpartitionen oder Attributpartitionen), da wir davon ausgehen, dass die meisten Bäume etwas korrekt sind, und ihre Klassifikationen in einem Abstimmungssystem zu berücksichtigen. Dies sollte mit den meisten Störungen umgehen, die vertikale Partition kann mit irrelevanten Attributen umgehen, die Heuristik hat eine geringere Bedeutung und möglicherweise andere Vorteile.

Mephy
quelle
1

Ich würde den guten Antworten einen kleinen Zusatz hinzufügen. Das Hauptproblem ist die Überanpassung. Sobald Sie mehr als einen Parameter haben und auch nichtlineare Funktionen hinzufügen, werden alle Algorithmen zu stark angepasst. Sie sehen etwas in den Daten, das nicht existiert. Zum Beispiel, wenn es dunkel ist oder der Nebel stark ist, neigen Menschen dazu, Dinge in der Dunkelheit / im Nebel zu sehen, die es nicht gibt. Fast alle Rechenalgorithmen passen besser als Menschen. Selbst lineare Regressionen zeigen merkwürdige Koeffizienten, wenn die Variablen stark korrelieren. Wenn es keine Überanpassung gäbe, wären übliche Entscheidungsbäume, auf denen diese Algorithmen basieren, besser als Random Forest oder XGBoost.

Und es gibt keine genaue Wissenschaft, warum es zu einer Überanpassung kommt und warum einige Algorithmen besser sind als die anderen. Theoretisch sind ARIMA-Modelle sehr solide, aber die Praxis zeigt, dass die Verwendung von Techniken zur exponentiellen Glättung besser ist und ARIMA nicht einmal Variablen unterscheiden kann, die sich gemäß ARIMA verhalten, jedoch mit unterschiedlichen Parametern.

Einige neuronale Netze und insbesondere Faltungs-neuronale Netze scheinen eine geringe Überanpassung zu haben. Gleichzeitig scheitert die ursprüngliche Idee von vollständig verbundenen neuronalen Netzen mit einer hohen Anzahl von Neuronen an einer Überanpassung.

Die Hauptmöglichkeiten gegen Überanpassung sind:

  1. Stichproben
  2. Mittelung über mehrere Modelle
  3. Randomisierung des Modells (zufälliges Ablegen von Neuronen während des Trainings neuronaler Netze)

Wenn ich die Algorithmen richtig verstehe, führen sowohl Random Forest als auch XGBoost Zufallsstichproben durch und mitteln über mehrere Modelle hinweg, um so die Überanpassung zu reduzieren.

Beim ImageNet-Bilderkennungswettbewerb war das beste Modell für 2016 (Shao et al.) Eine Kombination aus mehreren wirklich guten Modellen. Einige von ihnen haben den Wettbewerb in den vergangenen Jahren gewonnen. Dieses Modell hatte 20% weniger Fehler als jedes der Modelle, auf denen es basierte. Auf diese Weise kann die Mittelwertbildung über mehrere Modelle hinweg im Kampf gegen Überanpassungen stark sein.

keiv.fly
quelle