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

Линейные базовые модели

Вы уже использовали деревья в качестве базовых моделей в XGBoost — теперь попробуем другой тип базовой модели: линейный обучающий алгоритм. Хотя он применяется в XGBoost реже, он позволяет построить регуляризованную линейную регрессию с использованием мощного API обучения XGBoost. Однако из-за своей специфики эта модель требует использования собственных функций XGBoost, несовместимых с scikit-learn, — например, xgb.train().

Для этого необходимо создать словарь параметров, описывающий тип бустера, который вы хотите использовать (аналогично тому, как вы создавали словарь в главе 1 при использовании xgb.cv()). Пара ключ–значение, задающая тип бустера (базовой модели), выглядит так: "booster":"gblinear".

После создания модели вы можете использовать методы .train() и .predict() так же, как делали это раньше.

Данные уже разбиты на обучающую и тестовую выборки, поэтому можно сразу приступить к созданию объектов DMatrix, необходимых для API обучения XGBoost.

Это упражнение является частью курса

Экстремальный градиентный бустинг с XGBoost

Посмотреть курс

Инструкции к упражнению

  • Создайте два объекта DMatrix: DM_train для обучающей выборки (X_train и y_train) и DM_test для тестовой выборки (X_test и y_test).
  • Создайте словарь параметров, в котором задайте тип "booster" ("gblinear") и минимизируемую "objective" ("reg:squarederror").
  • Обучите модель с помощью xgb.train(). Укажите аргументы для следующих параметров: params, dtrain и num_boost_round. Используйте 5 раундов бустинга.
  • Сделайте предсказания меток на тестовой выборке с помощью xg_reg.predict(), передав ему DM_test. Сохраните результат в переменную preds.
  • Нажмите «Отправить ответ», чтобы увидеть значение RMSE!

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Convert the training and testing sets into DMatrixes: DM_train, DM_test
DM_train = ____
DM_test =  ____

# Create the parameter dictionary: params
params = {"____":"____", "____":"____"}

# Train the model: xg_reg
xg_reg = ____.____(____ = ____, ____=____, ____=____)

# Predict the labels of the test set: preds
preds = ____

# Compute and print the RMSE
rmse = np.sqrt(mean_squared_error(y_test,preds))
print("RMSE: %f" % (rmse))
Редактировать и запускать код