XGBoost- Wat is het?

XGBoost is een ensemble beslissingsboom-gebaseerd machinaal leeralgoritme en maakt gebruik van een gradiëntversterkend raamwerk. Kunstmatige neurale netwerken presteren meestal beter dan andere raamwerken of algoritmen bij het voorspellen van problemen met de tekst, afbeeldingen en andere ongestructureerde gegevens. Dingen zijn enorm verschillend als het gaat om middelgrote of kleine tabellarische/gestructureerde data. Waarom? Omdat algoritmen gebaseerd op beslisbomen aantoonbaar de beste oplossing zijn.

Het XGBoost-algoritme is het resultaat van een onderzoeksproject aan de Universiteit van Washington. Carlos Guestrin en Tianqi Chen introduceerden hun paper op de SIGKDD-conferentie van 2016. Sindsdien is XGBoost een gerenommeerd algoritme geworden dat een revolutie teweeg heeft gebracht in het machineleerlandschap.

Sinds de introductie heeft dit algoritme veel credits gekregen, waaronder verschillende Kaggle-wedstrijden. Het heeft ook erkenning gekregen voor de invloed die het heeft op verschillende state-of-the-art toepassingen in de industrie. Een enorme groep datawetenschappers draagt dan ook bij aan verschillende XGBoost-gerelateerde open-sourceprojecten. GitHub heeft meer dan driehonderd bijdragers, en zesendertighonderd committeert zich tot nu toe. Leer hoe dit algoritme zich onderscheidt van andere.

Hoe XGBoost zich onderscheidt

Een breed scala aan toepassingen

Met XGBoost kunt u een breed scala aan toepassingen gebruiken voor het oplossen van door de gebruiker gedefinieerde voorspellings-, rangschikkings-, classificatie- en regressieproblemen.

Gemakkelijk draagbaar

Het werkt soepel op OSX, Linux en Windows.


Verscheidenheid aan talen

XGBoost ondersteunt de meeste programmeertalen, waaronder, Julia, Scala, Java, R, Python, C++.

Integratie met Cloud

Het XGBoost-machine-leeralgoritme ondersteunt garenclusters, azuurblauw en AWS. Het werkt ook ongelooflijk goed met andere Spark, Flink en verschillende ecosystemen.

Het bouwen van een XG Boost Intuïtie

Een van de redenen waarom beslisbomen zo populair zijn, is dat het visualiseren ervan vrij eenvoudig is in hun meest basale vorm. Hun algoritmen zijn ook gemakkelijk te interpreteren, maar het creëren van intuïtie voor de komende generatie algoritmen (op basis van bomen) kan een beetje ingewikkeld zijn. Hier is een analogie om de boomgebaseerde algoritmen en hun evolutie te begrijpen.

Zie jezelf als een aanwervende manager, die met verschillende hooggekwalificeerde kandidaten praat. Elke stap in de evolutie van het boomalgoritme is als een deel van het interviewproces.

Beslissingsboom

Elke aanwervende manager volgt een aantal criteria, waaronder ervaring, opleiding en sollicitatiegesprekken. Het zou eerlijk zijn om een beslisboom te vergelijken met een aanwervende manager die kandidaten ondervraagt op basis van haar of zijn criteria.

Zakjesmanager

Meerdere mensen hebben nu de leiding over de interviews en iedereen in het panel heeft een stem. Bootstrap aggregeren of bagging houdt in dat de input van elke interviewer wordt samengevoegd voor een sluitende beslissing met behulp van een onbevooroordeeld stemproces.

Willekeurig bos

Het Willekeurig Woud is een zakjesalgoritme dat willekeurig een subcomponent van functies selecteert. Om het anders te zeggen, elke interviewer zal de kandidaat testen op basis van willekeurig gekozen kwalificaties (bijvoorbeeld technische interviews om programmeervaardigheden te testen).

Boosting

Boosting is een alternatieve procedure waarbij elke interviewer de evaluatiecriteria wijzigt in functie van de feedback die hij van vorige interviewers ontvangt. Het zorgt voor een zeer efficiënt interviewproces omdat het helpt om krachtigere evaluatieprocedures in te zetten.

Gradiëntversterking

