Случайные леса

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

Nina Zumel and John Mount

Win-Vector, LCC

Случайные леса

Множество разнообразных деревьев решений, объединённых усреднением

  • Снижает переобучение
  • Повышает выразительность модели
  • Более точные предсказания
Обучение с учителем в R: регрессия

Построение модели случайного леса

  1. Сформируйте бутстрап-выборку из обучающих данных
  2. Для каждой выборки постройте дерево
    • В каждом узле выберите лучшую переменную для разбиения (из случайного подмножества всех переменных)
    • Продолжайте до полного построения дерева
  3. Чтобы получить предсказание, оцените объект всеми деревьями и усредните результаты.
Обучение с учителем в R: регрессия

Пример: данные об аренде велосипедов

cnt ~ hr + holiday + workingday + 
  weathersit + temp + atemp + hum + windspeed

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

Случайные леса с ranger()

model <- ranger(fmla, bikesJan, 
                num.trees = 500, 
                respect.unordered.factors = "order")
  • formula, data
  • num.trees (по умолчанию 500) — используйте не менее 200
  • mtry — количество переменных, проверяемых в каждом узле
    • по умолчанию: квадратный корень из общего числа переменных
  • respect.unordered.factors — рекомендуется значение «order»
    • «безопасное» хеширование категориальных переменных
Обучение с учителем в R: регрессия

Случайные леса с ranger()

model
Ranger result
...
OOB prediction error (MSE):       3103.623 
R squared (OOB):                  0.7837386

Алгоритм случайного леса возвращает оценки качества на вневыборочных данных.

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

Предсказание с помощью модели ranger()

bikesFeb$pred <- predict(model, bikesFeb)$predictions

Аргументы predict():

  • model
  • data

Предсказания доступны в элементе predictions.

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

Оценка модели

Вычисление RMSE:

bikesFeb %>% 
  mutate(residual = cnt - pred) %>%
  summarize(rmse = sqrt(mean(residual^2)))
      rmse
1 67.15169
Модель RMSE
Quasipoisson 69,3
Случайный лес 67,15
Обучение с учителем в R: регрессия

Оценка модели

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

Оценка модели

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

Давайте потренируемся!

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

Preparing Video For Download...