Построение модели случайного леса для прогнозирования аренды велосипедов
В этом упражнении вы снова построите модель для предсказания количества арендованных велосипедов в час в зависимости от погоды, типа дня (праздник, рабочий день или выходной) и времени суток. Модель будет обучена на данных за июль.
Для обучения модели случайного леса вы будете использовать пакет ranger. В этом упражнении ключевыми аргументами вызова ranger() (документация) являются:
formuladatanum.trees: количество деревьев в лесу.respect.unordered.factors: определяет, как обрабатывать неупорядоченные факторные переменные. Для задач регрессии рекомендуем устанавливать значение "order".seed: поскольку алгоритм является случайным, задайте начальное значение генератора случайных чисел для воспроизводимости результатов.
Поскольку входных переменных много, для удобства целевая переменная и список признаков заданы в переменных outcome и vars. Для формирования строки с формулой модели используйте функцию paste() (документация).
Фрейм данных bikesJuly уже загружен. В примере кода указаны имена целевой и входных переменных.
Это упражнение является частью курса
Обучение с учителем в R: регрессия
Инструкции к упражнению
- Заполните пропуски, чтобы создать формулу
fmla, выражающуюcntкак функцию входных переменных. Выведите её на экран. - Загрузите пакет
ranger. - С помощью
rangerобучите модель на данныхbikesJulyи сохраните её вbike_model_rf.- Первым аргументом
ranger()должна быть формулаfmla. - Используйте 500 деревьев и задайте
respect.unordered.factors = "order". - Установите начальное значение генератора случайных чисел равным
seedдля воспроизводимости результатов. - Выведите модель на экран. Чему равен коэффициент детерминации R²?
- Первым аргументом
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# bikesJuly is available
str(bikesJuly)
# Random seed to reproduce results
seed
# The outcome column
(outcome <- "cnt")
# The input variables
(vars <- c("hr", "holiday", "workingday", "weathersit", "temp", "atemp", "hum", "windspeed"))
# Create the formula string for bikes rented as a function of the inputs
(fmla <- paste(___, "~", paste(___, collapse = " + ")))
# Load the package ranger
___
# Fit and print the random forest model
(bike_model_rf <- ranger(___, # formula
___, # data
num.trees = ___,
respect.unordered.factors = ___,
seed = ___))