Správné trénování modelu

Supervised Learning in R: Regression

Nina Zumel and John Mount

Win-Vector, LLC

Modely mohou dosahovat výrazně lepších výsledků na trénovacích než na nových datech.

  • Trénovací $R^2$: 0,9; testovací $R^2$: 0,15 -- Přetrénování
Supervised Learning in R: Regression

Rozdělení na testovací a trénovací sadu

Doporučená metoda při dostatečném množství dat

Supervised Learning in R: Regression

Příklad: Model nezaměstnanosti žen

  • Trénování na 66 řádcích, testování na 30 řádcích
Supervised Learning in R: Regression

Výkon modelu: trénovací vs. testovací data

  • Trénování: RMSE 0,71, $R^2$ 0,8
  • Testování: RMSE 0,93, $R^2$ 0,75
Supervised Learning in R: Regression

Křížová validace

Vhodné, pokud data nejsou dostatečně velká pro oddělení testovací sady

Supervised Learning in R: Regression

Křížová validace

Supervised Learning in R: Regression

Křížová validace

Supervised Learning in R: Regression

Křížová validace

Supervised Learning in R: Regression

Vytvoření plánu křížové validace

library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
  • nRows: počet řádků v trénovacích datech
  • nSplits: počet složek (oddílů) křížové validace
    • např. nfolds = 3 pro tříčlennou křížovou validaci
  • zbývající 2 argumenty zde nejsou potřeba
Supervised Learning in R: Regression

Vytvoření plánu křížové validace

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

První složka (A a B k trénování, C k testování)

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

Trénování na A a B, testování na C atd...

split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])
Supervised Learning in R: Regression

Finální model

Supervised Learning in R: Regression

Příklad: Model nezaměstnanosti

Typ měření RMSE $R^2$
trénování 0.7082675 0.8029275
testování 0.9349416 0.7451896
křížová validace 0.8175714 0.7635331
Supervised Learning in R: Regression

Pojďme si procvičit!

Supervised Learning in R: Regression

Preparing Video For Download...