Čo je to XGBoost Algorithm?

XGBoost alebo Extreme Gradient boost je algoritmus strojového učenia, ktorý sa používa na implementáciu rozhodovacích stromov zvyšujúcich gradient. Prečo rozhodovacie stromy? Keď hovoríme o neštruktúrovaných údajoch, ako sú obrázky, neštruktúrované textové údaje atď., Zdá sa, že modely ANN (umelá neurónová sieť) sú na vrchole, keď sa snažíme predvídať. Aj keď hovoríme o štruktúrovaných / pološtrukturovaných údajoch, rozhodovacie stromy sú v súčasnosti najlepšie. XGBoost bol v podstate navrhnutý tak, aby výrazne zlepšil rýchlosť a výkon modelov strojového učenia a veľmi dobre slúžil tomuto účelu.

Fungovanie XGBoost algoritmu

XGBoost má algoritmus učenia sa stromov, ako aj učenie lineárneho modelu, a preto je schopný vykonávať paralelné výpočty na jednom počítači.

Vďaka tomu je algoritmus XGBoost desaťkrát rýchlejší ako ktorýkoľvek z existujúcich algoritmov zvyšujúcich gradient.

XGBoost a GBM (tj Gradient Boosting Machines) používajú stromové metódy pomocou architektúry gradientu zostupu.

Oblasť, v ktorej XGBoost opúšťa ostatné GBM, je oblasťou optimalizácie systému a vylepšenia algoritmov.

Pozrime sa na ne podrobne:

Optimalizácia systému:

1. Orezávanie stromov - Algoritmus XGBoost využíva prístup založený na hĺbke na rozdiel od kritéria zastavenia pri štiepení stromov, ktoré používa GBMS, ktorý je chamtivý a závisí aj od kritéria negatívnej straty. Namiesto toho používa XGBoost funkciu / parameter maximálnej hĺbky, a preto zasekáva strom smerom dozadu.

2. Paralelizácia - Proces postupného vytvárania stromu sa vykonáva pomocou paralelnej implementácie v algoritme XGBoost. To je možné vďaka vzájomne zameniteľným vonkajším a vnútorným slučkám. Vonkajšia slučka obsahuje zoznam listových uzlov stromu, zatiaľ čo vnútorná slučka vypočíta vlastnosti. Aby sa mohla spustiť vonkajšia slučka, musí sa dokončiť aj vnútorná slučka. Tento proces prepínania zlepšuje výkon algoritmu.

3. Optimalizácia hardvéru - Pri návrhu algoritmu XGBoost sa uvažovalo aj o optimalizácii hardvéru. Každému vláknu sú na ukladanie štatistík gradientu pridelené interné vyrovnávacie pamäte.

Algoritmické vylepšenia:

  • Povedomie o sporivosti - XGBoost je známe, že veľmi efektívne zvláda všetky rôzne typy vzorcov sporivosti. Tento algoritmus zistí chýbajúcu hodnotu hniezda tým, že vidí stratu tréningu.
  • Regularizácia - Aby sa predišlo nadmernému vybaveniu, koriguje zložitejšie modely implementáciou tak LASSO (tiež nazývaného L1), ako aj Ridgeovej regularizácie (tiež nazývanej L2).
  • Krížová validácia - algoritmus XGBoost má vstavané funkcie krížovej validácie, ktoré sa implementujú pri každej iterácii pri tvorbe modelu. To bráni potrebe vypočítať počet potrebných podporných iterácií.
  • Distribuovaná vážená kvantová skica - algoritmus XGBoost používa distribuovanú váženú kvantovú skicu na získanie optimálneho počtu rozdelených bodov medzi váženými množinami údajov.

Funkcie XGBoost

Aj keď bol program XGBoost navrhnutý na zlepšenie rýchlosti a výkonu modelov strojového učenia sa, ponúka aj množstvo pokročilých funkcií.

A) Funkcie modelu

XGBoost podporuje funkcie ako je sci-kit učenie sa regularizácie a implementácia jazyka R. Podporované sú hlavné metódy zvyšovania gradientu:

  • Zvýšenie stochastického gradientu - Stĺpce, riadky a stĺpce na úrovni rozdelenia môžu byť vzorkované.
  • Zvýšenie prechodu
  • Pravidelné zvýšenie gradientu - XGBoost koriguje zložitejšie modely implementáciou LASSO (tiež nazývaného L1) a Ridgeovej regularizácie (tiež nazývanej L2).

B) Funkcie systému

Medzi vlastnosti systému patrí:

1. Distribuované výpočty - táto funkcia sa používa na školenie veľmi veľkých modelov implementáciou zoskupenia strojov.

2. Paralelizácia - Počas tréningu sa všetky jadrá CPU využívajú na paralelizáciu stromovej konštrukcie

3. Optimalizácia vyrovnávacej pamäte - algoritmy a dátové štruktúry sa ukladajú do vyrovnávacej pamäte, aby sa čo najlepšie využil hardvér.

4. Out of the Core Computing - Pre dátové súbory, ktoré sa nezmestia do pamäte, XGBoost znamená core computing.

C) Vlastnosti algoritmov

Jedným z hlavných cieľov algoritmu XGBoost bolo čo najlepšie využiť všetky dostupné zdroje. Niektoré z hlavných algoritmických funkcií XGBoost sú:

  • Block Structure - Táto funkcia sa používa na podporu konštrukcie stromov v paralelizácii.
  • Sparse Aware - Ak hodnoty chýbajú v množine údajov, táto funkcia sa o ňu automaticky postará.
  • Trvalé školenie - Keď je model pripravený na nové údaje, pomocou tejto funkcie je možné model ďalej vylepšiť.

Prečo používať XGBoost?

XGBoost slúži predovšetkým na tieto účely:

  • Rýchlosť vykonávania
  • Výkon modelu

Poďme diskutovať o oboch.

1. Rýchlosť vykonávania

Keď porovnáme XGBoost s inými algoritmami zvyšujúcimi gradient, XGBoost sa javí ako skutočne rýchly, približne desaťkrát rýchlejší ako iné implementácie.

Szilard Pafka uskutočnil niekoľko experimentov, ktoré boli zamerané na vyhodnotenie rýchlosti vykonávania rôznych náhodných implementačných algoritmov. Nižšie je uvedený prehľad výsledkov experimentu:

Ukázalo sa, že XGBoost bol najrýchlejší. Viac informácií nájdete tu

2. Výkon modelu

Keď hovoríme o neštruktúrovaných údajoch, ako sú obrázky, neštruktúrované textové údaje atď., Zdá sa, že modely ANN (umelá neurónová sieť) sú na vrchole, keď sa snažíme predvídať. Zatiaľ čo keď hovoríme o štruktúrovaných / pološtruktúrovaných údajoch, rozhodovacie stromy sú v súčasnosti najlepšie a keď sú implementované pomocou XGBoost, žiadny iný podporujúci algoritmus to už nedokáže prekonať.

Algoritmus používaný programom XGboost

Algoritmus XGBoost používa algoritmus rozhodovacích stromov zvyšujúcich sklon.

Metóda zvyšovania gradientu vytvára nové modely, ktoré majú za úlohu predpovedať chyby a zvyšky všetkých predchádzajúcich modelov, ktoré sa potom spočítajú a potom sa vykoná konečná predpoveď.

Záver: XGBoost Algorithm

V tomto algoritme XGBoost sme sa dozvedeli o algoritme XGBoost, ktorý sa používa na strojové učenie. Potom sme videli fungovanie tohto algoritmu, jeho hlavné vlastnosti a prečo je ideálnou voľbou pre implementáciu rozhodovacích stromov zvyšujúcich gradient.

Odporúčané články

Toto bola príručka pre XGBoost Algorithm. Tu sme diskutovali o jeho koncepcii, funkciách, použití pri strojovom učení, práci s algoritmom v XGBoost. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. NLP v Pythone
  2. Algoritmus sledovania lúčov
  3. Algoritmus digitálneho podpisu
  4. Otázky týkajúce sa rozhovoru s algoritmom
  5. Kryptografia digitálneho podpisu

Kategórie: