Co to jest algorytm XGBoost?

XGBoost lub Extreme Gradient boost to algorytm uczenia maszynowego wykorzystywany do implementacji drzew decyzyjnych zwiększających gradient. Dlaczego drzewa decyzyjne? Kiedy mówimy o nieustrukturyzowanych danych, takich jak obrazy, nieustrukturyzowane dane tekstowe itp., Modele ANN (Sztuczna sieć neuronowa) wydają się znajdować na górze, gdy próbujemy przewidzieć. Podczas gdy gdy mówimy o danych ustrukturyzowanych / częściowo ustrukturyzowanych, drzewa decyzyjne są obecnie najlepsze. XGBoost został zasadniczo zaprojektowany w celu znacznego zwiększenia prędkości i wydajności modeli uczenia maszynowego i bardzo dobrze spełnił ten cel.

Działanie algorytmu XGBoost

XGBoost ma algorytm uczenia się drzewa, a także uczenie się modelu liniowego, dzięki czemu może wykonywać równoległe obliczenia na pojedynczej maszynie.

Dzięki temu algorytm XGBoost jest 10 razy szybszy niż którykolwiek z istniejących algorytmów zwiększania gradientu.

XGBoost i GBM (tj. Maszyny zwiększające gradient) używają metod drzewiastych przy użyciu architektury spadku gradientowego.

Obszar, w którym XGBoost pozostawia za sobą inne GBM, to obszar optymalizacji systemu i ulepszeń algorytmów.

Zobaczmy je szczegółowo:

Optymalizacja systemu:

1. Przycinanie drzew - algorytm XGBoost stosuje podejście oparte na głębokości pierwszej, w przeciwieństwie do kryterium zatrzymania dla podziału drzewa stosowanego przez GBMS, który jest chciwy z natury i zależy również od kryterium ujemnej straty. Zamiast tego XGBoost używa funkcji / parametru maksymalnej głębokości, a zatem przycina drzewo w kierunku do tyłu.

2. Równoległość - proces sekwencyjnego budowania drzewa odbywa się przy użyciu równoległej implementacji w algorytmie XGBoost. Jest to możliwe dzięki wymiennym zewnętrznym i wewnętrznym pętlom. Zewnętrzna pętla zawiera listę węzłów liści drzewa, podczas gdy wewnętrzna pętla obliczy cechy. Ponadto, aby rozpocząć pętlę zewnętrzną, pętla wewnętrzna musi zostać ukończona. Ten proces przełączania poprawia wydajność algorytmu.

3. Optymalizacja sprzętu - Podczas projektowania algorytmu XGBoost uwzględniono także optymalizację sprzętu. Bufory wewnętrzne są przydzielane dla każdego wątku do przechowywania statystyk gradientu.

Ulepszenia algorytmiczne:

  • Świadomość rzadkości - XGBoost bardzo skutecznie radzi sobie z różnymi typami wzorców rzadkości. Ten algorytm uczy się brakującej wartości gniazda, widząc utratę treningu.
  • Regulararyzacja - Aby zapobiec nadmiernemu dopasowaniu, koryguje bardziej złożone modele, wdrażając zarówno LASSO (zwaną także L1), jak i regulację Ridge (zwaną także L2).
  • Weryfikacja krzyżowa - algorytm XGBoost ma wbudowane funkcje weryfikacji krzyżowej, które są wdrażane przy każdej iteracji podczas tworzenia modelu. Zapobiega to obliczeniu liczby potrzebnych iteracji przypominających.
  • Rozproszony ważony szkic kwantyli - algorytm XGBoost używa rozproszonego ważonego szkicu kwantyli, aby uzyskać optymalną liczbę punktów podziału między ważonymi zestawami danych

Funkcje XGBoost

Chociaż XGBoost został zaprojektowany w celu znacznego zwiększenia prędkości i wydajności modeli uczenia maszynowego, oferuje on również wiele zaawansowanych funkcji.

A) Funkcje modelu

