Začněte nyníZačněte zdarma

Vyhodnocení postupu modelování pomocí n-násobné křížové validace

V tomto cvičení použiješ splitPlan, plán 3-násobné křížové validace z předchozího cvičení, k vytvoření predikcí z modelu, který předpovídá mpg$cty na základě mpg$hwy.

Pokud je dframe trénovací datová sada, jedním ze způsobů, jak do ní přidat sloupec s predikcemi z křížové validace, je následující postup:

# Initialize a column of the appropriate length
dframe$pred.cv <- 0 

# k is the number of folds
# splitPlan is the cross validation plan

for(i in 1:k) {
  # Get the ith split
  split <- splitPlan[[i]]

  # Build a model on the training data 
  # from this split 
  # (lm, in this case)
  model <- lm(fmla, data = dframe[split$train,])

  # make predictions on the 
  # application data from this split
  dframe$pred.cv[split$app] <- predict(model, newdata = dframe[split$app,])
}

Křížová validace odhaduje, jak dobře bude model sestavený na všech datech fungovat na nových datech. Stejně jako u rozdělení na testovací a trénovací sadu platí, že u kvalitního postupu modelování by měly být výsledky křížové validace a výsledky na trénovacích datech blízko sebe.

Dataový rámec mpg, plán křížové validace splitPlan a funkce rmse() jsou předem načteny.

Toto cvičení je součástí kurzu

Supervised Learning in R: Regression

Zobrazit kurz

Pokyny k cvičení

  • Spusť plán 3-násobné křížové validace z splitPlan a ulož predikce do sloupce mpg$pred.cv.
    • Použij lm() a vzorec cty ~ hwy.
  • Vytvoř model lineární regrese na všech datech z mpg (vzorec cty ~ hwy) a přiřaď predikce do mpg$pred.
  • Pomocí rmse() zjisti střední kvadratickou chybu predikcí z plného modelu (mpg$pred). Připomeňme, že rmse() přijímá dva argumenty: předpovězené hodnoty a skutečné výsledky.
  • Zjisti střední kvadratickou chybu predikcí z křížové validace. Jsou obě hodnoty přibližně stejné?

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# mpg is available
summary(mpg)

# splitPlan is available
str(splitPlan)

# Run the 3-fold cross validation plan from splitPlan
k <- ___ # Number of folds
mpg$pred.cv <- 0 
for(i in ___) {
  split <- ___
  model <- lm(___, data = ___)
  mpg$pred.cv[___] <- predict(___, newdata = ___)
}

# Predict from a full model
mpg$pred <- ___(___(cty ~ hwy, data = mpg))

# Get the rmse of the full model's predictions
___(___, ___)

# Get the rmse of the cross-validation predictions
___(___, ___)
Upravit a spustit kód