10násobná křížová validace
Jak jsi viděl/a ve videu, lepším přístupem k validaci modelů je použití více systematických testovacích sad místo jediného náhodného rozdělení na trénovací a testovací část. Balíček caret to naštěstí velmi usnadňuje:
model <- train(y ~ ., my_data)
caret podporuje mnoho typů křížové validace. Typ křížové validace a počet foldů můžeš nastavit pomocí funkce trainControl(), kterou předáš argumentu trControl ve funkci train():
model <- train(
y ~ .,
my_data,
method = "lm",
trControl = trainControl(
method = "cv",
number = 10,
verboseIter = TRUE
)
)
Důležité je, že metodu modelování předáváš hlavní funkci train(), zatímco metodu křížové validace předáváš funkci trainControl().
Toto cvičení je součástí kurzu
Machine Learning s balíčkem caret v R
Pokyny k cvičení
- Natrénuj lineární regresi, která modeluje proměnnou
prices využitím všech ostatních proměnných v datasetudiamondsjako prediktorů. Použij funkcitrain()a 10násobnou křížovou validaci. (Poznámka: pracujeme s podmnožinou plného datasetudiamonds, aby operace proběhla rychleji – dataset se ale stále jmenujediamonds.) - Vypiš model do konzole a prohlédni si výsledky.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Fit lm model using 10-fold CV: model
model <- train(
___,
___,
method = "lm",
trControl = trainControl(
method = "cv",
number = ___,
verboseIter = TRUE
)
)
# Print model to console