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
Oefeninstructies
- Pas een lineaire regressie toe om
pricete modelleren met alle andere variabelen in dediamonds-gegevensset als voorspellers. Gebruik de functietrain()en 10-voudige cross-validatie. (Let op: we hebben een subset van de volledigediamonds-gegevensset genomen om dit te versnellen, maar de naam is nog steedsdiamonds.) - 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