Random search met XGBoost
GridSearchCV kan vaak erg veel tijd kosten. In de praktijk wil je daarom vaak RandomizedSearchCV gebruiken, zoals je in deze oefening doet. Goed nieuws: je hoeft maar een paar kleine aanpassingen te maken aan je GridSearchCV-code om RandomizedSearchCV te doen. Het belangrijkste verschil is dat je een parameter param_distributions moet opgeven in plaats van param_grid.
Deze oefening maakt deel uit van de cursus
Extreme Gradient Boosting met XGBoost
Oefeninstructies
- Maak een parametergrid met de naam
gbm_param_griddat een lijst bevat met één waarde voor'n_estimators'(25), en een lijst met'max_depth'-waarden tussen2en11voor'max_depth'— gebruik hiervoorrange(2, 12). - Maak een
RandomizedSearchCV-object met de naamrandomized_mse, en geef door: het parametergrid aanparam_distributions, deXGBRegressoraanestimator,"neg_mean_squared_error"aanscoring,5aann_iter, en4aancv. Specificeer ookverbose=1zodat je de output beter kunt begrijpen. - Fit het
RandomizedSearchCV-object opXeny.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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_)))