Kunddata är full av kategoriska variabler med många nivåer. Postnummer, produktkategori, hänvisande kanal, kundsegment.
Standardgreppet är one-hot-kodning, som förvandlar en kolumn med tvåtusen postnummer till tvåtusen kolumner. Det blir minneskrävande och trädmodeller får svårt att hitta meningsfulla uppdelningar när varje kolumn nästan alltid är noll.
CatBoost löser det genom att koda kategorierna som statistik över målvariabeln, beräknad på ett sätt som undviker att läcka information från raden själv.
Varför det ofta blir förstahandsvalet
Kategoriska variabler direkt. Peka ut vilka kolumner som är kategoriska och biblioteket sköter resten.
Bra utan justering. Standardinställningarna är ovanligt väl valda. Skillnaden mellan otrimmad CatBoost och noggrant trimmad LightGBM är ofta mindre än skillnaden mellan att ha och inte ha rätt variabler.
Motverkar läckage inbyggt. Kodningen av kategorier beräknas ordnad, så att en rad aldrig påverkar sin egen kodning. Det är den fälla man annars lätt går i när man kodar kategorier med målmedelvärden för hand. Se dataläckage.
Nackdelar
Långsammare träning än LightGBM på stora datamängder. På tiotals miljoner rader märks det tydligt.
Modellfilerna blir stora. Det kan spela roll i miljöer med begränsat minne.
Och som all gradient boosting kan den inte extrapolera utanför observerade värden. Det gör den olämplig för prognoser med tydlig trend, om inte trenden hanteras separat.
När något annat är bättre
Behövs tolkbara koefficienter eller formell osäkerhet är GLM rätt val. Är datamängden liten överanpassar boosting lätt. Och ska sannolikheterna räknas vidare behöver de nästan alltid kalibreras efteråt.