maskinintelligens.se

Metod / Gradient boosting

Gradient boosting

Gradient boosting bygger många små beslutsträd i följd, där varje träd korrigerar föregåendes fel. På tabelldata är det fortfarande den metod som oftast ger bäst träffsäkerhet, och den kräver mindre förbearbetning än nästan allt annat.

För data som ligger i tabeller — kunder som rader, egenskaper som kolumner — vinner gradient boosting fortfarande. Neurala nät har inte tagit över den domänen, trots många försök och trots vad allmändebatten kan ge intryck av.

Metoden bygger träd i följd. Varje nytt träd tränas på det föregående gjorde fel, och summan av många små korrigeringar blir en stark modell.

Varför det fungerar så bra

Icke-linjäriteter och samspel gratis. Träd delar upp datan i intervall och fångar automatiskt att effekten av en variabel beror på en annan.

Robust mot skalor och extremvärden. Ingen normalisering behövs. En order på fyra miljoner hamnar bara i den översta grenen.

Saknade värden hanteras direkt. De flesta implementationer lär sig vilken gren ett saknat värde ska gå till. Det slår ofta att fylla i ett medelvärde.

Var det inte är rätt val

När koefficienter ska tolkas. Vid elasticitetsskattning vill man veta hur mycket, med osäkerhet. En GLM svarar på det direkt.

När data är liten. Med några hundra rader överanpassar boosting lätt, och en enklare modell generaliserar bättre.

När osäkerhet är hela poängen. Boosting ger en punktskattning. Intervall kräver tillägg som kvantilregression eller konform prediktion.

När extrapolering krävs. Träd kan inte förutsäga utanför det intervall de sett. Vid stigande trend i en tidsserie planar prognosen ut vid det högsta historiska värdet. Det är ett tyst och allvarligt fel.

Den sista är värd att stryka under, eftersom den drabbar prognoser och sällan syns i utvärderingen om testperioden råkar ligga inom det historiska spannet.

Val av implementation

CatBoost hanterar kategoriska variabler bäst och kräver minst justering. LightGBM är snabbast på stora datamängder. XGBoost är mest etablerat, har bredast dokumentation och finns inbyggt i de flesta molnplattformar.

Skillnaden i träffsäkerhet mellan dem är oftast liten. Skillnaden mot en dåligt vald utfallsfördelning eller ett felaktigt backtest är stor. Prioritera därefter.