Validare încrucișată cu 10 iterații
Așa cum ai văzut în video, o abordare mai bună pentru validarea modelelor este să folosești mai multe seturi de testare sistematice, în loc de o singură împărțire aleatorie în date de antrenament și date de testare. Din fericire, pachetul caret face acest lucru foarte simplu:
model <- train(y ~ ., my_data)
caret suportă mai multe tipuri de validare încrucișată. Poți specifica tipul de validare încrucișată și numărul de iterații cu funcția trainControl(), pe care o transmiți argumentului trControl din train():
model <- train(
y ~ .,
my_data,
method = "lm",
trControl = trainControl(
method = "cv",
number = 10,
verboseIter = TRUE
)
)
Este important de reținut că metoda de modelare se transmite funcției principale train(), iar metoda de validare încrucișată se transmite funcției trainControl().
Acest exercițiu face parte din cursul
Machine Learning cu caret în R
Instrucțiuni pentru exercițiu
- Antrenează un model de regresie liniară pentru a modela variabila
pricefolosind toate celelalte variabile din setul de datediamondsdrept predictori. Folosește funcțiatrain()și validare încrucișată cu 10 iterații. (Reține că am folosit un subset al setului de date completdiamondspentru a accelera operația, dar acesta păstrează numelediamonds.) - Afișează modelul în consolă și analizează rezultatele.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Fit lm model using 10-fold CV: model
model <- train(
___,
___,
method = "lm",
trControl = trainControl(
method = "cv",
number = ___,
verboseIter = TRUE
)
)
# Print model to console