ПочатиПочніть безкоштовно

Навчіть модель xgboost для прокату велосипедів і зробіть прогноз

У цій вправі ви навчите модель градієнтного бустингу за допомогою xgboost() для прогнозування кількості велосипедів, орендованих за годину, залежно від погоди, типу та часу доби. Ви навчатимете модель на даних за липень і робитимете прогнози на даних за серпень.

Датафрейми bikesJuly, bikesJuly.treat, bikesAugust і bikesAugust.treat уже завантажені. Пам'ятайте, що дані після vtreat більше не містять стовпця з цільовою змінною, тож її потрібно брати з оригінальних даних (стовпець cnt).

Для зручності доступне значення кількості дерев ntrees з попередньої вправи.

Аргументи xgboost() (docs) подібні до аргументів xgb.cv().

Ця вправа є частиною курсу

Кероване навчання в R: регресія

Переглянути курс

Інструкції до вправи

  • Заповніть пропуски, щоб запустити xgboost() на липневих даних.
    • Використайте as.matrix(), щоб перетворити оброблений vtreat датафрейм на матрицю.
    • Мета (objective) має бути "reg:squarederror".
    • Використайте ntrees раундів.
    • Задайте eta рівним 0.75, max_depth5, а verboseFALSE (тихий режим).
  • Тепер викличте 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()
Редагувати та запускати код