Случайный поиск с XGBoost
GridSearchCV может занимать очень много времени, поэтому на практике удобнее использовать RandomizedSearchCV — именно это вы и сделаете в данном упражнении. Хорошая новость: чтобы перейти от GridSearchCV к RandomizedSearchCV, потребуется лишь несколько небольших изменений в коде. Главное отличие состоит в том, что вместо параметра param_grid нужно указать param_distributions.
Это упражнение является частью курса
Экстремальный градиентный бустинг с XGBoost
Инструкции к упражнению
- Создайте сетку параметров
gbm_param_grid, которая содержит список с единственным значением'n_estimators'(25), а также список значений'max_depth'от2до11— используйте для этогоrange(2, 12). - Создайте объект
RandomizedSearchCVс именемrandomized_mse, передав: сетку параметров вparam_distributions, объектXGBRegressorвestimator,"neg_mean_squared_error"вscoring,5вn_iterи4вcv. Также укажитеverbose=1, чтобы лучше понимать вывод. - Обучите объект
RandomizedSearchCVна данныхXиy.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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_)))