XGBoost (eXtreme Gradient Boosting) blev udviklet af Tianqi Chen i 2014 og er i dag en af de mest udbredte machine learning-algoritmer til strukturerede data. Frameworket bygger på gradient boosting-princippet, men tilføjer en række optimeringer der gør det både hurtigere og mere præcist end tidligere implementeringer.
Kernen i gradient boosting er en enkel idé: byg modellen sekventielt, hvor hver nye model retter fejlene fra de foregående. Startpunktet er en simpel forudsigelse (ofte gennemsnittet af target-variablen). Herefter beregnes residualerne (forskellen mellem forudsigelse og faktisk værdi), og et nyt beslutningstræ trænes til at forudsige disse residualer. Processen gentages hundredvis eller tusindvis af gange, hvor hver iteration reducerer den samlede fejl.
Det der adskiller XGBoost fra klassisk gradient boosting er en række matematiske og tekniske optimeringer. Algoritmen bruger en anden ordens Taylor-approksimation af loss-funktionen, hvilket giver mere præcise gradient-estimater end klassisk gradient descent. Denne teknik gør det muligt at inkludere både første afledte (gradient) og anden afledte (hessian) i træningen.
Regularisering er indbygget direkte i loss-funktionen. XGBoost inkluderer både L1- og L2-regulariseringstermer der straffer komplekse modeller. Dette betyder at algoritmen aktivt modvirker overfitting under træningen, i modsætning til traditionelle beslutningstræer der først skal beskæres bagefter.
Split-finding-algoritmen er markant optimeret. I stedet for at teste alle mulige splits eksakt bruger XGBoost en approksimativ metode baseret på weighted quantile sketch. Denne teknik giver næsten samme præcision som eksakte splits, men er dramatisk hurtigere på store datasæt. Sparsity-aware split finding håndterer manglende værdier og sparse data automatisk uden brug for imputation.
Systemet er designet med hastighed for øje. Parallel træning på tværs af CPU-kerner, cache-optimeret memory access og out-of-core computation gør det muligt at træne på datasæt der er større end RAM. GPU-support via cuDF og Rapids accelererer træningen yderligere med op til 20 gange på moderne grafikkort.
Vigtige hyperparametre inkluderer learning_rate (typisk 0,01-0,3), n_estimators (antal boosting-runder, ofte 100-1000), max_depth (trædybde, typisk 3-10), subsample (andel af data pr. træ) og colsample_bytree (andel af features pr. træ). Early stopping bruger et valideringssæt til at afbryde træningen når modellen ikke længere forbedres.
XGBoost dominerer Kaggle-konkurrencer på strukturerede data. Fra 2015 til 2020 vandt XGBoost-baserede løsninger over halvdelen af alle konkurrencer med tabelbaserede data. Selvom LightGBM (Microsoft) og CatBoost (Yandex) er nyere konkurrenter med egne styrker, forbliver XGBoost det mest udbredte valg.
I industrien bruges XGBoost til kreditscoring, forsikringspremieberegning, click-through rate-forudsigelse i online reklame, kundelevetidsanalyse og churn-forudsigelse. JP Morgan, Amazon og Airbnb bruger alle XGBoost i produktion. Frameworket er tilgængeligt i Python, R, Java, Scala, C++ og Julia, hvilket sikrer bred integrationsmuligheder.
Fortolkelighed er en styrke ved XGBoost. Feature importance-plots viser hvilke variabler modellen vægter højest, og SHAP-værdier (SHapley Additive exPlanations) giver præcise forklaringer af individuelle forudsigelser. Disse værktøjer er kritiske i regulerede brancher som bank og forsikring hvor beslutninger skal kunne begrundes.
Sammenligning med konkurrenter viser XGBoost's styrker og svagheder. LightGBM fra Microsoft bruger leaf-wise træbygning i stedet for level-wise, hvilket giver hurtigere træning på store datasæt men risikerer overfitting på mindre datasæt. CatBoost fra Yandex håndterer kategoriske variabler nativt uden manuel encoding og bruger ordered boosting for at reducere target leakage. På benchmarks er de tre biblioteker typisk indenfor 1-2% af hinanden i præcision, og valget afhænger mere af dataset-karakteristika og team-erfaring end af algoritmisk overlegenhed.
Praktisk arbejdsproces med XGBoost følger et fast mønster. Data forberedes med håndtering af manglende værdier, encoding af kategoriske features og feature engineering. Baseline-modellen trænes med default hyperparametre for at etablere et udgangspunkt. Herefter tunes hyperparametrene enten manuelt med grid search, tilfældigt med random search, eller intelligent med Bayesian optimization via værktøjer som Optuna eller Hyperopt. Endeligt valideres modellen med cross-validation for at sikre robust generalisering.
Kombinationen med feature engineering er central for succes. Selvom XGBoost håndterer non-lineære sammenhænge og feature interaktioner automatisk, giver domænespecifikke features markant løft. I finans er dette lag-features (værdier fra tidligere perioder), rolling statistics (glidende gennemsnit og standardafvigelser) og interaction terms mellem korrelerede variabler. I e-commerce er det ofte user embeddings, item embeddings og session-baserede features. Kaggle-vindere bruger konsekvent 50-200 features hvor de fleste er manuelt konstruerede.
Deployment af XGBoost-modeller er relativt simpelt sammenlignet med deep learning. Modellerne kan gemmes i JSON- eller binary-format, indlæses i produktion via bibliotekets serving-utilities, og konverteres til ONNX for cross-platform inferens. Latency for enkelte forudsigelser er typisk under 1 millisekund, hvilket gør algoritmen egnet til real-time applikationer som online reklame og fraud-detektion hvor svartid er kritisk.
Begrænsninger og faldgruber ved XGBoost skal kendes. Algoritmen kræver typisk mere hyperparameter-tuning end Random Forest for at nå optimal præstation. Den kan overfitte på små datasæt hvis regularisering ikke er tilstrækkelig streng. På ustrukturerede data som tekst, billeder og lyd er XGBoost markant underlegen deep learning-modeller. Håndtering af meget høj-kardinalitets kategoriske features (over 100.000 unikke værdier) kræver særlig omhu, hvor target encoding eller frequency encoding ofte fungerer bedre end one-hot encoding. Class imbalance i klassifikationsproblemer bør adresseres via scale_pos_weight-parameteren eller through resampling-teknikker som SMOTE inden træning.