LightGBM und CatBoost
Warum LightGBM schneller ist, histogrammbasiertes Aufteilen und CatBoost für kategorische Features.
LightGBM und CatBoost ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Über XGBoost hinaus
XGBoost ist leistungsfähig, kann aber bei sehr großen Datensätzen langsam sein. LightGBM und CatBoost sind neuere Bibliotheken für Gradient Boosting, die die Geschwindigkeit verbessern und mit kategorialen Daten besser umgehen.
Histogrammbasierte Aufteilungen
LightGBM fasst kontinuierliche Merkmale vor der Suche nach Aufteilungen in diskreten Bins (einem Histogramm) zusammen. Dadurch wird die Suche nach Aufteilungen deutlich schneller und benötigt weniger Speicher als die exakte Methode.
Blattweises Baumwachstum
Im Gegensatz zum ebenenweisen Wachstum wächst LightGBM Bäume blattweise: Zuerst wird das Blatt mit der größten Verlustreduktion aufgeteilt. Dadurch konvergiert das Verfahren schneller, kann aber zu Überanpassung führen. Daher steuern Sie es mit num_leaves.
LGBMClassifier und num_leaves
num_leaves ist die wichtigste Stellschraube für die Komplexität von LightGBM. Größere Werte erhöhen die Genauigkeit, bergen aber ein höheres Risiko für Überanpassung. Als Faustregel gilt, num_leaves < 2^max_depth einzuhalten.
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))Geschwindigkeitsvorteile von LightGBM
Dank der Histogramm-Binning, des blattweisen Wachstums und der Teilstichprobenbildung für Merkmale und Daten trainiert LightGBM bei großen Datensätzen deutlich schneller als XGBoost, oft mit vergleichbarer Genauigkeit.
from lightgbm import LGBMClassifier
model = LGBMClassifier(
n_estimators=1000,
num_leaves=63,
learning_rate=0.03,
feature_fraction=0.8,
bagging_fraction=0.8,
)Early Stopping in LightGBM
LightGBM unterstützt Early Stopping über Callbacks. Übergeben Sie einen Evaluierungssatz und einen early_stopping-Callback, um das Training zu beenden, sobald die Metrik stagniert.
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 und kategoriale Merkmale
CatBoost spielt seine Stärken bei kategorialen Daten aus. Sie übergeben rohe kategoriale Spalten direkt über cat_features; eine manuelle Kodierung ist nicht erforderlich.
Intern verwendet CatBoost geordnete Zielstatistiken, um Target Leakage zu vermeiden.
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])Warum Kodierung nicht nötig ist
Bei anderen Bibliotheken müssen Sie Kategorien per One-Hot- oder Label-Encoding kodieren, wodurch die Dimensionalität explodieren oder der Zielwert durchsickern kann. CatBoost verarbeitet dies intern mit ordered boosting und reduziert dadurch die Überanpassung bei kategorialen Merkmalen.
Wichtige CatBoost-Parameter
CatBoost verwendet iterations (ähnlich wie n_estimators), learning_rate und depth (dabei werden symmetrische Bäume erstellt). Oft funktioniert CatBoost mit minimaler Abstimmung gut.
from catboost import CatBoostClassifier
model = CatBoostClassifier(
iterations=1000,
learning_rate=0.03,
depth=8,
l2_leaf_reg=3.0,
verbose=100,
)Geschwindigkeitsvergleich
Allgemeine Orientierung:
- LightGBM ist bei großen numerischen Datensätzen normalerweise am schnellsten
- CatBoost eignet sich am besten bei vielen kategorialen Merkmalen und benötigt weniger Abstimmung
- XGBoost ist ausgereift, robust und bietet gute Standardwerte
Vergleichen Sie alle drei Verfahren mit Ihren Daten; die Ergebnisse hängen vom jeweiligen Problem ab.
Die passende Bibliothek auswählen
Bei vielen kategorialen Daten beginnen Sie mit CatBoost. Für sehr große numerische Tabellen und hohe Geschwindigkeit wählen Sie LightGBM. Für eine bewährte Baseline verwenden Sie XGBoost. Alle drei Verfahren basieren auf Gradient Boosting, daher lassen sich die Konzepte übertragen.
Kurzer Test
Testen Sie Ihr Wissen über Bibliotheken für Gradient Boosting.
Zusammenfassung
Zusammenfassung: LightGBM verwendet histogrammbasiertes, blattweises Wachstum, das über num_leaves gesteuert wird, und eignet sich dadurch für große numerische Daten. CatBoost verarbeitet kategoriale Merkmale über cat_features nativ und ohne Kodierung. Beide Verfahren sind wie XGBoost Varianten von Gradient Boosting. Vergleichen Sie die Verfahren, um das passende auszuwählen: CatBoost für kategoriale Daten, LightGBM für hohe Geschwindigkeit.
Häufig gestellte Fragen
Ist die Lektion „LightGBM und CatBoost“ kostenlos?
Ja — der vollständige Text von „LightGBM und CatBoost“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „LightGBM und CatBoost“?
Warum LightGBM schneller ist, histogrammbasiertes Aufteilen und CatBoost für kategorische Features. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „LightGBM und CatBoost“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Entscheidungsbäume: Theorie und Implementierung
- Random Forests und Bagging
- Gradient Boosting: GBM und XGBoost
- LightGBM und CatBoost