XGBoost | |
---|---|
Type | Maskinelæring |
Udvikler | XGBoost-bidragyderne |
Skrevet i | C++ |
Operativ system | Linux , macOS , Windows |
Første udgave | 27. marts 2014 |
nyeste version | 1.6.0 (15. april 2022 ) |
Licens | Apache-licens 2.0 |
Internet side | xgboost.ai |
XGBoost [1] (eXtreme Gradient Boosting) er et open source-bibliotek , der bruges i maskinlæring , der giver funktionalitet til løsning af problemer relateret til gradientboosting - regularisering . Biblioteket understøttes af programmeringssprogene C++ , Java , Python [2] , R [3] , Julia [4] , Perl [5] og Scala . Biblioteket fungerer under Linux , Windows [6] og macOS [7 ] . Det kører både på en enkelt maskine og på Apache Hadoop , Apache Spark og Apache Flink distribuerede behandlingssystemer .
For nylig har dette bibliotek vundet meget popularitet og opmærksomhed som valget af mange vindende hold i maskinlæringskonkurrencer [8] .
XGBoost startede oprindeligt som et forskningsprojekt af Cheng Tianqi [9] som en del af gruppen Distributed (Deep) Machine Learning Community (DMLC). Det startede oprindeligt som et konsolprogram, der kunne konfigureres ved hjælp af libsvm- konfigurationsfilen . XGBoost blev almindeligt kendt i maskinlæringskonkurrencekredse efter dets brug til at løse vinderen af Higgs Machine Learning Challenge . Pakker til Python og R blev oprettet kort efter, og XGBoost har nu pakkeimplementeringer til Java, Scala , Julia , Perl og andre sprog. Dette gjorde det muligt for flere udviklere at tilslutte sig biblioteket og bidrog til dets popularitet blandt Kaggle -samfundet , hvor det blev brugt til at være vært for et stort antal konkurrencer [8] .
XGBoost blev hurtigt integreret med en række andre pakker, hvilket gjorde det nemmere at bruge i deres respektive fællesskaber. Det er nu integreret i scikit-learn for Python -brugere og i caret - pakken for R -brugere . Det kan også integreres i Data Flow-frameworks såsom Apache Spark , Apache Hadoop og Apache Flink ved hjælp af det abstrakte Rabit [10] og XGBoost4J [11] . XGBoost er også tilgængelig på OpenCL til FPGA'er [12] . En effektiv, skalerbar implementering af XGBoost er blevet udgivet af Cheng Tianqi og Carlos Gustrin [13] .
Selvom XGBoost-modellen ofte opnår højere nøjagtighed end et enkelt beslutningstræ, ofrer den beslutningstræernes iboende fortolkning. For eksempel er det trivielt og selvforklarende at spore den vej, som et beslutningstræ tager for at træffe en beslutning, men det er meget vanskeligere at spore stierne for hundreder eller tusinder af træer. For at opnå ydeevne og fortolkning tillader nogle modelkomprimeringsteknikker, at XGBoost konverteres til et enkelt "genfødt" beslutningstræ, der tilnærmer den samme beslutningsfunktion [14] .
Nøgletræk ved XGBoost, der adskiller det fra andre gradientforstærkende algoritmer inkluderer: [15] [16] [17] .
XGBoost bruger Newton-Raphson-metoden i funktionsrum, i modsætning til gradientboosting , der fungerer som gradientnedstigning i funktionsrum, bruger tabsfunktionen en andenordens Taylor-serie til at relatere til Newton-Raphson-metoden.
Generel visning af den uregulerede XGBoost-algoritme:
Input: træningssæt , differentierbar tabsfunktion , antal svage elever og indlæringshastighed .
Algoritme: