Kaj je XGBoost algoritem?

XGBoost ali Extreme Gradient boost je algoritem strojnega učenja, ki se uporablja za izvajanje dreves odločitev za povečanje gradientov. Zakaj odločitvena drevesa? Ko govorimo o nestrukturiranih podatkih, kot so slike, nestrukturirani besedilni podatki itd., Se zdi, da ANN modeli (Umetna nevronska mreža) prebivajo na vrhu, ko poskušamo napovedati. Ko govorimo o strukturiranih / polstrukturiranih podatkih, so odločitvena drevesa trenutno najboljša. XGBoost je bil v osnovi zasnovan za izboljšanje hitrosti in zmogljivosti modelov strojnega učenja, zato je zelo dobro služil svojemu namenu.

Delovanje algoritma XGBoost

XGBoost ima algoritem za učenje dreves kot tudi učenje linearnega modela in zaradi tega lahko izvede paralelno računanje na enem samem stroju.

Zaradi tega je algoritem XGBoost 10-krat hitrejši od katerega koli od obstoječih algoritmov za povečanje gradientov.

XGBoost in GBM (tj. Gradient Boosting Machines) uporabljajo drevesne metode z uporabo arhitekture spuščanja naklona.

Področje, kjer XGBoost zaostaja za drugimi GBM-ji, je področje optimizacije sistema in izboljšav nad algoritmi.

Poglejmo jih podrobneje:

Optimizacija sistema:

1. Obrezovanje dreves - algoritem XGBoost uporablja pristop prve globine, za razliko od merilnika zaustavitve za cepljenje dreves, ki ga uporablja GBMS, ki je požrešen in je odvisen tudi od kriterija negativne izgube. Namesto tega XGBoost uporablja funkcijo / parameter največje globine in zato obreže drevo v smeri nazaj.

2. Paralelizacija - postopek zaporedne gradnje dreves se izvede s paralelno izvedbo v algoritmu XGBoost. To je mogoče zaradi zunanjih in notranjih zank, ki sta medsebojno zamenljiva. Zunanja zanka našteva listna vozlišča drevesa, notranja zanka pa izračuna lastnosti. Tudi za začetek zunanje zanke mora biti notranja zanka dokončana. Ta postopek preklopa izboljša delovanje algoritma.

3. Optimizacija strojne opreme - Med načrtovanjem algoritma XGBoost je bila upoštevana tudi optimizacija strojne opreme. Za vsako nit se dodelijo notranji blažilniki, ki shranijo gradientno statistiko.

Algoritmične izboljšave:

  • Ozaveščenost o škropljenju - Znano je, da XGBoost zelo učinkovito obravnava vse različne vrste vzorcev redkosti. Ta algoritem spozna izgubo vrednosti gnezda, ko vidi izgubo na treningu.
  • Regularizacija - Da prepreči prekomerno opremljanje, popravi bolj zapletene modele tako, da izvede tako LASSO (imenovan tudi L1) kot tudi regulacijsko regulacijo Ridgea (imenovan tudi L2).
  • Navzkrižna validacija - algoritem XGBoost ima vgrajene funkcije navzkrižne validacije, ki se izvajajo pri vsaki ponovitvi v izdelavi modela. To preprečuje, da bi bilo treba izračunati število potrebnih ponovitev.
  • Distribuirana tehtana kvantna skica - algoritem XGBoost uporablja razporejeno tehtano kvantno skico, da dobi optimalno število razcepljenih točk med tehtanimi nabori podatkov

Značilnosti XGBoost

Čeprav je bil XGBoost zasnovan za izboljšanje hitrosti in zmogljivosti modelov strojnega učenja, ponuja tudi veliko naprednih funkcij.

A) Funkcije modela

XGBoost podpira funkcije, kot so značilnosti uravnavanja učenja učenja in uvajanja jezika R. Glavne podporne metode za povečanje gradienta so:

  • Stohastično povečanje gradientov - stolpec, vrstica in stolpec na razdeljene ravni je mogoče podvzorčiti.
  • Gradient Pospeševanje
  • Regulirano povečanje gradientov - XGBoost popravi bolj zapletene modele z izvajanjem tako LASSO (imenovanega tudi L1) kot tudi regulacijskega dela Ridgea (imenovanega tudi L2).

B) Funkcije sistema

Funkcije sistema vključujejo:

1. Razdeljeno računalništvo - Ta funkcija se uporablja za usposabljanje zelo velikih modelov z izvajanjem skupine strojev.

2. Paralelizacija - Med usposabljanjem se vsa jedra CPU-ja uporabljajo za paralelizacijo zgradbe dreves

3. Optimizacija predpomnilnika - algoritmi in strukture podatkov so predpomnjeni, da se strojna oprema kar najbolje izkoristi.

4. Izven osnovnega računalništva - Za nabore podatkov, ki ne ustrezajo pomnilniku, XGBoost pomeni osnovno računalništvo.

C) Lastnosti algoritma

Eden glavnih ciljev algoritma XGBoost je bil najbolje izkoristiti vse razpoložljive vire. Nekatere glavne algoritmične lastnosti XGBoost so:

  • Struktura blokov - Ta funkcija se uporablja za podporo gradnje dreves v paralelizaciji.
  • Sparse Aware - Ko vrednosti manjkajo v naboru podatkov, bo ta funkcija samodejno poskrbela za to.
  • Nadaljevanje usposabljanja - Ko je model pripravljen z novimi podatki, lahko model še izboljšate z uporabo te funkcije.

Zakaj uporabljati XGBoost?

Glavni namen XGBoost je:

  • Hitrost izvršitve
  • Zmogljivost modela

Naj se pogovorita oba.

1. Hitrost izvajanja

Ko primerjamo XGBoost z drugimi algoritmi za povečanje gradientov, se izkaže, da je XGBoost res hiter, približno 10-krat hitrejši od drugih izvedb.

Szilard Pafka je izvedel nekaj poskusov, ki so bili namenjeni oceni hitrosti izvajanja različnih naključnih algoritmov za izvajanje gozda. Spodaj je povzetek rezultatov poskusa:

Izkazalo se je, da je bil najhitrejši XGBoost. Več branja najdete tukaj

2. Zmogljivost modela

Ko govorimo o nestrukturiranih podatkih, kot so slike, nestrukturirani besedilni podatki itd., Se zdi, da ANN modeli (Umetna nevronska mreža) prebivajo na vrhu, ko poskušamo napovedati. Medtem ko govorimo o strukturiranih / polstrukturiranih podatkih, so odločitvena drevesa trenutno najboljša in ko se izvajajo z uporabo XGBoost, noben drug algoritem za povečanje tega ne more premagati do zdaj.

Algoritem, ki ga uporablja XGboost

Algoritem XGBoost uporablja algoritem za povečanje gradientne odločitve.

Metoda povečevanja gradientov ustvarja nove modele, ki imajo nalogo predvideti napake in ostanke vseh predhodnih modelov, ki se nato seštevajo in nato se končno napove.

Zaključek: Algoritem XGBoost

V tem algoritmu XGBoost smo spoznali algoritem XGBoost, ki se uporablja za strojno učenje. Nato smo videli delovanje tega algoritma, njegove glavne značilnosti in zakaj je odlična izbira za izvajanje dreves odločitev, ki povečujejo gradient.

Priporočeni članki

To je vodnik po algoritmu XGBoost. Tu smo razpravljali o njegovem konceptu, značilnostih, uporabi pri strojnem učenju, delu algoritma v XGBoostu. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. NLP v Pythonu
  2. Algoritem sledenja Rayu
  3. Algoritem digitalnega podpisa
  4. Vprašanja o intervjuju z algoritmom
  5. Kriptografija digitalnega podpisa

Kategorija: