LoslegenKostenlos loslegen

Random Search mit XGBoost

Oft ist GridSearchCV sehr zeitaufwendig. In der Praxis möchtest du daher häufig stattdessen RandomizedSearchCV verwenden – so wie in dieser Übung. Die gute Nachricht: Du musst deinen GridSearchCV-Code nur an wenigen Stellen anpassen, um RandomizedSearchCV zu nutzen. Der zentrale Unterschied ist, dass du param_distributions statt param_grid angibst.

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 mit einem einzelnen Wert für 'n_estimators' (25) und eine Liste von Werten zwischen 2 und 11 für 'max_depth' enthält – verwende dafür range(2, 12).
  • Erstelle ein RandomizedSearchCV-Objekt namens randomized_mse und übergib: das Parameter-Grid an param_distributions, den XGBRegressor an estimator, "neg_mean_squared_error" an scoring, 5 an n_iter und 4 an cv. Gib außerdem verbose=1 an, damit du die Ausgaben besser nachvollziehen kannst.
  • Fitte das RandomizedSearchCV-Objekt auf X und y.

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 = xgb.XGBRegressor(n_estimators=10)

# Perform random search: grid_mse
randomized_mse = ____


# Fit randomized_mse to the data
____

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