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

Обучение модели xgboost для прогнозирования аренды велосипедов и получение предсказаний

В этом упражнении вы обучите модель градиентного бустинга с помощью функции xgboost(), чтобы предсказать количество арендованных велосипедов в час в зависимости от погоды, типа дня и времени суток. Модель будет обучена на данных за июль, а предсказания выполнены для данных за август.

Фреймы данных bikesJuly, bikesJuly.treat, bikesAugust и bikesAugust.treat уже загружены. Помните, что данные, обработанные с помощью vtreat, не содержат столбца с целевой переменной — его нужно брать из исходных данных (столбец cnt).

Для удобства значение ntrees — количество деревьев из предыдущего упражнения — уже доступно для использования.

Аргументы функции xgboost() (документация) аналогичны аргументам функции xgb.cv().

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

Обучение с учителем в R: регрессия

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

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

  • Заполните пропуски, чтобы запустить xgboost() на данных за июль.
    • Используйте as.matrix(), чтобы преобразовать обработанный vtreat-ом фрейм данных в матрицу.
    • В качестве целевой функции укажите "reg:squarederror".
    • Используйте ntrees раундов.
    • Установите eta равным 0.75, max_depth равным 5, а verbose равным FALSE (режим молчания).
  • Вызовите predict() для bikesAugust.treat, чтобы предсказать количество арендованных велосипедов в августе.
    • Используйте as.matrix(), чтобы преобразовать тестовые данные, обработанные vtreat, в матрицу.
    • Добавьте предсказания в bikesAugust в виде столбца pred.
  • Заполните пропуски, чтобы построить график фактического количества аренд велосипедов относительно предсказанных значений (предсказания — на оси X).
    • Заметили ли вы возможную проблему с предсказаниями?

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

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

# Run xgboost
bike_model_xgb <- xgboost(data = ___, # training data as matrix
                   label = ___,  # column of outcomes
                   nrounds = ___,       # number of trees to build
                   objective = ___, # objective
                   eta = ___,
                   max_depth = ___,
                   verbose = FALSE  # silent
)

# Make predictions
bikesAugust$pred <- ___(___, ___(___))

# Plot predictions (on x axis) vs actual bike rental count
ggplot(bikesAugust, aes(x = ___, y = ___)) + 
  geom_point() + 
  geom_abline()
Редактировать и запускать код