Поиск по сетке с XGBoost
Теперь, когда вы научились настраивать параметры XGBoost по отдельности, перейдём на новый уровень — воспользуемся возможностями GridSearch и RandomizedSearch из scikit-learn с внутренней кросс-валидацией через функции GridSearchCV и RandomizedSearchCV. С их помощью можно найти наилучшую модель, перебирая множество возможных значений сразу по нескольким параметрам. Начнём с GridSearchCV!
Это упражнение является частью курса
Экстремальный градиентный бустинг с XGBoost
Инструкции к упражнению
- Создайте сетку параметров
gbm_param_grid, которая содержит: список значений"colsample_bytree"(0.3,0.7), список с одним значением"n_estimators"(50) и список из двух значений"max_depth"(2,5). - Создайте экземпляр объекта
XGBRegressorи назовите егоgbm. - Создайте объект
GridSearchCVс именемgrid_mse, передав в него: сетку параметров вparam_grid, регрессорXGBRegressorвestimator,"neg_mean_squared_error"вscoringи4вcv. Также укажитеverbose=1, чтобы лучше понимать вывод. - Обучите объект
GridSearchCVна данныхXиy. - Выведите наилучшие значения параметров и минимальное значение RMSE, используя атрибуты
.best_params_и.best_score_объектаgrid_mseсоответственно.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create the parameter grid: gbm_param_grid
gbm_param_grid = {
'____': [____, ____],
'____': [____],
'____': [____, ____]
}
# Instantiate the regressor: gbm
gbm = ____
# Perform grid search: grid_mse
grid_mse = ____
# Fit grid_mse to the data
____
# Print the best parameters and lowest RMSE
print("Best parameters found: ", ____)
print("Lowest RMSE found: ", np.sqrt(np.abs(____)))