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.