Przeszukiwanie losowe z XGBoost
GridSearchCV potrafi być bardzo czasochłonne, dlatego w praktyce warto sięgnąć po RandomizedSearchCV — właśnie to zrobisz w tym ćwiczeniu. Dobra wiadomość: wystarczy tylko kilka drobnych zmian w kodzie GridSearchCV, żeby przejść na RandomizedSearchCV. Kluczowa różnica polega na tym, że zamiast parametru param_grid należy użyć parametru param_distributions.
To ćwiczenie jest częścią kursu
Extreme Gradient Boosting with XGBoost
Instrukcje do ćwiczenia
- Utwórz siatkę parametrów o nazwie
gbm_param_grid, która zawiera listę z jedną wartością dla'n_estimators'(25) oraz listę wartości'max_depth'z zakresu od2do11– użyj do tegorange(2, 12). - Utwórz obiekt
RandomizedSearchCVo nazwierandomized_mse, przekazując: siatkę parametrów doparam_distributions,XGBRegressordoestimator,"neg_mean_squared_error"doscoring,5don_iteroraz4docv. Ustaw teżverbose=1, żeby lepiej śledzić wyniki. - Dopasuj obiekt
RandomizedSearchCVdoXiy.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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_)))