Es gibt viele Blog-Posts, YouTube-Videos usw. über die Idee , Bäume zu fangen oder zu vermehren . Mein allgemeines Verständnis ist, dass der Pseudocode für jedes ist:
Absacken:
- Nehmen Sie N zufällige Stichproben von x% der Stichproben und y% der Merkmale
- Passen Sie Ihr Modell (z. B. Entscheidungsbaum) an jedes von N an
- Vorhersage mit jedem N
- Mitteln Sie die Vorhersagen, um die endgültige Vorhersage zu erhalten
Erhöhen:
- Passen Sie Ihr Modell (z. B. Entscheidungsbaum) an Ihre Daten an
- Holen Sie sich die Reste
- Passen Sie Ihr Modell an die Residuen an
- Gehen Sie zu 2 für N Auffrischungsrunden
- Die endgültige Vorhersage ist eine gewichtete Summe der sequentiellen Prädiktoren.
Ich werde alle Klarstellungen zu meinem Verständnis oben nehmen, aber meine beabsichtigte Frage lautet wie folgt:
Sowohl XGBoost als auch LightGBM haben Parameter, die das Absacken ermöglichen. Die Anwendung ist nicht Bagging OR Boosting (worüber in jedem Blog-Beitrag gesprochen wird), sondern Bagging AND Boosting. Was ist der Pseudocode für wo und wann das kombinierte Absacken und Boosten stattfindet?
Ich habe erwartet, dass es "Bagged Boosted Trees" ist, aber es scheint, dass es "Boosted Bagged Trees" ist. Der Unterschied scheint erheblich zu sein.
Eingesackte verstärkte Bäume:
- Nehmen Sie N zufällige Stichproben von x% der Stichproben und y% der Merkmale
- Passen Sie Boosted-Bäume an jede der N Proben an
- Vorhersage mit jedem N
- Mitteln Sie die Vorhersagen, um die endgültige Vorhersage zu erhalten
Dies scheint der beste Weg zu sein. Immerhin ist das Risiko beim Boosten eine Überanpassung, und der Hauptvorteil des Einsackens besteht darin, die Überanpassung zu reduzieren. Es scheint eine großartige Idee zu sein, ein paar geboosterte Modelle einzusacken.
Doch von der Suche, zum Beispiel durch die scikit-learn
gradient_boosting.py (die Probe Absacken des Fall ist, aber nicht zufällig Merkmalsauswahl), und zusammen ein paar kleine Nuggets über Beiträge über LightGBM und XGBoost Schuster, sieht es aus wie XGBoost und LightGBM Arbeit wie folgt:
Gepackte Bäume:
- Passen Sie einen Entscheidungsbaum an Ihre Daten an
- Für i in N Auffrischungsrunden:
- Holen Sie sich die Reste
- wenn ich bag_frequency == 0 mod (dh bag alle 5 Runden):
- Nehmen Sie eine einzelne Zufallsstichprobe von x% der Stichproben und y% der Merkmale. benutze diese zufällige Stichprobe für die Zukunft
- Passen Sie den Baum an die Reste an
- Die endgültige Vorhersage ist eine gewichtete Summe der sequentiellen Prädiktoren.
Bitte korrigieren Sie mein Verständnis hier und tragen Sie die Details ein. Boosted Bagged Tree (mit nur 1 zufälligen Baum pro bag_frequency) scheint nicht so mächtig zu sein wie Bagged Boosted Tree.