Випадкові ліси

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

Nina Zumel and John Mount

Win-Vector, LCC

Random Forests

Кілька різних дерев рішень, усереднених разом

  • Менше перенавчання
  • Вища гнучкість моделі
  • Детальніші прогнози
Кероване навчання в R: регресія

Побудова моделі Random Forest

  1. Візьміть бутстреп-вибірку з тренувальних даних
  2. Для кожної вибірки побудуйте дерево
    • У кожній вершині обирайте найкращу змінну для розбиття (з випадкової підмножини всіх змінних)
    • Продовжуйте, доки дерево не збудоване
  3. Щоб оцінити приклад, пропустіть його через усі дерева й усередніть результати.
Кероване навчання в R: регресія

Приклад: дані оренди велосипедів

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

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

Random Forests у ranger()

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

Random Forests у ranger()

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

Алгоритм random forest повертає оцінки позавибіркової якості.

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

Прогнозування з моделлю ranger()

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

Вхідні дані для predict():

  • модель
  • дані

Прогнози доступні в елементі predictions.

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

Оцінювання моделі

Обчисліть RMSE:

bikesFeb %>% 
  mutate(residual = cnt - pred) %>%
  summarize(rmse = sqrt(mean(residual^2)))
      rmse
1 67.15169
Модель RMSE
Quasipoisson 69.3
Random forests 67.15
Кероване навчання в R: регресія

Оцінювання моделі

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

Оцінювання моделі

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

Давайте потренуємось!

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

Preparing Video For Download...