Kom igångKom igång gratis

10-faldig korsvalidering

Som du såg i videon är det bättre att validera modeller med flera systematiska testmängder i stället för en enda slumpmässig uppdelning i tränings- och testdata. Med paketet caret är det enkelt att göra:

model <- train(y ~ ., my_data)

caret stöder många typer av korsvalidering. Du anger vilken typ av korsvalidering och hur många vikningar som ska användas via funktionen trainControl(), som du skickar till argumentet trControl i train():

model <- train(
  y ~ ., 
  my_data,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = 10,
    verboseIter = TRUE
  )
)

Notera att du skickar modelleringsmetoden till huvudfunktionen train() och korsvalideringsmetoden till trainControl().

Den här övningen är en del av kursen

Maskininlärning med caret i R

Visa kurs

Övningsinstruktioner

  • Anpassa en linjär regression för att modellera price med hjälp av alla övriga variabler i datamängden diamonds som prediktorer. Använd funktionen train() och 10-faldig korsvalidering. (Observera att vi använder en delmängd av den fullständiga datamängden diamonds för att påskynda beräkningen, men den heter fortfarande diamonds.)
  • Skriv ut modellen i konsolen och granska resultaten.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Fit lm model using 10-fold CV: model
model <- train(
  ___, 
  ___,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = ___,
    verboseIter = TRUE
  )
)

# Print model to console
Redigera och kör kod