Hva er XGBoost-algoritme?

XGBoost eller Extreme Gradient boost er en maskinlæringsalgoritme som brukes til implementering av gradient boosting beslutningstrær. Hvorfor bestemme trær? Når vi snakker om ustrukturerte data som bilder, ustrukturerte tekstdata osv., Ser det ut til at ANN-modellene (kunstig nevralt nettverk) ligger øverst når vi prøver å forutsi. Når vi snakker om strukturerte / semistrukturerte data, er beslutningstrær for tiden de beste. XGBoost var i utgangspunktet designet for å forbedre hastigheten og ytelsen til maskinlæringsmodeller sterkt, og det tjente formålet veldig bra.

Arbeid med XGBoost algoritme

XGBoost har en treelæringsalgoritme så vel som den lineære modelllæringen, og på grunn av dette er den i stand til å gjøre parallellberegning på en enkelt maskin.

Dette gjør XGBoost-algoritmen 10 ganger raskere enn noen av de eksisterende gradientforsterkende algoritmene.

XGBoost og GBM-ene (dvs. Gradient Boosting Machines) bruker tremetoder ved å bruke gradient nedstigningsarkitekturen.

Området der XGBoost etterlater de andre GBM-ene er området med optimalisering og forbedring av systemet i forhold til algoritmene.

La oss se de detaljert:

Systemoptimalisering:

1. Trebeskjæring - XGBoost-algoritmen bruker den første dybden tilnærming i motsetning til stoppkriteriet for tresplitting brukt av GBMS som er grådig i sin natur, og det avhenger også av kriteriet for negativt tap. XGBoost bruker i stedet funksjonen / parameteren for maksimal dybde og beskjærer dermed treet i en retning bakover.

2. Parallellisering - Prosessen med sekvensiell trebygging utføres ved hjelp av den parallelliserte implementeringen i XGBoost-algoritmen. Dette er muliggjort på grunn av de ytre og indre løkkene som er utskiftbare. Den ytre sløyfen viser bladnodene til et tre mens den indre løkken beregner funksjonene. For at den ytre sløyfen skal starte, må den indre løkken fullføres. Denne bytteprosessen forbedrer ytelsen til algoritmen.

3. Maskinvareoptimalisering - Maskinvareoptimalisering ble også vurdert under utformingen av XGBoost-algoritmen. Interne buffere tildeles for hver av trådene for å lagre gradientstatistikken.

Algoritmiske forbedringer:

  • Bevissthet om sparsitet - XGBoost er kjent for å håndtere alle forskjellige typer sparsitetsmønstre veldig effektivt. Denne algoritmen lærer redet manglende verdi ved å se treningstapet.
  • Regularisering - For å forhindre overmontering korrigerer det mer komplekse modeller ved å implementere både LASSO (også kalt L1) og Ridge-regularisering (også kalt L2).
  • Kryssvalidering - XGBoost-algoritmen har innebygde kryssvalideringsfunksjoner som blir implementert ved hver iterasjon i modellopprettelsen. Dette forhindrer behovet for å beregne antall boostende iterasjoner som trengs.
  • Distribuert vektet kvanteskisse - XGBoost-algoritmen bruker den distribuerte vektede kvantilskissen for å få det optimale antall delte poeng blant de vektede datasettene

Funksjoner ved XGBoost

Selv om XGBoost var designet for å forbedre hastigheten og ytelsen til maskinlæringsmodeller i stor grad, tilbyr den også et godt antall avanserte funksjoner.

A) Modellfunksjoner

Funksjonene som for eksempel et sci-kit lærer regularisering og implementering av R-språk støttes av XGBoost. De viktigste gradient boosting metodene som støttes er:

  • Stokastisk gradientforsterking - Kolonne, rad og kolonne per splittnivå kan delprøves.
  • Gradient Boosting
  • Regularised Gradient Boosting - XGBoost korrigerer mer komplekse modeller ved å implementere både LASSO (også kalt L1) så vel som Ridge-regularisering (også kalt L2).

B) Systemfunksjoner

Systemfunksjonene inkluderer:

1. Distribuert databehandling - Denne funksjonen brukes til å trene veldig store modeller ved å implementere en klynge av maskiner.

2. Parallellisering - Under opplæringen brukes alle CPU-kjernene til parallellisering av trekonstruksjonen

3. Cacheoptimalisering - Algoritmer og datastrukturer bufres for å utnytte maskinvaren best mulig.

4. Out of the Core Computing - For datasettene som ikke passer inn i minnet, innebærer XGBoost kjerneberegningen.

C) Algoritmefunksjoner

Et av hovedmålene med XGBoost-algoritmen var å utnytte alle tilgjengelige ressurser best mulig. Noen av de viktigste algoritmiske funksjonene til XGBoost er:

  • Blokkestruktur - Denne funksjonen brukes til å støtte trekonstruksjon i parallellisering.
  • Sparse Aware - Når verdiene mangler i datasettet, vil denne funksjonen automatisk ta vare på den.
  • Fortsatt trening - Når modellen er klar med de nye dataene, kan modellen forbedres ytterligere ved å bruke denne funksjonen.

Hvorfor bruke XGBoost?

Hovedformålet som XGBoost tjener er:

  • Gjennomføringshastighet
  • Modellytelse

La oss diskutere begge.

1. Utføringshastighet

Når vi sammenligner XGBoost med andre gradient boosting algoritmer, viser XGBoost seg å være veldig rask, omtrent ti ganger raskere enn andre implementeringer.

Szilard Pafka utførte noen eksperimenter som var målrettet for å evaluere utføringshastigheten til forskjellige tilfeldige skogimplementeringsalgoritmer. Nedenfor er et øyeblikksbilde av resultatene fra eksperimentet:

Det viste seg at XGBoost var den raskeste. Mer lesing finner du her

2. Modellytelse

Når vi snakker om ustrukturerte data som bilder, ustrukturerte tekstdata osv., Ser det ut til at ANN-modellene (kunstig nevralt nettverk) ligger øverst når vi prøver å forutsi. Selv om når vi snakker om strukturerte / semistrukturerte data, er beslutnings-trær for tiden de beste, og når de implementeres ved bruk av XGBoost, kan ingen andre boostingalgoritmer slå dette nå.

Algoritmen brukt av XGboost

XGBoost-algoritmen bruker algoritmen for gradient boosting Decision Tree.

Gradient boosting-metoden skaper nye modeller som gjør oppgaven med å forutsi feilene og restene av alle de tidligere modellene, som deretter på sin side legges sammen og deretter blir den endelige prediksjonen gjort.

Konklusjon: XGBoost-algoritme

I denne XGBoost-algoritmen har vi lært om XGBoost-algoritmen som brukes til maskinlæring. Så så vi bruken av denne algoritmen, dens viktigste funksjoner og hvorfor den er et perfekt valg for å implementere gradientforsterke avgjørelsetrær.

Anbefalte artikler

Dette har vært en guide til XGBoost algoritme. Her diskuterte vi dets konsept, funksjoner, bruk for maskinlæring, arbeid av en algoritme i XGBoost. Du kan også se på følgende artikler for å lære mer -

  1. NLP i Python
  2. Ray Tracing Algoritm
  3. Digital signaturalgoritme
  4. Spørsmål om algoritmeintervju
  5. Kryptografi av digital signatur

Kategori: