Mi az XGBoost algoritmus?

Az XGBoost vagy az Extreme Gradient boost egy gépi tanulási algoritmus, amelyet gradiensnövelő döntési fák megvalósításához használnak. Miért döntési fák? Amikor strukturálatlan adatokról, például képekről, nem strukturált szöveges adatokról stb. Beszélünk, úgy tűnik, hogy az ANN modellek (mesterséges idegi hálózat) a tetején vannak, amikor megpróbáljuk megjósolni. Míg strukturált / félig strukturált adatokról beszélünk, a döntési fák jelenleg a legjobbak. Az XGBoost alapvetően a gépi tanulási modellek sebességének és teljesítményének nagymértékű javítására tervezték, és nagyon jól szolgálta a célt.

Az XGBoost algoritmus működése

Az XGBoost rendelkezik fatanulási algoritmussal, valamint lineáris modelltanulással, és emiatt képes párhuzamos számításokat végezni egyetlen gépen.

Ez az XGBoost algoritmust tízszer gyorsabbá teszi, mint a létező gradiensnövelő algoritmusok.

Az XGBoost és a GBM (azaz a színátmenet-növelő gépek) fa módszereket használnak a gradiens leszállási architektúra felhasználásával.

Az a terület, ahol az XGBoost elhagyja a többi GBM-et, a rendszer optimalizálása és az algoritmusok fejlesztése.

Nézzük részletesen ezeket:

Rendszer optimalizálás:

1. Fa metszése - Az XGBoost algoritmus a mélység első megközelítését használja, ellentétben a GBMS által a fa hasításra vonatkozó megállási kritériummal, amely kapzsi jellegű, és a negatív veszteség kritériumától is függ. Ehelyett az XGBoost a maximális mélység funkciót / paramétert használja, és ezzel hátrafelé metszi a fát.

2. Párhuzamosítás - A szekvenciális faépítés folyamatát az XGBoost algoritmus párhuzamos megvalósításával hajtjuk végre. Ez a cserélhető külső és belső hurkok miatt lehetséges. A külső hurok felsorolja a fa levélcsomópontjait, míg a belső hurok kiszámítja a jellemzőket. Ezenkívül ahhoz, hogy a külső hurok elinduljon, a belső huroknak be kell fejeződnie. Ez a váltás javítja az algoritmus teljesítményét.

3. Hardver optimalizálás - A hardver optimalizálását is figyelembe vették az XGBoost algoritmus tervezésekor. A gradiens statisztikák tárolására az egyes szálakhoz belső puffereket osztanak ki.

Algoritmikus fejlesztések:

  • A sparsitás tudatossága - ismert, hogy az XGBoost nagyon hatékonyan kezeli az összes különféle sparsity-mintázatot. Ez az algoritmus megtanulja a fészek hiányzó értékét a képzési veszteség látásával.
  • Szabályozás - A túlzott felszerelés elkerülése érdekében javítja a bonyolultabb modelleket az LASSO (más néven L1) és a Ridge normalizálás (más néven L2) végrehajtásával.
  • Kereszt-érvényesítés - Az XGBoost algoritmus beépített kereszt-érvényesítési funkciókkal rendelkezik, amelyeket a modell létrehozásakor minden iterációnál megvalósítanak. Ez megakadályozza, hogy kiszámítsák a szükséges fokozó iterációk számát.
  • Elosztott súlyozott kvantitatív vázlat - Az XGBoost algoritmus az elosztott súlyozott kvantitatív vázlatot használja a súlyozott adatkészletek közötti optimális osztott pontok számának eléréséhez

Az XGBoost tulajdonságai

Noha az XGBoost úgy fejlesztették ki, hogy nagyban javítsák a gépi tanulási modellek sebességét és teljesítményét, ez is számos fejlett funkciót kínál.

A) Modell jellemzői

