Istnieje wiele postów na blogach, filmów na YouTube itp. O pomysłach spakowania lub ulepszenia drzew. Z mojego ogólnego zrozumienia wynika, że pseudo kod dla każdego z nich to:
Parcianka:
- Weź N losowych próbek x% próbek i y% funkcji
- Dopasuj swój model (np. Drzewo decyzyjne) do każdego z N
- Przewiduj z każdym N
- Uśrednij prognozy, aby uzyskać ostateczną prognozę
Zwiększenie:
- Dopasuj swój model (np. Drzewo decyzyjne) do swoich danych
- Zdobądź resztki
- Dopasuj swój model do resztek
- Przejdź do 2 dla N rund podwyższających
- Ostateczna prognoza jest ważoną sumą sekwencyjnych predyktorów.
Przedstawię wszelkie wyjaśnienia do mojego zrozumienia powyżej, ale moje zamierzone pytanie jest następujące:
Zarówno XGBoost, jak i LightGBM mają parametry umożliwiające pakowanie. Aplikacja nie jest Bagging OR Boosting (o tym mówi każdy post na blogu), ale Bagging AND Boosting. Jaki jest pseudo kod, gdzie i kiedy ma miejsce łączone pakowanie i wzmacnianie?
Spodziewałem się, że będzie to „Bagged Boosted Trees”, ale wygląda na to, że to „Boosted Bagged Trees”. Różnica wydaje się znaczna.
Drzewa wzmocnione w workach:
- Weź N losowych próbek x% próbek i y% funkcji
- Dopasuj wzmocnione drzewa do każdej z N próbek
- Przewiduj z każdym N
- Uśrednij prognozy, aby uzyskać ostateczną prognozę
To wydaje się najlepszym sposobem na zrobienie tego. W końcu ryzyko przyśpieszenia to nadmierne dopasowanie, a podstawową korzyścią z workowania jest ograniczenie nadmiernego dopasowania; spakowanie kilku ulepszonych modeli wydaje się świetnym pomysłem.
Jednak po przejrzeniu, na przykład scikit-learn
gradient_boosting.py (który wykonuje spakowanie próbek, ale nie losowy wybór funkcji) i zestawieniu kilku małych samorodków w postach dotyczących LightGBM i XGBoost, wygląda na to, że XGBoost i LightGBM działają w następujący sposób:
Zwiększone spakowane drzewa:
- Dopasuj drzewo decyzyjne do swoich danych
- Dla rund wzmacniających i in:
- Zdobądź resztki
- if i mod bag_frequency == 0 (tzn. torba co 5 rund):
- Weź pojedynczą losową próbkę x% próbek i y% cech; skorzystaj z tej losowej próbki
- dopasuj drzewo do resztek
- Ostateczna prognoza jest ważoną sumą sekwencyjnych predyktorów.
Popraw moje rozumienie tutaj i podaj szczegółowe informacje. Boosted Bagged Tree (z tylko 1 losowym drzewem na bag_frequency) nie wydaje się tak potężny jak Bagged Boosted Tree.