LightGBM og CatBoost
Hvorfor LightGBM er raskere, histogrambasert splitting og CatBoost for kategoriske egenskaper.
LightGBM og CatBoost er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Utover XGBoost
XGBoost er kraftig, men kan være tregt på svært store datasett. LightGBM og CatBoost er nyere biblioteker for gradient boosting som gir høyere hastighet og håndterer kategoriske data bedre.
Histogram-baserte splitt
LightGBM grupperer kontinuerlige egenskaper i diskrete intervaller (et histogram) før det finner splittpunkter. Dette gjør det mye raskere å finne splittpunkter og bruker mindre minne enn den eksakte metoden.
Bladvis trevekst
I motsetning til nivåvis vekst bygger LightGBM trær bladvis: det deler først bladet med størst tapsreduksjon. Dette konvergerer raskere, men kan føre til overtilpasning, så dette styres med num_leaves.
LGBMClassifier og num_leaves
num_leaves er LightGBMs viktigste parameter for kompleksitet. Større verdier øker nøyaktigheten, men også risikoen for overtilpasning. En tommelfingerregel er å holde num_leaves < 2^max_depth.
from lightgbm import LGBMClassifier
model = LGBMClassifier(
n_estimators=300,
num_leaves=31,
learning_rate=0.05,
random_state=0,
)
model.fit(Xtr, ytr)
print(model.score(Xte, yte))LightGBMs hastighetsfordeler
Takket være histograminndeling, bladvis vekst og delutvalg av egenskaper og data trener LightGBM merkbart raskere enn XGBoost på store datasett, ofte med tilsvarende nøyaktighet.
from lightgbm import LGBMClassifier
model = LGBMClassifier(
n_estimators=1000,
num_leaves=63,
learning_rate=0.03,
feature_fraction=0.8,
bagging_fraction=0.8,
)Tidlig stopp i LightGBM
LightGBM støtter tidlig stopp via callback-funksjoner. Angi et evalueringssett og en early_stopping-callback for å stoppe når metrikken flater ut.
import lightgbm as lgb
from lightgbm import LGBMClassifier
model = LGBMClassifier(n_estimators=2000, learning_rate=0.03)
model.fit(
Xtr, ytr,
eval_set=[(Xte, yte)],
callbacks=[lgb.early_stopping(50)],
)CatBoost og kategoriske egenskaper
CatBoost utmerker seg med kategoriske data. De rå kategoriske kolonnene sendes direkte inn via cat_features, uten behov for manuell koding.
Internt bruker det ordnet målstatistikk for å unngå mållekkasje.
from catboost import CatBoostClassifier
model = CatBoostClassifier(
iterations=500,
learning_rate=0.05,
depth=6,
verbose=False,
)
model.fit(Xtr, ytr, cat_features=[0, 3, 5])Hvorfor det er kraftig å slippe koding
Med andre biblioteker må kategorier one-hot-kodes eller label-kodes, noe som kan føre til eksplosiv dimensjonalitet eller mållekkasje. CatBoost håndterer dette internt med ordnet boosting, noe som reduserer overtilpasning på kategoriske egenskaper.
Viktige CatBoost-parametere
CatBoost bruker iterations (som n_estimators), learning_rate og depth (det bygger symmetriske trær). Det fungerer ofte godt med minimalt behov for justering.
from catboost import CatBoostClassifier
model = CatBoostClassifier(
iterations=1000,
learning_rate=0.03,
depth=8,
l2_leaf_reg=3.0,
verbose=100,
)Hastighetssammenligning
Generelle retningslinjer:
- LightGBM er vanligvis raskest på store numeriske datasett
- CatBoost er best når det finnes mange kategoriske egenskaper, og krever mindre justering
- XGBoost er modent, robust og har gode standardinnstillinger
Sammenlign alle tre på dataene; resultatene varierer med problemet.
Velge bibliotek
Hvis dataene har mange kategoriske egenskaper, bør du starte med CatBoost. For enorme numeriske tabeller og høy hastighet bør du velge LightGBM. For en velprøvd grunnmodell bør du velge XGBoost. Alle tre bruker gradient boosting under panseret, så konseptene kan overføres.
Hurtigsjekk
Test kunnskapen om biblioteker for gradient boosting.
Oppsummering
Oppsummering: LightGBM bruker histogrambasert, bladvis vekst styrt av num_leaves for høy hastighet på store numeriske datasett. CatBoost håndterer kategoriske egenskaper innebygd via cat_features, uten koding. Begge er, sammen med XGBoost, varianter av gradient boosting. Sammenlign modellene for å velge; bruk CatBoost for kategoriske data og LightGBM for hastighet.
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 53
- Leksjoner
- 225
Ofte stilte spørsmål
Er leksjonen «LightGBM og CatBoost» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «LightGBM og CatBoost», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hva lærer jeg i «LightGBM og CatBoost»?
Hvorfor LightGBM er raskere, histogrambasert splitting og CatBoost for kategoriske egenskaper. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Lær AI med Python?
Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «LightGBM og CatBoost»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?
Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Beslutningstrær: teori og implementasjon
- Tilfeldige skoger og bagging
- Gradient boosting: GBM og XGBoost
- LightGBM og CatBoost