Sobes.tech
Middle — Senior

Was ist Early Stopping beim Boosting und wie validiert man es richtig?

sobes.tech KI

Antwort von AI

Frühes Stoppen ist eine Methode, um Überanpassung in Boosting-Algorithmen (z.B. XGBoost, LightGBM) zu verhindern. Die Idee ist, das Training zu beenden, wenn die Qualität des Modells auf dem Validierungsset nicht mehr besser wird.

So funktioniert es:

  • Die Daten werden in Trainings- und Validierungssets aufgeteilt.
  • Während des Trainings wird nach jeder Iteration (Hinzufügen eines neuen Basisalgorithmus) die Metrik auf dem Validierungsset bewertet.
  • Wenn die Metrik für eine festgelegte Anzahl von Iterationen (Parameter early_stopping_rounds) nicht verbessert wird, wird das Training gestoppt.

Korrekte Validierung:

  • Das Validierungsset sollte unabhängig vom Trainingsset sein.
  • Die Metrik sollte die Aufgabe widerspiegeln (z.B. AUC für Klassifikation).
  • Verwenden Sie, wenn möglich, Kreuzvalidierung mit frühem Stopp, um eine zuverlässigere Bewertung zu erhalten.

Beispiel in LightGBM:

import lightgbm as lgb

train_data = lgb.Dataset(X_train, label=y_train)
valid_data = lgb.Dataset(X_valid, label=y_valid)

params = {'objective': 'binary', 'metric': 'auc'}

model = lgb.train(params, train_data, valid_sets=[valid_data], early_stopping_rounds=10)

Auf diese Weise stoppt das Modell, wenn die Qualität auf der Validierung während 10 Iterationen nicht verbessert wird.