Het gradiëntversterkende proces minimaliseert fouten door het gradiëntdalingsalgoritme. Strategieadviesbureaus gebruiken bijvoorbeeld case interviews om kandidaten te elimineren die niet zo gekwalificeerd zijn als andere kandidaten.

XGBoost

XGBoosting is een aanzienlijk efficiëntere versie van gradiëntversterking, vandaar de naam: Extreme Gradient Boosting. Het is een ideale combinatie van hardware- en software-optimalisatietechnieken om superieure resultaten te bereiken door in korte tijd minimale computerhulpmiddelen te gebruiken.


Wat is het geheim achter XGBoost’s Excellent Performance?


Gradient Boosting machines en XGBoost zijn ensemble boom methoden. Ze gebruiken de gradiëntafdalingsarchitectuur om het principe toe te passen om arme leerlingen te stimuleren (CART’s.) Extreme Gradient Boosts verbetert het GBM-raamwerk aanzienlijk door het implementeren van algoritmische verbeteringen en systeemoptimalisatie.

Systeemoptimalisatie

Parallelisatie

XGBoost maakt gebruik van een parallelle implementatie om het sequentiële proces van boomopbouw te starten. Het is mogelijk vanwege de uitwisselbare eigenschap van lussen die gebruikt worden voor het creëren van basisleerlingen. De binnenste lus telt de kenmerken, terwijl de buitenste lus de bladknopen van een boom identificeert. Lusnesten beperken de parallellisatie omdat het onmogelijk is om de buitenste lus te starten zonder de binnenste lus af te werken.

Dus, om een betere looptijd te bereiken, wisselt de volgorde van de lussen met behulp van initialisatie met een globale scan van sorteringen en instanties die gebruik maken van parallelle draden. De schakelaar zal de algoritmische prestaties aanzienlijk verbeteren door de parallellisatieoverhead te compenseren.

Boomsnoeien

XGBoost maakt gebruik van ‘max_depth’ en negeert het criterium om bomen eerst achteruit te snoeien. De aanpak is uitstekend voor het verhogen van de rekenprestaties.

Hardware optimalisatie

Het algoritme voor hardware-optimalisatie maakt efficiënt gebruik van hardwarebronnen. Het is mogelijk door het toewijzen van interne buffers in elke draad voor het opslaan van gradiëntstatistieken. Andere verbeteringen zoals “out of core” computing gebruiken schijfruimte en verwerken dataframes die niet in het geheugen passen.

Algoritmische verbeteringen

Regularisatie

Het helpt complexe modellen te bestraffen met behulp van Ridge en LASSO om overfitting te voorkomen.

Cross-Validatie

Het XGBoost machine leeralgoritme heeft een cross-validatie methode geïmplementeerd in elke iteratie. Het elimineert de noodzaak om deze zoekopdracht uit te werken en de precieze hoeveelheid boost iteraties te specificeren die nodig zijn per run.

Sparsity-bewustzijn

XGBoost voegt weinig ruimte toe door het automatisch begrijpen van de essentiële waarde en gaat buitengewoon efficiënt om met verschillende spaarpatronen.

Gewogen Kwantitatieve Schets

Extreme Gradient boost implementeert het gedistribueerde schetsalgoritme om de ideale split pints te vinden in gewogen datasets.

XGBoost zou de toekomst van machinaal leren kunnen zijn

Datawetenschappers moeten elk algoritme testen om de beste optie te identificeren. Bovendien is het kiezen van het juiste algoritme, hoewel uitstekend, niet genoeg. Het selecteren van de juiste configuratie voor een bepaalde dataset is ook cruciaal. Bovendien moet je rekening houden met verschillende elementen om het beste algoritme te kiezen. Besteed aandacht aan zaken als implementatie, verklaarbaarheid en rekenkundige complexiteit om het algoritme te bepalen dat het beste bij u past.

Tot slot is machinaal leren een enorme bron van informatie, en u zult tonnen alternatieven vinden voor Extreme Gradient Boost. Cat Boost en Light GBM zijn enkele recente alternatieven die indrukwekkende resultaten opleveren. Dat gezegd hebbende, is XGBoost de beste keuze als het gaat om verklaarbaarheid, pragmatisme, flexibiliteit, prestaties en tal van andere zaken. Verwacht dat dit machinale leeralgoritme aan de top blijft tot er een waardige uitdager langskomt en de boel door elkaar schudt.