XGBoost

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 1. června 2022; ověření vyžaduje 1 úpravu .
XGBoost
Typ Strojové učení
Vývojář Přispěvatelé XGBoost
Zapsáno v C++
Operační systém Linux , macOS , Windows
První vydání 27. března 2014  ( 27. 3. 2014 )
Nejnovější verze 1.6.0 (15. dubna 2022 ) ( 2022-04-15 )
Licence Licence Apache 2.0
webová stránka xgboost.ai

XGBoost [1] (eXtreme Gradient Boosting) je open source knihovna používaná ve strojovém učení , která poskytuje funkce pro řešení problémů souvisejících s regularizací zesílení gradientu . Knihovna je podporována programovacími jazyky C++ , Java , Python [2] , R [3] , Julia [4] , Perl [5] a Scala . Knihovna funguje pod Linuxem , Windows [6 ] a macOS[7] . Běží jak na jednom počítači, tak na systémech distribuovaného zpracování Apache Hadoop , Apache Spark a Apache Flink .

V poslední době si tato knihovna získala velkou oblibu a pozornost jako výběr mnoha vítězných týmů v soutěžích strojového učení [8] .

Historie

XGBoost původně začal jako výzkumný projekt Cheng Tianqi [9] jako součást skupiny Distributed (Deep) Machine Learning Community (DMLC). Původně to začalo jako konzolový program, který bylo možné konfigurovat pomocí konfiguračního souboru libsvm . XGBoost se stal široce známým v kruzích strojového učení po jeho použití při řešení vítěze Higgs Machine Learning Challenge . Balíčky pro Python a R byly vytvořeny brzy poté a XGBoost má nyní implementace balíčků pro Java, Scala , Julia , Perl a další jazyky. To umožnilo více vývojářům připojit se ke knihovně a přispělo k její popularitě mezi komunitou Kaggle , kde byla použita k pořádání velkého množství soutěží [8] .

XGBoost byl brzy integrován s řadou dalších balíčků, což usnadnilo použití v příslušných komunitách. Nyní je integrován do scikit-learn pro uživatele Pythonu a do balíčku caret pro uživatele R . Lze jej také integrovat do rámců Data Flow, jako jsou Apache Spark , Apache Hadoop a Apache Flink pomocí abstraktních Rabit [10] a XGBoost4J [11] . XGBoost je také dostupný na OpenCL pro FPGA [12] . Účinnou, škálovatelnou implementaci XGBoost publikovali Cheng Tianqi a Carlos Gustrin [13] .

Ačkoli model XGBoost často dosahuje vyšší přesnosti než jeden rozhodovací strom, obětuje přirozenou interpretovatelnost rozhodovacích stromů. Například sledování cesty, kterou se rozhodovací strom vydává, aby učinil rozhodnutí, je triviální a samovysvětlující, ale sledování cest stovek nebo tisíců stromů je mnohem obtížnější. Pro dosažení výkonu a interpretovatelnosti umožňují některé techniky komprese modelu XGBoost převést na jeden „znovuzrozený“ rozhodovací strom, který aproximuje stejnou rozhodovací funkci [14] .

Funkčnost

Mezi klíčové vlastnosti XGBoost, které jej odlišují od jiných algoritmů zesílení gradientu, patří: [15] [16] [17] .

Popis algoritmu

XGBoost používá Newton-Raphsonovu metodu ve funkčním prostoru, na rozdíl od zesílení gradientu , které funguje jako gradientní sestup ve funkčním prostoru, ztrátová funkce používá Taylorovu řadu druhého řádu, aby se vztahovala k Newton-Raphsonově metodě.

Obecný pohled na neregulovaný algoritmus XGBoost:

Vstup: tréninková sada , funkce diferencovatelných ztrát , počet slabých žáků a rychlost učení .

Algoritmus:

  1. Inicializujte model s konstantní hodnotou:
  2. Pro m = 1 až M :
    1. Vypočítejte "gradienty" a "hesiany":
    2. Upravte základního/slabého žáka pomocí tréninkové sady vyřešením následujícího optimalizačního problému:
    3. Aktualizace modelu:
  3. Výsledek:

Ocenění

Poznámky

  1. Odkaz na stránku projektu .
  2. Python Package Index PYPI: xgboost . Staženo: 1. srpna 2016.
  3. Balíček CRAN xgboost . Staženo: 1. srpna 2016.
  4. Julia výpis balíčků xgboost . Staženo: 1. srpna 2016.
  5. Modul CPAN AI::XGBoost . Staženo: 9. února 2020.
  6. Instalace XGBoost pro Anaconda ve Windows . Staženo: 1. srpna 2016.
  7. Instalace XGBoost na Mac OSX . Staženo: 1. srpna 2016.
  8. 1 2 XGBoost - vítězná řešení ML (neúplný seznam) . Staženo: 1. srpna 2016.
  9. Příběh a lekce za vývojem XGBoost . Staženo: 1. srpna 2016.
  10. Spolehlivé rozhraní Rabit Allreduce a Broadcast . Staženo: 1. srpna 2016.
  11. html XGBoost4J . Staženo: 1. srpna 2016.
  12. com/InAccel/xgboost XGBoost na FPGA . Staženo: 1. srpna 2019.
  13. Chen, Tianqi; Guestrin, Carlos (2016). Krishnapuram, Balaji; Shah, Mohák; Aggarwal, Charu C.; Shen, Dou; Rastogi, Rajeev, ed. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, San Francisco, CA, USA, 13. – 17. srpna 2016 . ACM. arXiv : 1603.02754 . DOI : 10.1145/2939672.2939785 . Neznámý parametr |редактор3-последний=( help ); Neznámý parametr |редактор3-первый=( help ); Neznámý parametr |страницы=( help ); Neznámý parametr |вклад=( help ); Chybí |last3=v seznamu editorů ( Nápověda v angličtině )
  14. Sagi, Omer; Rokach, Lior (2021). „Aproximace XGBoost pomocí interpretovatelného rozhodovacího stromu“. Informační vědy . 572 (2021): 522-542. DOI : 10.1016/j.ins.2021.05.055 .
  15. Gándhí, Rohith Gradient Boosting a XGBoost  . Střední (24. května 2019). Staženo: 4. ledna 2020.
  16. ↑ Posilovací algoritmus : XGBoost  . Towards Data Science (14. května 2017). Staženo: 4. ledna 2020.
  17. { Posilování stromu pomocí XGBoost – Proč XGBoost vyhrává soutěž o strojové učení „každý“?  (anglicky)  ? . Synchronizováno (22. října 2017). Staženo: 4. ledna 2020.
  18. Předchozí vítězové Ceny Johna Chamberse . Staženo: 1. srpna 2016.
  19. HEP meets ML Award . Staženo: 1. srpna 2016.