XGBoost obsługuje takie funkcje, jak sci-kit do nauki uczenia się i implementację języka R. Główne obsługiwane metody zwiększania gradientu to:

  • Stochastyczne zwiększanie gradientu - kolumny, wiersze i kolumny na poziomy podziału mogą być podpróbkowane.
  • Zwiększanie gradientu
  • Regularized Gradient Boosting - XGBoost koryguje bardziej złożone modele, wdrażając zarówno LASSO (zwany także L1), jak i regularyzację Ridge (zwaną także L2).

B) Funkcje systemu

Funkcje systemu obejmują:

1. Przetwarzanie rozproszone - ta funkcja służy do szkolenia bardzo dużych modeli poprzez wdrożenie klastra maszyn.

2. Równoległość - podczas treningu wszystkie rdzenie procesora są wykorzystywane do równoległości konstrukcji drzewa

3. Optymalizacja pamięci podręcznej - algorytmy i struktury danych są buforowane w celu jak najlepszego wykorzystania sprzętu.

4. Out of the Core Computing - dla zestawów danych, które nie mieszczą się w pamięci, XGBoost oznacza przetwarzanie podstawowe.

C) Funkcje algorytmu

Jednym z głównych celów algorytmu XGBoost było jak najlepsze wykorzystanie wszystkich dostępnych zasobów. Niektóre z głównych cech algorytmicznych XGBoost to:

  • Struktura bloku - ta funkcja jest używana do obsługi równoległego tworzenia drzew.
  • Rzadko świadomy - gdy w zestawie danych brakuje wartości, ta funkcja automatycznie się tym zajmie.
  • Szkolenie ustawiczne - gdy model jest gotowy z nowymi danymi, można go jeszcze ulepszyć, korzystając z tej funkcji.

Dlaczego warto korzystać z XGBoost?

Głównym celem XGBoost jest:

  • Szybkość wykonania
  • Wydajność modelu

Omówmy oba z nich.

1. Szybkość wykonania

Gdy porównamy XGBoost z innymi algorytmami zwiększania gradientu, XGBoost okazuje się naprawdę szybki, około 10 razy szybszy niż inne implementacje.

Szilard Pafka przeprowadził kilka eksperymentów, które miały na celu ocenę szybkości wykonania różnych algorytmów implementacji losowego lasu. Poniżej znajduje się migawka wyników eksperymentu:

Okazało się, że XGBoost był najszybszy. Więcej lektur można znaleźć tutaj

2. Wydajność modelu

Kiedy mówimy o nieustrukturyzowanych danych, takich jak obrazy, nieustrukturyzowane dane tekstowe itp., Modele ANN (Sztuczna sieć neuronowa) wydają się znajdować na górze, gdy próbujemy przewidzieć. Podczas gdy gdy mówimy o danych ustrukturyzowanych / częściowo ustrukturyzowanych, drzewa decyzyjne są obecnie najlepsze, a gdy są implementowane przy użyciu XGBoost, żaden inny algorytm podwyższania nie jest w stanie tego przebić.

Algorytm używany przez XGboost

Algorytm XGBoost wykorzystuje algorytm drzewa decyzyjnego zwiększającego gradient.

Metoda zwiększania gradientu tworzy nowe modele, które mają za zadanie przewidywanie błędów i resztek wszystkich wcześniejszych modeli, które następnie z kolei sumuje się, a następnie dokonuje ostatecznej prognozy.

Wniosek: algorytm XGBoost

W tym algorytmie XGBoost poznaliśmy algorytm XGBoost używany do uczenia maszynowego. Potem zobaczyliśmy działanie tego algorytmu, jego głównych cech i dlaczego jest to idealny wybór do implementacji drzew decyzyjnych zwiększających gradient.

Polecane artykuły

Jest to przewodnik po algorytmie XGBoost. Tutaj omówiliśmy jego koncepcję, funkcje, wykorzystanie do uczenia maszynowego, działanie algorytmu w XGBoost. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. NLP w Pythonie
  2. Algorytm śledzenia promieni
  3. Algorytm podpisu cyfrowego
  4. Pytania do wywiadu algorytmicznego
  5. Kryptografia podpisów cyfrowych

Kategoria: