Навчіть модель 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_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()