Hvad er XGBoost-algoritme?

XGBoost eller Extreme Gradient boost er en maskinlæringsalgoritme, der bruges til implementering af gradient boosting beslutningstræer. Hvorfor beslutte træer? Når vi taler om ustrukturerede data som billeder, ustrukturerede tekstdata osv., Synes ANN-modellerne (kunstigt neuralt netværk) at være øverst, når vi prøver at forudsige. Mens vi snakker om strukturerede / semistrukturerede data, er beslutningstræer i øjeblikket de bedste. XGBoost var dybest set designet til at forbedre hastigheden og ydeevnen for maskinlæringsmodeller meget, og det tjente formålet meget godt.

Arbejde med XGBoost-algoritme

XGBoost har en trælæringsalgoritme såvel som den lineære modelindlæring, og på grund af dette er den i stand til at udføre parallel beregning på den enkelte maskine.

Dette gør XGBoost-algoritmen 10 gange hurtigere end nogen af ​​de eksisterende gradient-boosting-algoritmer.

XGBoost og GBM’erne (dvs. gradient Boosting Machines) bruger træmetoder ved hjælp af gradientafstigningsarkitekturen.

Området, hvor XGBoost efterlader de andre GBM'er, er området med systemoptimering og forbedringer i forhold til algoritmerne.

Lad os se dem detaljeret:

Systemoptimering:

1. Træbeskæring - XGBoost-algoritmen bruger den dybde-første tilgang i modsætning til stopkriteriet for træopdeling, der bruges af GBMS, som er grådig i naturen, og det afhænger også af kriteriet for negativt tab. XGBoost bruger i stedet funktionen / parameteren for maksimal dybde og beskær det derfor træet i en bagudgående retning.

2. Parallelisering - Processen med sekventiel træbygning udføres ved hjælp af den paralleliserede implementering i XGBoost-algoritmen. Dette muliggøres på grund af de ydre og indvendige sløjfer, der kan udskiftes. Den ydre sløjfe viser bladets knudepunkter på et træ, mens den inderste sløjfe beregner funktionerne. For at den ydre sløjfe skal starte, skal den indvendige sløjfe også være afsluttet. Denne skifteproces forbedrer algoritmens ydelse.

3. Hardwareoptimering - Hardwareoptimering blev også overvejet under designet af XGBoost-algoritmen. Interne buffere er tildelt for hver af trådene til lagring af gradientstatistikken.

Algoritmiske forbedringer:

  • Bevidsthed om sparsitet - XGBoost er kendt for at håndtere alle forskellige typer sparsitetsmønstre meget effektivt. Denne algoritme lærer redets manglende værdi ved at se træningstabet.
  • Regularisering - For at forhindre overmontering korrigerer det mere komplekse modeller ved at implementere både LASSO (også kaldet L1) og Ridge-regulering (også kaldet L2).
  • Krydsvalidering - XGBoost-algoritmen har indbyggede krydsvalideringsfunktioner, der implementeres ved hver iteration i modeloprettelsen. Dette forhindrer behovet for at beregne antallet af nødvendige boost-iterationer.
  • Distribueret vægtet kvanteskit - XGBoost-algoritmen bruger den distribuerede vægtede kvantilskitse for at få det optimale antal splitpunkter blandt de vægtede datasæt

Funktioner ved XGBoost

Selvom XGBoost var designet til at forbedre hastigheden og ydeevnen i maskinindlæringsmodeller i høj grad, tilbyder den også et godt antal avancerede funktioner.

A) Modelfunktioner

Funktionerne som f.eks. Et sci-kit-læringsregularisering og implementering af R-sprog understøttes af XGBoost. De vigtigste gradient boosting metoder, der understøttes, er:

  • Stokastisk gradientforøgelse - Kolonne, række og søjle pr. Splitniveauer kan undersamples.
  • Gradient Boosting
  • Regulariseret gradientforstærkning - XGBoost korrigerer mere komplekse modeller ved at implementere både LASSO (også kaldet L1) såvel som Ridge-regularisering (også kaldet L2).

B) Systemfunktioner

Systemfunktionerne inkluderer:

1. Distribueret computing - Denne funktion bruges til at træne meget store modeller ved at implementere en klynge af maskiner.

2. Parallelisering - Under træningen bruges alle CPU-kerner til parallelisering af trækonstruktionen

3. Cacheoptimering - Algoritmer og datastrukturer cachelagres for at udnytte hardwaren bedst muligt.

4. Out of the Core Computing - For de datasæt, der ikke passer ind i hukommelsen, indebærer XGBoost kernecomputeren.

C) Algoritmefunktioner

Et af hovedmålene med XGBoost-algoritmen var at udnytte alle tilgængelige ressourcer bedst muligt. Nogle af de vigtigste algoritmiske træk ved XGBoost er:

  • Blokstruktur - Denne funktion bruges til at understøtte trækonstruktion i parallelisering.
  • Sparse Aware - Når værdierne mangler i datasættet, vil denne funktion automatisk tage sig af det.
  • Fortsat træning - Når modellen er klar med de nye data, kan modellen forbedres yderligere ved hjælp af denne funktion.

Hvorfor bruge XGBoost?

Det vigtigste formål, som XGBoost tjener, er:

  • Udførelseshastighed
  • Modelydelse

Lad os diskutere begge.

1. Udførelseshastighed

Når vi sammenligner XGBoost med andre gradient boosting algoritmer, viser det sig at XGBoost er virkelig hurtig, cirka 10 gange hurtigere end andre implementeringer.

Szilard Pafka udførte nogle eksperimenter, der var målrettet til at evaluere eksekveringshastigheden af ​​forskellige tilfældige skovimplementeringsalgoritmer. Nedenfor er et snapshot af resultaterne af eksperimentet:

Det viste sig, at XGBoost var den hurtigste. Mere læsning kan findes her

2. Modelydelse

Når vi taler om ustrukturerede data som billeder, ustrukturerede tekstdata osv., Synes ANN-modellerne (kunstigt neuralt netværk) at være øverst, når vi prøver at forudsige. Selvom når vi taler om strukturerede / semistrukturerede data, er beslutningstræer i øjeblikket de bedste, og når de implementeres ved hjælp af XGBoost, kan ingen andre boostende algoritmer slå dette lige nu.

Algoritmen brugt af XGboost

XGBoost-algoritmen bruger den gradient boosting beslutningstræealgoritme.

Gradient boosting-metoden skaber nye modeller, der udfører opgaven med at forudsige fejlene og resterne af alle de tidligere modeller, som derefter igen tilføjes sammen, og derefter foretages den endelige forudsigelse.

Konklusion: XGBoost-algoritme

I denne XGBoost-algoritme har vi lært om XGBoost-algoritmen, der bruges til maskinlæring. Derefter så vi brugen af ​​denne algoritme, dens vigtigste funktioner, og hvorfor den er et perfekt valg til implementering af gradient boosting beslutningstræer.

Anbefalede artikler

Dette har været en guide til XGBoost-algoritme. Her drøftede vi dens koncept, funktioner, brug til maskinlæring, arbejde med en algoritme i XGBoost. Du kan også se på de følgende artikler for at lære mere -

  1. NLP i Python
  2. Strålesporingsalgoritme
  3. Digital signaturalgoritme
  4. Spørgsmål til algoritmeintervju
  5. Digital signatur kryptografi

Kategori: