Što je XGBoost algoritam?

XGBoost ili Extreme Gradient boost je algoritam strojnog učenja koji se koristi za implementaciju stabala odlučivanja za povećanje gradijenta. Zašto stabla odlučivanja? Kad govorimo o nestrukturiranim podacima kao što su slike, nestrukturirani tekstualni podaci itd., Izgleda da ANN modeli (Umjetna neuronska mreža) borave na vrhu kada pokušavamo predvidjeti. Dok kada govorimo o strukturiranim / polustrukturiranim podacima, stabla odluka trenutno su najbolja. XGBoost je u osnovi dizajniran za uvelike poboljšanje brzine i performansi modela strojnog učenja i vrlo je dobro služio svrsi.

Izrada XGBoost algoritma

XGBoost ima algoritam učenja stabla kao i učenje linearnog modela, i zbog toga je u mogućnosti da paralelno računa na jednom stroju.

To čini XGBoost algoritam 10 puta brže od bilo kojeg od postojećih algoritama za povećanje gradijenta.

XGBoost i GBM (tj. Gradient Boosting Machines) koriste metode stabla koristeći arhitekturu gradijenta spuštanja.

Područje gdje XGBoost zaostaje ostale GBM-ove je područje optimizacije sustava i poboljšanja u odnosu na algoritme.

Pogledajmo ih detaljno:

Optimizacija sustava:

1. Obrezivanje stabala - algoritam XGBoost koristi pristup prvoga dubina za razliku od kriterija zaustavljanja za cijepanje stabala koji koristi GBMS koji je pohlepan po prirodi i ovisi o kriteriju negativnog gubitka. Umjesto toga, XGBoost koristi značajku / parametar najveće dubine i stoga obrezuje stablo unatrag.

2. Paralelizacija - Proces uzastopnog stvaranja stabla provodi se korištenjem paralelne implementacije u algoritmu XGBoost. To je omogućeno zbog vanjske i unutarnje petlje koje su međusobno zamjenjive. Vanjska petlja navodi čvorove listova stabla dok će unutarnja petlja izračunati značajke. Također, da bi se vanjska petlja pokrenula, unutarnja petlja se mora dovršiti. Ovaj postupak prebacivanja poboljšava rad algoritma.

3. Optimizacija hardvera - Optimizacija hardvera razmatrana je i tijekom dizajna algoritma XGBoost. Unutarnji međuspremnici dodjeljuju se svakom od niti za pohranjivanje statistike gradijenta.

Algoritamska poboljšanja:

  • Osvješćenost oskudnosti - Poznato je da XGBoost vrlo učinkovito rješava sve različite vrste obrazaca oskudnosti. Ovaj algoritam uči vrijednost nestalog gnijezda uočavanjem gubitka treninga.
  • Regularizacija - Kako bi se spriječilo prekomjerno uklapanje, ispravlja složenije modele primjenjujući i LASSO (također se naziva L1) i regulacizaciju Ridgea (također se naziva L2).
  • Cross-Validation - Algoritam XGBoost ima ugrađene značajke cross-validacije koje se implementiraju na svakoj iteraciji u kreiranju modela. To sprječava potrebu za izračunavanjem broja potrebnih pojačanih ponavljanja.
  • Distribuirana ponderirana kvantna skica - algoritam XGBoost koristi raspoređenu ponderiranu kvantilnu skicu za dobivanje optimalnog broja podijeljenih točaka među ponderiranim skupovima podataka

Značajke XGBoost-a

Iako je XGBoost dizajniran da uvelike poboljša brzinu i performanse modela strojnog učenja, on također nudi i velik broj naprednih funkcija.

A) Značajke modela