Az XGBoost támogatja azokat a funkciókat, mint például a sci-kit tanulási szabályosítás és az R nyelv megvalósítása. A támogatott fő gradiensnövelő módszerek a következők:

  • Sztochasztikus színátmenetes növelés - oszlop, sor és oszlop szétoszthatósági szinten almintáit lehet venni.
  • Színátmenet növelése
  • Szabályozott színátmenet- növelés - Az XGBoost javítja a bonyolultabb modelleket mind az LASSO (más néven L1), mind a Ridge normalizálás (más néven L2) végrehajtásával.

B) Rendszerjellemzők

A rendszer jellemzői a következők:

1. Elosztott számítástechnika - Ezt a funkciót nagyon nagy modellek kiképzésére használják gépi klaszter megvalósításával.

2. Párhuzamosítás - A képzés során az összes CPU-magot felhasználják a faszerkezet párhuzamosítására

3. Gyorsítótár-optimalizálás - Az algoritmusok és az adatstruktúrák gyorsítótárban vannak a hardver lehető legjobb kihasználása érdekében.

4. Alapvető számítástechnika - A memóriába nem illő adatkészletek esetében az XGBoost magában foglalja a központi számítást.

C) Algoritmus jellemzői

Az XGBoost algoritmus egyik fő célja az volt, hogy a rendelkezésre álló erőforrásokat a lehető legjobban kihasználja. Az XGBoost néhány fő algoritmikus tulajdonsága a következő:

  • Blokk felépítése - Ezt a funkciót a párhuzamosított faépítés támogatására használják.
  • Ritka tudat - Ha az értékek hiányoznak az adatkészletből, ez a szolgáltatás automatikusan gondoskodni fog róla.
  • Folytatás : Ha a modell készen áll az új adatokkal, akkor a modell tovább növelhető ezzel a funkcióval.

Miért használja az XGBoost?

Az XGBoost fő célja:

  • A végrehajtás sebessége
  • Modell teljesítménye

Beszéljünk meg mindkettõrõl.

1. Végrehajtási sebesség

Ha összehasonlítjuk az XGBoost más gradiensnövelő algoritmusokkal, akkor az XGBoost nagyon gyorsnak bizonyul, körülbelül 10-szer gyorsabb, mint más megvalósítások.

Pafka Szilard végzett néhány kísérletet, amelyek célja a különböző véletlenszerű erdő-megvalósítási algoritmusok végrehajtási sebességének felmérése. Az alábbiakban egy pillanatkép a kísérlet eredményeiről:

Kiderült, hogy az XGBoost volt a leggyorsabb. További olvasmány itt található

2. A modell teljesítménye

Amikor strukturálatlan adatokról, például képekről, nem strukturált szöveges adatokról stb. Beszélünk, úgy tűnik, hogy az ANN modellek (mesterséges idegi hálózat) a tetején vannak, amikor megpróbáljuk megjósolni. Míg strukturált / félig strukturált adatokról beszélünk, a döntési fák jelenleg a legjobbak, és ha az XGBoost használatával valósítják meg, akkor egyetlen más javító algoritmus sem tudja legyőzni ezt a jelenlegihez hasonlóan.

Az XGboost által használt algoritmus

Az XGBoost algoritmus a gradiensnövelő döntési fa algoritmust használja.

A gradiensnövelő módszer új modelleket hoz létre, amelyek feladata a korábbi modellek hibáinak és maradványainak előrejelzése, amelyeket viszont összevonnak, majd végső előrejelzést készítenek.

Következtetés: XGBoost algoritmus

Ebben az XGBoost algoritmusban megismerkedtünk a gépi tanuláshoz használt XGBoost algoritmussal. Aztán megláttuk ennek az algoritmusnak a működését, főbb jellemzőit és azt, hogy miért tökéletes választás gradiensnövelő döntési fák megvalósításához.

Ajánlott cikkek

Ez egy útmutató az XGBoost algoritmushoz. Itt tárgyaltuk annak koncepcióját, funkcióit, használatát a gépi tanuláshoz, egy algoritmus működését az XGBoostban. A következő cikkeket is megnézheti további információkért -

  1. NLP Pythonban
  2. Ray Tracing algoritmus
  3. Digitális aláírás algoritmus
  4. Algoritmus interjú kérdései
  5. Digitális aláírás titkosítás

Kategória: