Co je to XGBoost Algoritmus?

XGBoost nebo Extreme Gradient boost je algoritmus strojového učení, který se používá pro implementaci rozhodovacích stromů zvyšujících gradient. Proč rozhodovací stromy? Když mluvíme o nestrukturovaných datech, jako jsou obrázky, nestrukturovaná textová data atd., Zdá se, že modely ANN (Umělá neuronová síť) jsou nahoře, když se snažíme předpovídat. Když mluvíme o strukturovaných / polostrukturovaných datech, rozhodovací stromy jsou v současné době nejlepší. XGBoost byl v podstatě navržen pro zlepšení rychlosti a výkonu modelů strojového učení velmi a sloužil účelu velmi dobře.

Práce s XGBoost algoritmem

XGBoost má algoritmus učení stromu a učení lineárního modelu, a proto je schopen provádět paralelní výpočty na jediném stroji.

Díky tomu je algoritmus XGBoost 10krát rychlejší než kterýkoli ze stávajících algoritmů zvyšujících gradient.

XGBoost a GBM (tj. Gradient Boosting Machines) používají stromové metody pomocí architektury gradientního sestupu.

Oblast, kde XGBoost opouští ostatní GBM, je oblast systémové optimalizace a vylepšení algoritmů.

Podívejme se na ně detailně:

Optimalizace systému:

1. Prořezávání stromů - Algoritmus XGBoost používá přístup založený na hloubce na rozdíl od kritéria zastavení štěpení stromů používaného GBMS, které je chamtivé povahy a záleží také na kritériu negativní ztráty. Místo toho používá XGBoost funkci / parametr maximální hloubky, a proto prořezává strom zpětným směrem.

2. Paralelizace - Proces vytváření sekvenčních stromů se provádí pomocí paralelní implementace v algoritmu XGBoost. To je možné díky vnější a vnitřní smyčce, které jsou zaměnitelné. Vnější smyčka uvádí seznam uzlů stromu, zatímco vnitřní smyčka vypočítá funkce. Aby se vnější smyčka mohla spustit, musí se vnitřní smyčka dokončit. Tento proces přepínání zlepšuje výkon algoritmu.

3. Optimalizace hardwaru - Při návrhu algoritmu XGBoost byla zvažována také optimalizace hardwaru. Interní vyrovnávací paměti jsou přiděleny každému vláknu pro ukládání statistik gradientu.

Algoritmická vylepšení:

  • Povědomí o rozptýlení - XGBoost je známo, že velmi efektivně zvládne všechny různé typy sparzitických vzorců. Tento algoritmus zjistí chybějící hodnotu vnoření tím, že vidí ztrátu tréninku.
  • Regularizace - Aby se předešlo přeplnění, opravuje složitější modely implementací jak LASSO (nazývané také L1), tak Ridgeovy regularizace (také nazývané L2).
  • Cross-Validation - Algoritmus XGBoost má vestavěné funkce cross-validation, které jsou implementovány při každé iteraci při tvorbě modelu. To zabraňuje potřebě vypočítat počet potřebných podpůrných iterací.
  • Distribuovaná vážená kvantová skica - algoritmus XGBoost používá distribuovanou váženou kvantovou skicu k získání optimálního počtu bodů rozdělení mezi váženými datovými sadami

Vlastnosti XGBoost

Přestože byl XGBoost navržen pro zlepšení rychlosti a výkonu modelů strojového učení, nabízí také řadu pokročilých funkcí.

A) Vlastnosti modelu

Funkce jako je sci-kit učení regularizace a implementace jazyka R je podporována XGBoost. Jsou podporovány hlavní metody zvyšování gradientu:

  • Stochastic Gradient Boosting - Sloupec, řádek a sloupec na dělené úrovně mohou být vzorkovány.
  • Zvýšení přechodu
  • Regularized Gradient Boosting - XGBoost opravuje složitější modely implementací jak LASSO (také nazývané L1), tak Ridge regularizace (také nazývané L2).

B) Funkce systému

Mezi vlastnosti systému patří:

1. Distribuované výpočty - Tato funkce se používá pro školení velmi velkých modelů implementací clusteru strojů.

2. Paralelizace - Během tréninku jsou všechna jádra CPU využívána pro paralelizaci stromové konstrukce

3. Optimalizace mezipaměti - Algoritmy a datové struktury jsou ukládány do mezipaměti, aby bylo možné co nejlépe využít hardware.

4. Out of the Core Computing - Pro datové sady, které se nevejdou do paměti, XGBoost zahrnuje základní výpočetní techniku.

C) Vlastnosti algoritmu

Jedním z hlavních cílů algoritmu XGBoost bylo co nejlépe využít všechny dostupné zdroje. Některé z hlavních algoritmických funkcí XGBoost jsou:

  • Block Structure - Tato funkce se používá pro podporu konstrukce stromů v paralelizaci.
  • Sparse Aware - Pokud hodnoty chybí v datové sadě, tato funkce se o to automaticky postará.
  • Pokračující školení - Když je model připraven s novými daty, může být tento model dále posílen pomocí této funkce.

Proč používat XGBoost?

Hlavní účel, který XGBoost slouží, je:

  • Rychlost provedení
  • Výkon modelu

Pojďme diskutovat o obou.

1. Rychlost provádění

Když porovnáme XGBoost s jinými algoritmy zvyšujícími gradient, XGBoost se ukáže být opravdu rychlý, přibližně 10krát rychlejší než jiné implementace.

Szilard Pafka provedl několik experimentů, které byly zaměřeny na vyhodnocení rychlosti provádění různých algoritmů implementace náhodných domén. Níže je uveden přehled výsledků experimentu:

Ukázalo se, že XGBoost byl nejrychlejší. Více informací naleznete zde

2. Výkon modelu

Když mluvíme o nestrukturovaných datech, jako jsou obrázky, nestrukturovaná textová data atd., Zdá se, že modely ANN (Umělá neuronová síť) jsou nahoře, když se snažíme předpovídat. Zatímco když mluvíme o strukturovaných / polostrukturovaných datech, rozhodovací stromy jsou v současné době nejlepší a když jsou implementovány pomocí XGBoost, žádný další vylepšující algoritmus to nemůže porazit od nynějška.

Algoritmus používaný XGboostem

Algoritmus XGBoost používá algoritmus rozhodovacího stromu zvyšujícího sklon.

Metoda zvyšování gradientu vytváří nové modely, které mají za úkol předpovídat chyby a zbytky všech předchozích modelů, které se pak zase sčítají a poté se provede konečná předpověď.

Závěr: XGBoost Algorithm

V tomto algoritmu XGBoost jsme se dozvěděli o algoritmu XGBoost, který se používá pro strojové učení. Pak jsme viděli fungování tohoto algoritmu, jeho hlavní rysy a proč je ideální volbou pro implementaci rozhodovacích stromů zvyšujících gradient.

Doporučené články

Toto byl průvodce XGBoost Algorithm. Zde jsme diskutovali o jeho konceptu, funkcích, použití pro strojové učení, zpracování algoritmu v XGBoost. Další informace naleznete také v následujících článcích -

  1. NLP v Pythonu
  2. Algoritmus trasování paprsku
  3. Algoritmus digitálního podpisu
  4. Rozhovor s otázkami algoritmu
  5. Kryptografie digitálního podpisu

Kategorie: