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
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 zwischen2und11für'max_depth'enthält – verwende dafürrange(2, 12). - Erstelle ein
RandomizedSearchCV-Objekt namensrandomized_mseund übergib: das Parameter-Grid anparam_distributions, denXGBRegressoranestimator,"neg_mean_squared_error"anscoring,5ann_iterund4ancv. Gib außerdemverbose=1an, damit du die Ausgaben besser nachvollziehen kannst. - Fitte das
RandomizedSearchCV-Objekt aufXundy.
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_)))