XGBoost

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 1. juni 2022; verifikation kræver 1 redigering .
XGBoost
Type Maskinelæring
Udvikler XGBoost-bidragyderne
Skrevet i C++
Operativ system Linux , macOS , Windows
Første udgave 27. marts 2014  ( 2014-03-27 )
nyeste version 1.6.0 (15. april 2022 ) ( 2022-04-15 )
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] .

Historie

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] .

Funktionalitet

Nøgletræk ved XGBoost, der adskiller det fra andre gradientforstærkende algoritmer inkluderer: [15] [16] [17] .

Beskrivelse af algoritmen

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:

  1. Initialiser modellen med en konstant værdi:
  2. For m = 1 til M :
    1. Beregn "gradienter" og "hessians":
    2. Tilpas en basal/svag elev ved at bruge træningssættet ved at løse følgende optimeringsproblem:
    3. Modelopdatering:
  3. Resultat:

Priser

Noter

  1. Link til projektsiden .
  2. Python-pakkeindeks PYPI: xgboost . Hentet: 1. august 2016.
  3. CRAN-pakke xgboost . Hentet: 1. august 2016.
  4. Julia pakkefortegnelse xgboost . Hentet: 1. august 2016.
  5. CPAN-modul AI::XGBoost . Hentet: 9. februar 2020.
  6. Installation af XGBoost til Anaconda i Windows . Hentet: 1. august 2016.
  7. Installation af XGBoost på Mac OSX . Hentet: 1. august 2016.
  8. 1 2 XGBoost - ML vindende løsninger (ufuldstændig liste) . Hentet: 1. august 2016.
  9. Historie og lektioner bag udviklingen af ​​XGBoost . Hentet: 1. august 2016.
  10. Rabit - Reliable Allreduce og Broadcast Interface . Hentet: 1. august 2016.
  11. html XGBoost4J . Hentet: 1. august 2016.
  12. com/InAccel/xgboost XGBoost på FPGA'er . Hentet: 1. august 2019.
  13. Chen, Tianqi; Guestrin, Carlos (2016). Krishnapuram, Balaji; Shah, Mohak; Aggarwal, Charu C.; Shen, Dou; Rastogi, Rajeev, red. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, San Francisco, CA, USA, 13.-17. august 2016 . ACM. arXiv : 1603.02754 . DOI : 10.1145/2939672.2939785 . Ukendt parameter |редактор3-последний=( hjælp ); Ukendt parameter |редактор3-первый=( hjælp ); Ukendt parameter |страницы=( hjælp ); Ukendt parameter |вклад=( hjælp ); Mangler |last3=på redaktørlisten ( Hjælp på engelsk )
  14. Sagi, Omer; Rokach, Lior (2021). "Tilnærmelse af XGBoost med et fortolkbart beslutningstræ". Informationsvidenskab . 572 (2021): 522-542. DOI : 10.1016/j.ins.2021.05.055 .
  15. Gandhi, Rohith Gradient Boosting og XGBoost  . Medium (24. maj 2019). Hentet: 4. januar 2020.
  16. ↑ Boosting-algoritme : XGBoost  . På vej mod datavidenskab (14. maj 2017). Hentet: 4. januar 2020.
  17. { Træforøgelse med XGBoost - Hvorfor vinder XGBoost "hver" maskinlæringskonkurrence?  (engelsk)  ? . Synkroniseret (22. oktober 2017). Hentet: 4. januar 2020.
  18. Tidligere vindere af John Chambers Award . Hentet: 1. august 2016.
  19. HEP møder ML Award . Hentet: 1. august 2016.