O que exatamente é validação cruzada?
Com base no meu entendimento do google e de outros posts, como este Para que serve a validação cruzada? e o que é validação cruzada? . Eu entendo que (k-fold) validação cruzada significa dividir os dados em ($k-1$) treinamento e 1 conjunto de teste. Em outras palavras, é usado para encontrar a precisão do modelo.
Então, isso significa que se eu fizer validação cruzada, não preciso dividir meus dados em conjunto de dados de treinamento e teste? Além disso, diga se eu fizer (em r):
model = train(target~., data = data, method = "glmnet",
trControl = trainControl("cv", number = 10),
tuneLength = 10
)
este código me encontrará o melhor modelo nessas 10 tentativas, e então, quando faço a previsão, estou usando o melhor modelo?
Respostas
A validação cruzada é uma forma especial de dividir dados em dados de treinamento e teste, em que essa divisão não ocorre apenas uma vez, mas um número $n$ de vezes.
Além disso, diga se eu faço (em r)
Existe um pacote muito poderoso que pode ser carregado no R, chamado caret. caretoferece a função muito poderosa trainusada em seu código de amostra. caretde fato, tira muito do trabalho de encontrar o melhor conjunto de parâmetros (de uma grade de combinações possíveis) para o aprendizado de máquina; incluindo via validação cruzada. Você não terá que dividir os dados manualmente, mas a divisão ocorrerá.
este código vai me encontrar o melhor modelo
ele encontrará a melhor combinação de parâmetros de uma determinada grade de combinações de parâmetros experimentando. Antes de usar uma ferramenta poderosa como trainvocê deve entender bem suas opções, também entender como influenciar qual grade de parâmetros está sendo experimentada.
Felizmente caretvem com ótimas explicações. Começa aqui:https://topepo.github.io/caret/model-training-and-tuning.html ou melhor, começar no início desse livro.