LoslegenKostenlos loslegen

Grid Search mit XGBoost

Nachdem du gelernt hast, einzelne Parameter mit XGBoost zu tunen, heben wir das Tuning jetzt eine Stufe höher: mit den GridSearch- und RandomizedSearch-Funktionen von scikit-learn samt interner Cross-Validation über GridSearchCV und RandomizedSearchCV. Damit suchst du über mehrere Parameter hinweg systematisch in einer Menge möglicher Werte nach dem besten Modell. Legen wir los – zunächst mit GridSearchCV!

Diese Übung ist Teil des Kurses

Extreme Gradient Boosting mit XGBoost

Kurs anzeigen

Anleitung zur Übung

  • Erstelle ein Parameter-Grid namens gbm_param_grid, das eine Liste von "colsample_bytree"-Werten (0.3, 0.7), eine Liste mit einem einzelnen Wert für "n_estimators" (50) und eine Liste mit 2 "max_depth"-Werten (2, 5) enthält.
  • Instanziiere ein XGBRegressor-Objekt namens gbm.
  • Erstelle ein GridSearchCV-Objekt namens grid_mse und übergib: das Parameter-Grid an param_grid, den XGBRegressor an estimator, "neg_mean_squared_error" an scoring und 4 an cv. Gib außerdem verbose=1 an, damit du die Ausgaben besser nachvollziehen kannst.
  • Fitte das GridSearchCV-Objekt an X und y.
  • Gib die besten Parameterwerte und die niedrigste RMSE aus, und zwar über die Attribute .best_params_ bzw. .best_score_ von grid_mse.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Create the parameter grid: gbm_param_grid
gbm_param_grid = {
    '____': [____, ____],
    '____': [____],
    '____': [____, ____]
}

# Instantiate the regressor: gbm
gbm = ____

# Perform grid search: grid_mse
grid_mse = ____


# Fit grid_mse to the data
____

# Print the best parameters and lowest RMSE
print("Best parameters found: ", ____)
print("Lowest RMSE found: ", np.sqrt(np.abs(____)))
Code bearbeiten und ausführen