Правильне навчання моделі

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

Nina Zumel and John Mount

Win-Vector, LLC

Моделі можуть працювати значно краще на тренувальних даних, ніж на майбутніх.

  • Training $R^2$: 0.9; Test $R^2$: 0.15 — Перенавчання
Кероване навчання в R: регресія

Розбиття на Train/Test

Рекомендовано, коли даних достатньо

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

Приклад: модель жіночого безробіття

  • Тренування на 66 рядках, тестування на 30 рядках
Кероване навчання в R: регресія

Якість моделі: Train vs Test

  • Train: RMSE 0,71, $R^2$ 0,8
  • Test: RMSE 0,93, $R^2$ 0,75
Кероване навчання в R: регресія

Крос-валідація

Краще, коли даних замало для окремого тестового набору

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

Крос-валідація

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

Крос-валідація

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

Крос-валідація

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

Створіть план крос-валідації

library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
  • nRows: кількість рядків у тренувальних даних
  • nSplits: кількість фолдів (частин) у крос-валідації
    • напр., nfolds = 3 для 3-фолдної крос-валідації
  • решта 2 аргументи тут не потрібні
Кероване навчання в R: регресія

Створіть план крос-валідації

library(vtreat)
splitPlan <- kWayCrossValidation(10, 3, NULL, NULL)

Перший фолд (A і B — тренування, C — тест)

splitPlan[[1]]
$train
1  2  4  5  7  9 10
$app
3 6 8

Тренуйтеся на A і B, тестуйте на C тощо…

split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])
Кероване навчання в R: регресія

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

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

Приклад: модель безробіття

Тип міри RMSE $R^2$
train 0.7082675 0.8029275
test 0.9349416 0.7451896
cross-validation 0.8175714 0.7635331
Кероване навчання в R: регресія

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

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

Preparing Video For Download...