Istnieje kilka implementacji rodziny modeli GBDT, takich jak:
- GBM
- XGBoost
- LightGBM
- Catboost.
Jakie są matematyczne różnice między tymi różnymi implementacjami?
Catboost wydaje się przewyższać inne implementacje, nawet używając tylko domyślnych parametrów zgodnie z tym testem , ale wciąż jest bardzo powolny.
Domyślam się, że catboost nie używa zmumifikowanych zmiennych, więc waga przypisana każdej (kategorialnej) zmiennej jest bardziej zrównoważona w porównaniu do innych implementacji, więc zmienne o wysokiej liczności nie mają większej wagi niż inne. Pozwala słabym kategorialnym (o niskiej liczności) wejść do niektórych drzew, stąd lepsza wydajność. Poza tym nie mam dalszych wyjaśnień.
Odpowiedzi:
https://arxiv.org/abs/1706.09516
Chcesz spojrzeć na ten artykuł w języku angielskim z zespołu Yandex na temat matematycznej wyjątkowości CATBoost.
Przeczytałem to krótko i wśród kilku rzeczy, które mogłem szybko zrozumieć, był fakt, że nie wykorzystują one resztek uzyskanych w TRAIN do zrobienia TRAIN , ponieważ te resztki tworzą optymistyczne nastawienie do jakości uczenia się. ( Aktualizacja: ta nowość umożliwia walkę z nadmiernym dopasowaniem, co jest jednym z powodów, dla których algorytm działał lepiej w porównaniu z analogami, oprócz różnych sposobów wstępnego przetwarzania zmiennych kategorialnych).
Przykro mi, że nie podałem konkretnej i pełnej odpowiedzi.
Najpierw proponuję przeczytać artykuł Friedmana na temat maszyny do zwiększania gradientu zastosowanej w szczególności do modeli regresora liniowego, klasyfikatorów i drzew decyzyjnych. https://statweb.stanford.edu/~jhf/ftp/trebst.pdf
Nie wchodziłbym w szczegóły tutaj. To tylko dobra lektura obejmująca różne rodzaje strat (L) i oprócz koncepcji o zmiennym znaczeniu. Oczywiście jest to kamień milowy wdrożenia metody zejścia w przestrzeni funkcji (modele niskiego poziomu), a nie parametrów w dążeniu do minimalizacji strat.
Jeśli zajrzysz tutaj: https://arxiv.org/pdf/1603.02754.pdf
Znajdziesz matematyczną winietę dla modelu XGBoost autorstwa Tianqi Chen i in. Teraz robi się ciekawie. Kilka matematycznych odchyleń tego modelu od klasycznego GBM Friedmana to:
Do tego momentu: spójrz tutaj, aby znaleźć implementację utraty kwantyli w CATBoost, która jest przydatna i zapewnia zarówno pierwszą, jak i drugą pochodną: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h
Chociaż nie możesz znaleźć tej użytecznej funkcji utraty L1 w XGBoost, możesz spróbować porównać implementację Yandex z niektórymi niestandardowymi funkcjami utraty napisanymi dla XGB.
Rozważ ten link: https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic
Oferują one różne sposoby dodawania jakościowych funkcji do treningu modelowego, a także stosowania starego i dobrze znanego podejścia typu „one-hot”. Zmniejszenie wymiarów przestrzeni wejściowej bez utraty dużej ilości informacji jest jednym z możliwych powodów, dla których dopasowany model jest mniej przebudowany.
Skończyłem. Nie używam LightGBM, więc nie mogę rzucić na to światła.
źródło