LightGBM
LightGBM ist ein Gradient-Boosting-Framework, das Entscheidungsbäume anhand von Merkmals-Histogrammen Blatt für Blatt erweitert und so große tabellarische Datensätze schnell trainiert.
LightGBM (Light Gradient Boosting Machine) ist ein quelloffenes Framework für Gradient Boosting, das Ensembles aus Entscheidungsbäumen auf Tabellendaten trainiert und auf hohe Geschwindigkeit sowie geringen Speicherbedarf bei großen Datensätzen ausgelegt ist. Microsoft veröffentlichte es 2016 und beschrieb die Algorithmen im NeurIPS-Artikel von 2017 LightGBM: A Highly Efficient Gradient Boosting Decision Tree. Im März 2026 wechselte das offizielle Repository unter denselben Betreuern zur GitHub-Organisation lightgbm-org. LightGBM unterstützt Klassifikation, Regression und Ranking mit Python, R, C++ und über die Befehlszeile und kommt in vielen erfolgreichen Lösungen bei Wettbewerben im maschinellen Lernen zum Einsatz. Bei mittelgroßen Tabellen mit etwa 10,000 Zeilen übertreffen Baum-Ensembles wie dieses oft weiterhin Deep Learning.
So funktioniert LightGBM#
Gradient Boosting erstellt die Bäume nacheinander. Jeder neue Baum wird an die Gradienten der Verlustfunktion bezüglich der Vorhersagen des aktuellen Ensembles angepasst. Bei quadratischem Fehler sind das einfach die Residuen, sodass der Baum die Fehler korrigiert, die frühere Bäume hinterlassen haben. Die Vorhersage des Modells ist die Summe der Ausgaben aller Bäume, die jeweils mit einer Lernrate skaliert werden. Der aufwendige Schritt ist die Suche nach der besten Aufteilung für jeden Knoten; LightGBM beschleunigt sie mit vier Techniken:
- Histogrammbasierte Aufteilungen: Vor dem Training ordnet LightGBM jedes kontinuierliche Merkmal höchstens 255 Intervallen zu (
max_bin). Bei der Suche nach Aufteilungen werden die Intervallgrenzen statt aller sortierten Werte geprüft. Nach einer Aufteilung wird nur das Histogramm des kleineren Kindes aus den Daten erstellt, da sich das des größeren Kindes aus dem Histogramm des Elternknotens minus dem des kleineren Kindes ergibt. - Blattweises Wachstum: LightGBM teilt immer das Blatt, dessen beste Aufteilung den Verlust am stärksten verringert, bis der Baum
num_leavesBlätter hat (standardmäßig 31), statt zunächst alle Knoten auf einer Ebene aufzuteilen und erst danach tiefer zu wachsen. Bei gleicher Blattanzahl ergibt sich so ein geringerer Verlust als beim ebenenweisen Wachstum. Dabei entstehen tiefe, unausgewogene Bäume, die kleine Datensätze überanpassen können. - Gradient-based One-Side Sampling (GOSS): Zeilen mit großen Gradienten sind diejenigen, die das Modell weiterhin schlecht vorhersagt. Mit
data_sample_strategy="goss"behält LightGBM die 20 % der Zeilen mit den größten Gradienten bei, wählt zufällig weitere 10 % aus den übrigen Zeilen aus und gewichtet diese Stichprobe höher, damit die Datenverteilung der ursprünglichen möglichst nahekommt. - Exclusive Feature Bundling (EFB): Dünn besetzte Merkmale, die nur selten gleichzeitig einen Wert ungleich null haben, etwa One-Hot-Spalten, werden zu einem einzigen Merkmal zusammengeführt. Dadurch sinkt die Anzahl der zu erstellenden Histogramme.
Jeder Baum wiederholt die Suche nach Aufteilungen, bis sein Blattlimit erreicht ist oder keine Aufteilung mehr hilft. Beim Boosting wird das für jede Runde wiederholt:
LightGBM teilt außerdem direkt nach ganzzahlig kodierten kategorialen Merkmalen auf, wenn diese in categorical_feature aufgeführt sind. Dabei werden Kategorien bei jeder Aufteilung gruppiert, ohne One-Hot-Kodierung. Fehlende Werte werden standardmäßig behandelt. Das Training läuft auf CPUs, auf GPUs (device_type="gpu" oder "cuda") und mit den verteilten Lernverfahren des Frameworks auch auf mehreren Rechnern.
LightGBM trainieren und abstimmen#
Die Klassen LGBMClassifier, LGBMRegressor und LGBMRanker im Stil von scikit-learn decken die meisten Anwendungsfälle ab. Da blattweise wachsende Bäume sehr tief werden können, sind num_leaves, min_child_samples (standardmäßig 20 Zeilen pro Blatt) und max_depth die wichtigsten Mittel gegen Überanpassung. Zusammen mit der Lernrate und der Baumanzahl lassen sich diese Werte meist durch Hyperparameter-Abstimmung oder vorzeitigen Abbruch anhand eines Validierungssatzes bestimmen. Die Vorteile von Histogrammen und blattweisem Wachstum zeigen sich beim Vergleich mit dem klassischen Gradient Boosting von scikit-learn mit exakten Aufteilungen auf einer synthetischen Tabelle mit 20,000 Zeilen und 40 Merkmalen:
import time
import lightgbm as lgb
from sklearn.datasets import make_classification
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import train_test_split
X, y = make_classification(n_samples=20_000, n_features=40, n_informative=15, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 200 trees each: exact split search vs. LightGBM's histograms and leaf-wise growth
for model in (GradientBoostingClassifier(n_estimators=200), lgb.LGBMClassifier(n_estimators=200, verbose=-1)):
start = time.perf_counter()
model.fit(X_train, y_train)
seconds = time.perf_counter() - start
print(f"{type(model).__name__}: {seconds:.1f} s, accuracy {model.score(X_test, y_test):.3f}")Auf einer Apple M5 Pro CPU erstellt LightGBM seine 200 Bäume mit bis zu 31 Blättern in weniger als einer Sekunde. scikit-learn benötigt für 200 Bäume mit exakten Aufteilungen und Tiefe 3 etwa 20 Sekunden. Die größeren Bäume von LightGBM erreichen eine Test-Genauigkeit von 0.956 gegenüber 0.901. Trainierte Modelle lassen sich als Text oder JSON speichern. Mit onnxmltools können sie für die Bereitstellung außerhalb von Python nach ONNX konvertiert werden.
LightGBM und verwandte Verfahren#
- XGBoost: Die Gradient-Boosting-Bibliothek, die 2014 regularisiertes Boosting zweiter Ordnung populär machte. Standardmäßig erstellt sie Bäume mit begrenzter Tiefe (
max_depth=6), unterstützt blattweises Wachstum mitgrow_policy="lossguide"und verwendet seit Version 2.0 standardmäßig die histogrammbasierte Suche nach Aufteilungen. Daher nutzen die beiden Bibliotheken inzwischen die meisten Techniken gemeinsam. - CatBoost: Die 2017 veröffentlichte Boosting-Bibliothek von Yandex. Sie erstellt symmetrische Bäume und kodiert kategoriale Merkmale mit geordneten Zielstatistiken, um Datenleckage des Zielwerts zu begrenzen.
- Random Forest: Trainiert unabhängig tiefe Bäume auf Bootstrap-Stichproben und mittelt ihre Vorhersagen, wodurch die Varianz sinkt.
- HistGradientBoosting:
HistGradientBoostingClassifierundHistGradientBoostingRegressorvon scikit-learn sind von LightGBM inspirierte Implementierungen, die Merkmale auf dieselbe Weise in Histogramme einteilen. - Tabellarische Basismodelle: Vortrainierte Transformer wie TabPFN treffen in einem einzigen Vorwärtsdurchlauf Vorhersagen für kleine Tabellen, ohne dass für jeden Datensatz ein eigener Trainingslauf nötig ist.
Anwendungen in der Praxis#
- Betrug und Kreditrisiko: Banken bewerten Transaktionen und Kreditanträge anhand des Kontoverlaufs sowie von Merkmalen wie Händler, Betrag und Zeitpunkt. Die schnelle Inferenz von LightGBM eignet sich für Entscheidungen zu einzelnen Transaktionen.
- Nachfrageprognosen: Einzelhändler prognostizieren den Absatz pro Produkt und Filiale anhand vergangener Verkäufe, Preisen, Werbeaktionen und Kalendermerkmalen. Die Zahl der Besucher ist ein häufig verwendeter Eingabewert: Ultralytics YOLO26 zählt Objekte, verfolgt Personen, die in einem Filialvideo eine Linie überqueren, und meldet Ein- und Ausgangszahlen je Klasse. Die stündlichen Summen dienen als Merkmale für eine Personalbedarfsprognose mit LightGBM.
- Ranking für Suche und Empfehlungen:
LGBMRankerwird standardmäßig mit dem LambdaRank-Ziel trainiert. Dabei werden Dokumente oder Produkte innerhalb jeder Anfragegruppe so geordnet, dass der normalisierte abgezinste kumulative Gewinn (NDCG) optimiert wird.










