Boosting-Wettbewerb: Light vs. Extreme
Auch wenn das CatBoost-Modell recht gut abschneidet, probieren wir zwei andere Boosting-Varianten aus und sehen, welche besser performt: der „Light“- oder der „Extreme“-Ansatz.
CatBoost wird besonders empfohlen, wenn es kategoriale Features gibt. In diesem Fall sind alle Features numerisch, daher könnten die anderen Ansätze bessere Ergebnisse liefern.
Da wir Regressoren bauen, verwenden wir einen zusätzlichen Parameter, objective, der die zu verwendende Zielfunktion festlegt. Um den quadratischen Fehler zu minimieren, setzen wir objective auf 'reg:squarederror' für XGBoost und auf 'mean_squared_error' für LightGBM.
Außerdem geben wir für XGBoost den Parameter n_jobs an, um die Rechenzeit zu verbessern.
Achtung: Verwende keine Classifier, sonst könnte deine Session ablaufen!
Diese Übung ist Teil des Kurses
Ensemble-Methoden in Python
Anleitung zur Übung
- Erstelle einen
XGBRegressormit den Parametern:max_depth = 3,learning_rate = 0.1,n_estimators = 100undn_jobs=2. - Erstelle einen
LGBMRegressormit den Parametern:max_depth = 3,learning_rate = 0.1undn_estimators = 100.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Build and fit an XGBoost regressor
reg_xgb = ____.____(____, ____, ____, ____, objective='reg:squarederror', random_state=500)
reg_xgb.fit(X_train, y_train)
# Build and fit a LightGBM regressor
reg_lgb = ____.____(____, ____, ____, objective='mean_squared_error', seed=500)
reg_lgb.fit(X_train, y_train)
# Calculate the predictions and evaluate both regressors
pred_xgb = reg_xgb.predict(X_test)
rmse_xgb = np.sqrt(mean_squared_error(y_test, pred_xgb))
pred_lgb = reg_lgb.predict(X_test)
rmse_lgb = np.sqrt(mean_squared_error(y_test, pred_lgb))
print('Extreme: {:.3f}, Light: {:.3f}'.format(rmse_xgb, rmse_lgb))