Gå til indhold
atlas

Gradient boosting

Også kendt som: gradient boosted trees, GBM, XGBoost

En metode, der tilføjer små beslutningstræer ét ad gangen, hvor hvert nyt træ bygges til at rette de fejl, de tidligere træer stadig laver.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En måde at bygge en stærk model af mange svage på, som regel små beslutningstræer, hvor hvert nyt træ trænes på det, den nuværende model stadig tager fejl af målt med en tabsfunktion, og lægges til med en lille vægt.

Forklaret enkelt

Som et hold redaktører, der sender en tekst videre. Den første retter de værste fejl, den næste retter det, den første overså, og efter mange runder er der meget få fejl tilbage.

I praksis

En dansk netbutik forudsiger, hvilke ordrer der bliver sendt retur, ud fra varen, prisen, kundens historik og tidspunktet, og har fundet det mere præcist end de andre metoder, den har prøvet.

Hvorfor det betyder noget

Det er ofte det mest præcise valg til data i tabeller som bank-, salgs- eller sundhedsdata og vinder mange offentlige konkurrencer der, ofte foran deep learning.

Teknisk uddybning

Boosting bygger en additiv model F(x) = summen af nu * h_m(x) trin for trin. Friedman (2001, Annals of Statistics) formulerede det som gradientnedstigning i funktionsrummet: I hvert trin tilpasses en ny svag model h_m, typisk et lille regressionstræ, til den negative gradient af tabet med hensyn til de nuværende forudsigelser (pseudo-residualerne) og lægges til med en skrumpningsfaktor, læringsraten nu. Ved kvadreret fejl er pseudo-residualerne blot residualerne; andre differentiable tabsfunktioner giver log-loss til klassifikation eller Huber- og kvantiltab til robust regression. AdaBoost (Freund og Schapire, 1997) er en tidligere boostingmetode, der viser sig at være et specialtilfælde med eksponentielt tab.

De vigtigste hyperparametre påvirker hinanden: En mindre læringsrate kræver flere træer, men generaliserer som regel bedre; træernes dybde (ofte 3 til 8 niveauer) styrer, hvor mange features der kan spille sammen; og udvælgelse af rækker eller kolonner pr. træ (stochastic gradient boosting, Friedman 2002) virker regulariserende. Fordi hvert træ retter de foregående, mindsker boosting især bias og kan, i modsætning til en random forest, overtilpasse, når der tilføjes flere træer, så antallet af runder fastsættes med early stopping på et valideringssæt.

Moderne biblioteker har gjort metoden hurtig og dominerende på tabeldata. XGBoost (Chen og Guestrin, KDD 2016) tilføjede en andenordens approksimation af tabet, eksplicitte L1- og L2-straffe på bladvægte, sparsity-bevidst søgning efter opdelinger og cachebevidst parallel opbygning. LightGBM (Ke m.fl., 2017) bruger histogrambaserede opdelinger og bladvis vækst, og CatBoost (Prokhorenkova m.fl., 2018) bruger ordered boosting og indbygget håndtering af kategoriske features. scikit-learn tilbyder HistGradientBoostingClassifier og -Regressor i samme histogramstil.

Benchmarks som Grinsztajn m.fl. (2022) fandt, at træbaserede ensembler stadig slår deep learning på typiske mellemstore tabeldatasæt. Prisen er sekventiel træning, der kun kan paralleliseres inden for et træ, mere følsom tuning end random forests og forudsigelser, der ikke kan ekstrapolere ud over det interval, der blev set under træningen.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Træningsdata
  2. →Feature (inputvariabel)
  3. →Maskinlæring
  4. →Beslutningstræ
  5. →Tabsfunktion (loss function)
  6. →Gradient boosting

Relationer

Alternativ til
Random forest
Bruges sammen med
Feature engineering

Kilder og videre læsning

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.