Validação cruzada com 10 folds
Como você viu no vídeo, uma forma melhor de validar modelos é usar vários conjuntos de teste sistemáticos, em vez de uma única divisão aleatória entre treino e teste. Felizmente, o pacote caret torna isso muito fácil:
model <- train(y ~ ., my_data)
O caret oferece suporte a muitos tipos de validação cruzada, e você pode especificar o tipo e o número de folds com a função trainControl(), que você passa para o argumento trControl em train():
model <- train(
y ~ .,
my_data,
method = "lm",
trControl = trainControl(
method = "cv",
number = 10,
verboseIter = TRUE
)
)
É importante observar que você passa o método de modelagem para a função principal train() e o método de validação cruzada para a função trainControl().
Este exercício faz parte do curso
Machine Learning com caret em R
Instruções do exercício
- Ajuste uma regressão linear para modelar
priceusando todas as outras variáveis do conjunto de dadosdiamondscomo preditoras. Use a funçãotrain()e validação cruzada com 10 folds. (Observe que usamos um subconjunto do conjuntodiamondscompleto para acelerar a operação, mas ele ainda se chamadiamonds.) - Imprima o modelo no console e examine os resultados.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Fit lm model using 10-fold CV: model
model <- train(
___,
___,
method = "lm",
trControl = trainControl(
method = "cv",
number = ___,
verboseIter = TRUE
)
)
# Print model to console