НачатьНачать бесплатно

Поиск по сетке с 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(____)))
Редактировать и запускать код