Značajke poput one znanstvenog pribora za regularizaciju učenja i implementaciju R jezika podržava XGBoost. Glavne podržane metode poticanja gradijenta su:

  • Stohastičko povećanje gradijenata - Stupac, redak i stupac po razdjelnoj razini mogu se uzorkovati.
  • Pojačanje gradijenta
  • Regulirano povećanje gradijenata - XGBoost ispravlja složenije modele primjenjujući i LASSO (također se naziva L1), kao i regulaciju Ridgea (koja se također naziva L2).

B) Značajke sustava

Značajke sustava uključuju:

1. Distribuirano računarstvo - Ova se značajka koristi za obuku vrlo velikih modela primjenom grozda strojeva.

2. Paralelizacija - Tijekom obuke koriste se sve CPU jezgre za paralelizaciju konstrukcije stabla

3. Optimizacija predmemorije - Algoritmi i strukture podataka spremaju se u predmemoriju kako bi se hardver najbolje iskoristio.

4. Izvan osnovnog računanja - Za skupove podataka koji ne ulaze u memoriju XGBoost podrazumijeva jezgro.

C) Značajke algoritma

Jedan od glavnih ciljeva algoritma XGBoost bio je najbolje iskoristiti sve dostupne resurse. Neke od glavnih algoritamskih karakteristika XGBoost-a su:

  • Struktura bloka - Ova se značajka koristi za podršku konstrukcije stabala u paralelizaciji.
  • Sparse Aware - Kad vrijednosti nedostaju u skupu podataka, ova će se značajka automatski pobrinuti za to.
  • Kontinuirana obuka - Kad je model spreman s novim podacima, model se može dodatno poboljšati pomoću ove značajke.

Zašto koristiti XGBoost?

Glavna svrha koju XGBoost služi je:

  • Brzina izvršenja
  • Učinkovitost modela

Razgovarajmo o obojici.

1. Brzina izvršenja

Kad uspoređujemo XGBoost s drugim algoritmima za povećanje gradijenta, XGBoost je stvarno brz, otprilike 10 puta brži od ostalih implementacija.

Szilard Pafka izveo je neke eksperimente kojima je cilj bio procijeniti brzinu izvršenja različitih algoritama slučajne implementacije šuma. Ispod je kratki snimak rezultata eksperimenta:

Pokazalo se da je XGBoost bio najbrži. Više čitanja možete pronaći ovdje

2. Performanse modela

Kad govorimo o nestrukturiranim podacima kao što su slike, nestrukturirani tekstualni podaci itd., Izgleda da ANN modeli (Umjetna neuronska mreža) borave na vrhu kada pokušavamo predvidjeti. Iako kada govorimo o strukturiranim / polustrukturiranim podacima, stabla odluka su trenutno najbolja i kada se implementiraju pomoću XGBoost-a, nijedan drugi algoritam za povećanje ne može to nadvladati do sada.

Algoritam koji koristi XGboost

Algoritam XGBoost koristi algoritam povećanja gradijenta stabla odlučivanja.

Metoda povećanja gradijenta stvara nove modele koji imaju zadatak predvidjeti pogreške i ostatke svih prethodnih modela, koji se zatim, sa svoje strane, zbrajaju i tada se izrađuje konačno predviđanje.

Zaključak: Algoritam XGBoost

U ovom algoritmu XGBoost naučili smo o algoritmu XGBoost koji se koristi za strojno učenje. Tada smo vidjeli funkcioniranje ovog algoritma, njegove glavne značajke i zašto je savršen izbor za implementaciju stabala odlučivanja za povećanje gradijenta.

Preporučeni članci

Ovo je vodič za XGBoost algoritam. Ovdje smo razgovarali o njegovom konceptu, značajkama, uporabi za strojno učenje, radu algoritma u XGBoostu. Možete pogledati i sljedeće članke da biste saznali više -

  1. NLP u Pythonu
  2. Algoritam Ray Tracing
  3. Algoritam digitalnog potpisa
  4. Pitanja o intervjuu za algoritam
  5. Kriptografija digitalnog potpisa

Kategorija: