Che cos'è esattamente la convalida incrociata?
In base alla mia comprensione di Google e di altri post, come questo A cosa serve la convalida incrociata? e che cos'è la convalida incrociata? . Capisco che (k-fold) la convalida incrociata significa suddividere i dati in ($k-1$) formazione e 1 set di test. In altre parole, viene utilizzato per trovare la precisione del modello.
Quindi, significa che se eseguo la convalida incrociata, non è necessario suddividere i dati in set di dati di addestramento e test? Inoltre, dì se lo faccio (in r):
model = train(target~., data = data, method = "glmnet",
trControl = trainControl("cv", number = 10),
tuneLength = 10
)
questo codice mi troverà il modello migliore in quelle 10 prove, e poi quando faccio la previsione, sto usando il modello migliore?
Risposte
La convalida incrociata è una forma speciale che consente di suddividere i dati in dati di addestramento e test, in cui questa suddivisione non si verifica solo una volta ma un numero $n$ di volte.
Inoltre, dì se lo faccio (in r)
C'è un pacchetto molto potente che può essere caricato in R, chiamato caret. caretfornisce la funzione molto potente trainche viene utilizzata nel codice di esempio. caretrichiede davvero molto dal lavoro di ricerca del miglior set di parametri (da una griglia di possibili combinazioni) per l'apprendimento automatico; anche tramite convalida incrociata. Non sarà necessario dividere i dati manualmente, ma la divisione avverrà.
questo codice mi troverà il modello migliore
troverà la migliore combinazione di parametri da una data griglia di combinazioni di parametri provando. Prima di utilizzare uno strumento potente come trainte, dovresti capire bene le sue opzioni, capire anche come influenzare la griglia di parametri che viene provata.
Fortunatamente caretviene fornito con ottime spiegazioni. Comincia qui:https://topepo.github.io/caret/model-training-and-tuning.html o meglio iniziare dall'inizio di quel libro.