0Pricing
Learn AI with Python · Lektion

Gradient Boosting: GBM und XGBoost

Boosting im Vergleich zu Bagging, GradientBoostingClassifier, XGBClassifier und Early Stopping.

Gradient Boosting: GBM und XGBoost ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 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.

Boosting vs. Bagging

Bagging trainiert Bäume parallel und mittelt ihre Ergebnisse. Boosting trainiert Bäume sequenziell; jeder neue Baum korrigiert die Fehler der vorherigen.

Boosting reduziert den Bias und erzielt bei strukturierten Daten oft eine höhere Genauigkeit als Bagging.

Sequenzielle schwache Lerner

Gradient Boosting erstellt ein Ensemble aus flachen Bäumen (schwachen Lernern). Jeder Baum modelliert die Residuen (Gradienten der Verlustfunktion), die das aktuelle Ensemble hinterlässt.

Durch das Hinzufügen vieler kleiner Korrekturen entsteht insgesamt ein starkes Modell.

GradientBoostingClassifier

Scikit-learn stellt GradientBoostingClassifier bereit. Zu den wichtigsten Parametern gehören n_estimators (Anzahl der Bäume), learning_rate (Schrumpfung) und max_depth (Baumgröße).

from sklearn.ensemble import GradientBoostingClassifier

gbm = GradientBoostingClassifier(
    n_estimators=200,
    learning_rate=0.1,
    max_depth=3,
    random_state=0,
)
gbm.fit(Xtr, ytr)
print(gbm.score(Xte, yte))

Der Zielkonflikt bei der Lernrate

learning_rate skaliert den Beitrag jedes Baums. Eine kleinere Lernrate erfordert mehr Bäume, generalisiert aber normalerweise besser.

Eine gängige Strategie besteht darin, eine niedrige Lernrate (z. B. 0.05) und viele Schätzer festzulegen und anschließend Early Stopping zu verwenden.

from sklearn.ensemble import GradientBoostingClassifier

gbm = GradientBoostingClassifier(
    n_estimators=1000,
    learning_rate=0.05,
    max_depth=3,
)

Warum max_depth klein bleibt

Beim Boosting ist jeder Baum ein schwacher Lerner, daher liegt max_depth normalerweise zwischen 3 und 6. Tiefe Bäume würden die Residuen schnell überanpassen. Das Ensemble gewinnt seine Stärke durch viele flache Bäume, nicht durch wenige tiefe.

XGBoost wird vorgestellt

XGBoost ist eine optimierte Bibliothek für Gradient Boosting: schneller, regularisiert und mit integrierter Unterstützung für fehlende Werte. Bei Wettbewerben zum maschinellen Lernen mit Tabellendaten erzielt sie Spitzenleistungen.

from xgboost import XGBClassifier

model = XGBClassifier(
    n_estimators=300,
    learning_rate=0.1,
    max_depth=4,
    random_state=0,
)
model.fit(Xtr, ytr)
print(model.score(Xte, yte))

Wichtige XGBoost-Parameter

Die wichtigsten Stellschrauben entsprechen denen von GBM:

  • n_estimators Anzahl der Boosting-Runden
  • learning_rate Schrumpfung pro Runde
  • max_depth Baumtiefe
  • subsample und colsample_bytree fügen zur Regularisierung Zufälligkeit hinzu
from xgboost import XGBClassifier

model = XGBClassifier(
    n_estimators=500,
    learning_rate=0.05,
    max_depth=4,
    subsample=0.8,
    colsample_bytree=0.8,
)

Regularisierung in XGBoost

XGBoost fügt L1-Strafterme (reg_alpha) und L2-Strafterme (reg_lambda) sowie gamma hinzu (minimale Verlustreduktion für eine Aufteilung). Dadurch wird die Komplexität gesteuert und Überanpassung stärker reduziert, als dies mit einfachem GBM möglich ist.

from xgboost import XGBClassifier

model = XGBClassifier(
    reg_alpha=0.1,
    reg_lambda=1.0,
    gamma=0.1,
)

Early Stopping

early_stopping_rounds beendet das Training, wenn sich die Validierungsmetrik über N Runden nicht verbessert. Dadurch wird die passende Anzahl an Bäumen automatisch ermittelt und Überanpassung verhindert.

from xgboost import XGBClassifier

model = XGBClassifier(
    n_estimators=2000,
    learning_rate=0.05,
    early_stopping_rounds=50,
    eval_metric="logloss",
)
model.fit(Xtr, ytr, eval_set=[(Xte, yte)], verbose=False)
print("Best iteration:", model.best_iteration)

Merkmalswichtigkeit auswerten

XGBoost stellt feature_importances_ sowie das detailliertere get_booster().get_score() mit Wichtigkeitstypen wie gain und weight bereit. gain gibt an, wie stark ein Merkmal den Verlust verbessert hat.

model = XGBClassifier(n_estimators=200).fit(Xtr, ytr)
print(model.feature_importances_)

booster = model.get_booster()
print(booster.get_score(importance_type="gain"))

Wann Sie Boosting einsetzen sollten

Gradient Boosting übertrifft bei Tabellendaten oft Random Forests, wenn es gut abgestimmt ist. Der Nachteil besteht in der höheren Empfindlichkeit gegenüber Hyperparametern und dem langsameren sequenziellen Training. Beginnen Sie mit den XGBoost-Standardwerten, stimmen Sie anschließend learning_rate und max_depth ab und verwenden Sie Early Stopping.

Kurzer Test

Überprüfen Sie Ihre Kenntnisse zu Boosting.

Zusammenfassung

Zusammenfassung: Boosting trainiert Bäume sequenziell, wobei jeder Baum vorherige Fehler korrigiert. Stimmen Sie n_estimators und learning_rate ab (niedrige Lernrate + viele Bäume) und verwenden Sie ein kleines max_depth. XGBoost ergänzt Regularisierung (reg_alpha, reg_lambda, gamma) sowie early_stopping_rounds, um die optimale Anzahl an Bäumen automatisch zu bestimmen.

Häufig gestellte Fragen

Ist die Lektion „Gradient Boosting: GBM und XGBoost“ kostenlos?

Ja — der vollständige Text von „Gradient Boosting: GBM und XGBoost“ 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 „Gradient Boosting: GBM und XGBoost“?

Boosting im Vergleich zu Bagging, GradientBoostingClassifier, XGBClassifier und Early Stopping. 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 3 von 4.

Wie lange dauert die Lektion „Gradient Boosting: GBM und XGBoost“?

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

  1. Entscheidungsbäume: Theorie und Implementierung
  2. Random Forests und Bagging
  3. Gradient Boosting: GBM und XGBoost
  4. LightGBM und CatBoost
← Zurück zu Learn AI with Python