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 |
Nejnovější verze | 1.6.0 (15. dubna 2022 ) |
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] .
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] .
Mezi klíčové vlastnosti XGBoost, které jej odlišují od jiných algoritmů zesílení gradientu, patří: [15] [16] [17] .
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: