Vad är XGBoost-algoritm?

XGBoost eller Extreme Gradient boost är en maskininlärningsalgoritm som används för implementering av beslutsträd som ökar gradientökningen. Varför beslutsträd? När vi pratar om ostrukturerade data som bilder, ostrukturerade textdata etc., verkar ANN-modellerna (konstgjorda neurala nätverk) vara överst när vi försöker förutsäga. När vi pratar om strukturerade / semistrukturerade data, är beslutsträd för närvarande de bästa. XGBoost var i grund och botten utformad för att förbättra hastigheten och prestanda för maskininlärningsmodeller kraftigt och det tjänade syftet mycket bra.

Arbeta med XGBoost-algoritm

XGBoost har en trädinlärningsalgoritm såväl som den linjära modellinlärningen, och på grund av detta kan den göra parallellberäkning på en enda maskin.

Detta gör XGBoost-algoritmen tio gånger snabbare än någon av de befintliga gradientökningsalgoritmerna.

XGBoost och GBM: n (dvs. Gradient Boosting Machines) använder trädmetoder med hjälp av gradientnedstigningsarkitekturen.

Området där XGBoost lämnar de andra GBM: erna är området för optimering av system och förbättringar över algoritmerna.

Låt oss se dem i detalj:

Systemoptimering:

1. Träskärning - XGBoost-algoritmen använder den första djupmetoden till skillnad från stoppkriteriet för trädklyvning som används av GBMS som är girig till sin natur och det beror också på kriteriet för negativa förluster. I stället använder XGBoost maxdjupfunktionen / parametern och därmed beskär den trädet i en bakåtgående riktning.

2. Parallelisering - Processen för sekvensiell trädbyggnad utförs med hjälp av den parallelliserade implementeringen i XGBoost-algoritmen. Detta möjliggörs på grund av de yttre och inre slingorna som är utbytbara. Den yttre slingan listar bladnoderna på ett träd medan den inre slingan beräknar funktionerna. För att den yttre slingan ska starta måste den inre slingan vara klar. Denna omkopplingsprocess förbättrar algoritmens prestanda.

3. Hårdvaruoptimering - Hårdvaruoptimering beaktades också vid utformningen av XGBoost-algoritmen. Interna buffertar tilldelas för var och en av trådarna för att lagra gradientstatistiken.

Algoritmiska förbättringar:

  • Medvetenhet om Sparsity - XGBoost är känt för att hantera alla olika typer av sparsitymönster mycket effektivt. Denna algoritm lär sig boet som saknas värde genom att se träningsförlusten.
  • Regularisering - För att förhindra övermontering korrigerar det mer komplexa modeller genom att implementera både LASSO (även kallad L1) och Ridge-reglering (även kallad L2).
  • Korsvalidering - XGBoost-algoritmen har inbyggda korsvalideringsfunktioner som implementeras vid varje iteration i modellskapandet. Detta förhindrar behovet av att beräkna antalet ökar iterationer som behövs.
  • Distribuerad viktad kvantskiss - XGBoost-algoritmen använder den distribuerade viktade kvantilskissen för att få det optimala antalet delade punkter bland de vägda datasätten

Funktioner i XGBoost

Även om XGBoost var avsedd för att förbättra hastigheten och prestanda för maskininlärningsmodeller kraftigt, erbjuder den också ett stort antal avancerade funktioner.

A) Modelfunktioner

Funktioner som en sci-kit lär sig regularisering och implementering av R-språk stöds av XGBoost. De viktigaste gradientförstärkningsmetoderna som stöds är:

  • Stokastisk gradientökning - Kolumn, rad och kolumn per splitnivåer kan subprovas.
  • Gradient Boosting
  • Regularized Gradient Boosting - XGBoost korrigerar mer komplexa modeller genom att implementera både LASSO (även kallad L1) såväl som Ridge-regularisering (även kallad L2).

B) Systemfunktioner

Systemfunktionerna inkluderar:

1. Distribuerad datoranvändning - Denna funktion används för att utbilda mycket stora modeller genom att implementera ett kluster av maskiner.

2. Parallelisering - Under utbildningen används alla CPU-kärnor för parallellisering av trädkonstruktionen

3. Cache-optimering - Algoritmerna och datastrukturerna cachas för att utnyttja hårdvaran på bästa sätt.

4. Out of the Core Computing - För de datauppsättningar som inte passar in i minnet, innebär XGBoost kärnberäkningen.

C) Algoritmfunktioner

Ett av huvudmålen med XGBoost-algoritmen var att utnyttja alla tillgängliga resurser på bästa sätt. Några av de viktigaste algoritmiska funktionerna i XGBoost är:

  • Blockstruktur - Den här funktionen används för att stödja trädkonstruktion vid parallellisering.
  • Sparse Aware - När värdena saknas i datasatsen kommer den här funktionen automatiskt att ta hand om det.
  • Fortsatt träning - När modellen är redo med de nya data kan modellen förstärkas ytterligare genom att använda den här funktionen.

Varför använda XGBoost?

Det huvudsakliga syftet som XGBoost tjänar är:

  • Exekveringshastighet
  • Modellprestanda

Låt oss diskutera båda.

1. Utföringshastighet

När vi jämför XGBoost med andra gradientökningsalgoritmer, visar XGBoost sig vara riktigt snabb, ungefär tio gånger snabbare än andra implementationer.

Szilard Pafka utförde några experiment som var inriktade på att utvärdera exekveringshastigheten för olika slumpmässiga skogsimplementeringsalgoritmer. Nedan är en ögonblicksbild av resultaten från experimentet:

Det visade sig att XGBoost var den snabbaste. Mer läsning finns här

2. Modellprestanda

När vi pratar om ostrukturerade data som bilder, ostrukturerade textdata etc., verkar ANN-modellerna (konstgjorda neurala nätverk) vara överst när vi försöker förutsäga. Även om vi pratar om strukturerade / semistrukturerade data, är beslutsträd för närvarande de bästa och när de implementeras med XGBoost, kan ingen annan förstärkningsalgoritm slå detta nu.

Den algoritm som används av XGboost

XGBoost-algoritmen använder en gradientökande beslutsträdalgoritm.

Gradient boosting-metoden skapar nya modeller som gör uppgiften att förutsäga fel och rester av alla tidigare modeller, som sedan i sin tur läggs samman och sedan görs den slutliga förutsägelsen.

Slutsats: XGBoost-algoritm

I denna XGBoost-algoritm har vi lärt oss om XGBoost-algoritmen som används för maskininlärning. Sedan såg vi hur denna algoritm fungerar, dess huvudfunktioner och varför den är ett perfekt val för att implementera beslutshöjningar som ökar gradienten.

Rekommenderade artiklar

Detta har varit en guide till XGBoost Algoritm. Här diskuterade vi dess koncept, funktioner, användning för maskininlärning, arbete av en algoritm i XGBoost. Du kan också titta på följande artiklar för att lära dig mer -

  1. NLP i Python
  2. Strålspårningsalgoritm
  3. Digital signaturalgoritm
  4. Algoritmintervjufrågor
  5. Digital signaturkryptografi

Kategori: