Aan de slagGa gratis aan de slag

10-voudige cross-validatie

Zoals je in de video zag, is een betere manier om modellen te valideren het gebruik van meerdere systematische testsets in plaats van één enkele willekeurige train/test-splitsing. Gelukkig maakt het caret-pakket dit heel eenvoudig:

model <- train(y ~ ., my_data)

caret ondersteunt veel soorten cross-validatie. Met de functie trainControl() kun je het type cross-validatie en het aantal folds opgeven; deze geef je door aan het argument trControl in train():

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

Belangrijk: je geeft de modelleer-methode mee aan de hoofdfunctie train() en de methode voor cross-validatie aan de functie trainControl().

Deze oefening maakt deel uit van de cursus

Machine Learning met caret in R

Cursus bekijken

Oefeninstructies

  • Pas een lineaire regressie toe om price te modelleren met alle andere variabelen in de diamonds-gegevensset als voorspellers. Gebruik de functie train() en 10-voudige cross-validatie. (Let op: we hebben een subset van de volledige diamonds-gegevensset genomen om dit te versnellen, maar de naam is nog steeds diamonds.)
  • Print het model naar de console en bekijk de resultaten.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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

# Print model to console
Code bewerken en uitvoeren