LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Erstelle einen XGBRegressor mit den Parametern: max_depth = 3, learning_rate = 0.1, n_estimators = 100 und n_jobs=2.
  • Erstelle einen LGBMRegressor mit den Parametern: max_depth = 3, learning_rate = 0.1 und n_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))
Code bearbeiten und ausführen