Poiché l'OP ha posto una taglia su questa domanda, dovrebbe attirare una certa attenzione, e quindi è il posto giusto per discutere alcune idee generali, anche se non risponde direttamente all'OP.
Primo nome:
a) la convalida incrociata è il nome generale per tutte le tecniche di stima / misura che utilizzano un set di prova diverso dal set di treni. Sinonimo: stime fuori campione o extra campione. Antonym: stima in campione.
La stima nel campione sono tecniche che utilizzano alcune informazioni sul set di addestramento per stimare la qualità del modello (non necessariamente errore). Questo è molto comune se il modello ha un alto pregiudizio, cioè fa grandi ipotesi sui dati. Nei modelli lineari (un modello di bias elevato), come nell'esempio della domanda, si usa R-quadrato, AIC, BIC, devianza, come misura della qualità del modello - tutti questi sono stimatori nel campione. In SVM, ad esempio, i dati del rapporto nel vettore di supporto rispetto al numero di dati sono una stima nel campione di errore del modello.
Esistono molte tecniche di convalida incrociata:
b) l' aggancio è il metodo n. 1 sopra. Dividi il set in un allenamento e un test. C'è una lunga storia di discussioni e pratiche sulle dimensioni relative del set di addestramento e test.
c) k -fold - metodo n. 2 sopra. Piuttosto standard.
d) Leave-one-out - metodo n. 3 sopra.
e) bootstrap : se il tuo set ha N dati, seleziona casualmente N campioni CON SOSTITUZIONE dal set e usalo come allenamento. I dati del set originale che non sono stati sottoposti a campionamento in qualsiasi momento vengono utilizzati come set di test. Esistono diversi modi per calcolare la stima finale dell'errore del modello che utilizza sia l'errore per il set di test (fuori campione) sia l'errore per il set di treni (in campione). Vedere ad esempio il bootstrap .632. Penso che esista anche una formula .632+: sono formule che stimano il vero errore del modello utilizzando sia errori fuori campione che all'interno del campione.
f) Ortogonale alla selezione del metodo sopra è la questione della ripetizione. Ad eccezione del congedo, tutti i metodi sopra possono essere ripetuti un numero qualsiasi di volte. In effetti, si può parlare di hold-out REPEATED , o REPEATED k -fold. Per essere onesti, quasi sempre il metodo bootstrap viene utilizzato in modo ripetuto.
La domanda successiva è: quale metodo è "migliore". Il problema è che cosa significa "migliore".
1) La prima risposta è se ciascuno di questi metodi è distorto per la stima dell'errore del modello (per una quantità infinita di dati futuri).
2) La seconda alternativa è quanto velocemente o quanto bene ciascuno di questi metodi converge al vero errore del modello (se non sono distorti). Credo che questo sia ancora un argomento di ricerca. Permettetemi di indicare questi due documenti (dietro la parete di pagamento) ma l'abstract ci dà una comprensione di ciò che stanno cercando di realizzare. Si noti inoltre che è molto comune chiamare k -fold come "convalida incrociata" da solo.
Probabilmente ci sono molti altri articoli su questi argomenti. Questi sono solo alcuni esempi.
3) Un altro aspetto di "migliore" è: data una particolare misura dell'errore del modello usando una delle tecniche sopra, come si può essere certi che l'errore del modello corretto sia vicino.
In generale, in questo caso si desidera prendere molte misure dell'errore e calcolare un intervallo di confidenza (o un intervallo credibile se si segue un approccio bayesiano). In questo caso, il problema è quanto ci si può fidare della varianza del set di misure di errore. Nota che, tranne per il congedo unico, tutte le tecniche sopra ti daranno molte misure diverse ( k misure per una piega k , n misure per una tenuta n ripetuta) e quindi puoi misurare la varianza (o deviazione standard ) di questo set e calcola un intervallo di confidenza per la misura dell'errore.
Qui le cose si complicano. Da quello che ho capito dal documento Nessuno stimatore imparziale della varianza della convalida incrociata di k -fold (non dietro paywall), non ci si può fidare della varianza che si ottiene da una k -fold - quindi non si può costruire un buon intervallo di confidenza da k - pieghe. Anche da quello che ho capito dall'articolo Test statistici approssimativi per il confronto tra algoritmi di apprendimento di classificazione supervisionata (non dietro paywall), tecniche che utilizzano misure ripetute (ripetute k-fold, ripetuto hold-out - non sono sicuro di bootstrap) sottostimerà la vera varianza della misura dell'errore (è abbastanza facile vederlo - poiché stai campionando da un set finito se ripeti la misura un numero molto grande di volte, gli stessi valori continueranno a ripetersi, il che mantiene la media uguale, ma riduce la varianza). Pertanto, le tecniche di misurazione ripetute saranno troppo ottimistiche sull'intervallo di confidenza.
Quest'ultimo articolo suggerisce di fare un 5 volte ripetuto - che chiama 5 × 2 CV - come un buon equilibrio tra molte misure (10) ma non troppe ripetizioni.
MODIFICARE:
Naturalmente ci sono grandi risposte in Cross Validated ad alcune di queste domande (anche se a volte non sono d'accordo tra loro). Qui ce ne sono alcuni:
Convalida incrociata o bootstrap per valutare le prestazioni di classificazione?
Differenze tra validazione incrociata e bootstrap per stimare l'errore di previsione
Convalida incrociata o bootstrap per valutare le prestazioni di classificazione?
Comprensione del bootstrap per la validazione e la selezione del modello
In generale, il tag cross-validation è il tuo amico qui.
Quindi qual è la soluzione migliore? Non lo so. Ho usato CV 5 × 2 quando devo essere molto rigoroso, quando devo essere sicuro che una tecnica sia migliore di un'altra, specialmente nelle pubblicazioni. E utilizzo un controllo se non ho intenzione di misurare la varianza o la deviazione standard o se ho vincoli di tempo: esiste un solo modello di apprendimento in un controllo .