Numero ottimale di pieghe nella convalida incrociata fold: il CV congedo unico è sempre la scelta migliore?


47

A parte le considerazioni sulla potenza di calcolo, ci sono dei motivi per ritenere che aumentare il numero di pieghe nella convalida incrociata porta a una migliore selezione / convalida del modello (vale a dire che maggiore è il numero di pieghe meglio è)?

Portando l'argomento all'estremo, la convalida incrociata senza esclusione di risultati porta necessariamente a modelli migliori rispetto alla convalida incrociata di K ?

Alcuni retroscena di questa domanda: sto lavorando a un problema con pochissimi casi (ad es. 10 positivi e 10 negativi), e temo che i miei modelli potrebbero non generalizzare bene / si adatterebbero troppo a pochi dati.



Questa domanda non è un duplicato perché si limita a piccoli set di dati e "Considerazioni sulla potenza di calcolo a parte". Questa è una grave limitazione, rendendo la domanda inapplicabile a quelli con grandi set di dati e l'algoritmo di training con complessità computazionale almeno lineare nel numero di istanze (o previsione almeno nella radice quadrata del numero di istanze).
Serge Rogatch,

Risposte:


46

La convalida incrociata senza esclusione di solito non porta a prestazioni migliori rispetto a K-fold ed è più probabile che sia peggiore , poiché presenta una varianza relativamente elevata (ovvero il suo valore cambia di più per diversi campioni di dati rispetto al valore per k-fold cross-validation). Ciò è negativo in un criterio di selezione del modello in quanto significa che il criterio di selezione del modello può essere ottimizzato in modi che sfruttano semplicemente la variazione casuale nel particolare campione di dati, piuttosto che apportare autentici miglioramenti nelle prestazioni, vale a dire che è più probabile che si adattino troppo il criterio di selezione del modello. Il motivo per cui nella pratica viene utilizzata la convalida incrociata "one-out-one-out" è che per molti modelli può essere valutato in modo molto economico come sottoprodotto dell'adattamento del modello.

Se la spesa computazionale non è principalmente un problema, un approccio migliore consiste nell'eseguire ripetute convalide incrociate k-fold, in cui la procedura di convalida incrociata k-fold viene ripetuta con diverse partizioni casuali in k sottoinsiemi disgiunti ogni volta. Questo riduce la varianza.

Se hai solo 20 modelli, è molto probabile che sperimenterai un adattamento eccessivo del criterio di selezione del modello, che è una trappola molto trascurata nelle statistiche e nell'apprendimento automatico (spina spudorata: vedi il mio articolo sull'argomento). Potresti stare meglio scegliendo un modello relativamente semplice e cercare di non ottimizzarlo in modo molto aggressivo, o adottare un approccio bayesiano e una media su tutte le scelte del modello, ponderato per la loro plausibilità. L'ottimizzazione IMHO è la radice di tutto il male nelle statistiche, quindi è meglio non ottimizzare se non è necessario e ottimizzare con cautela ogni volta che lo fai.

Nota anche se hai intenzione di eseguire la selezione del modello, devi usare qualcosa come la convalida incrociata nidificata se hai anche bisogno di una stima delle prestazioni (cioè devi considerare la selezione del modello come parte integrante della procedura di adattamento del modello e convalidare in modo incrociato che anche).


8
+1. Mi piace il tuo messaggio "l'ottimizzazione è la radice di tutto il male nelle statistiche" ...
S. Kolassa - Reinstate Monica il

5
Grazie @DikranMarsupial. Non lo seguo del tutto. Perché i modelli appresi con il congedo unico avrebbero una varianza maggiore rispetto alla normale convalida incrociata del k-fold ? La mia intuizione mi dice che, poiché attraverso le pieghe stiamo spostando solo un punto di dati, la formazione su pieghe si sovrappone pesantemente, quindi mi aspetterei di vedere una piccola varianza tra i modelli. O andando nella direzione opposta, nella piega a K, se K è basso, i set di allenamento per ogni piega sarebbero abbastanza diversi e i modelli risultanti hanno maggiori probabilità di essere diversi. Ho sbagliato?
Amelio Vazquez-Reina,

Questa è un'ottima domanda a sé stante, quindi ti suggerisco di farla come una nuova domanda, e penserò a come rispondere!
Dikran Marsupial,

Grazie @DikranMarsupial Ho seguito i tuoi consigli e ho iniziato una domanda separata qui .
Amelio Vazquez-Reina,

1
@DikranMarsupial Ho pensato di menzionare qui che ho iniziato un'altra discussione ispirata al tuo commento di "ottimizzazione nelle statistiche" in questa risposta. Il tuo commento mi ha fatto guardare al sovralimentazione da una prospettiva più ampia a cui sono abituato.
Amelio Vazquez-Reina,

8

Scegliendo il numero K si piega considerando la curva di apprendimento

Vorrei sostenere che la scelta del numero appropriato di pieghe dipende molto dalla forma e dalla posizione della curva di apprendimento, principalmente a causa del suo impatto sulla distorsione . Questo argomento, che si estende al CV "one-out-out", è ampiamente tratto dal libro "Elements of Statistical Learning" capitolo 7.10, pagina 243.K

Per discussioni sull'impatto di sulla varianza vedere quiK

Riassumendo, se la curva di apprendimento ha una pendenza considerevole alla dimensione del set di allenamento dato, la convalida incrociata di cinque o dieci volte sovrastimerà il vero errore di previsione. Se questo pregiudizio sia uno svantaggio nella pratica dipende dall'obiettivo. D'altra parte, la convalida incrociata con esclusione di dati ha una propensione bassa ma può avere una varianza elevata.

Una visualizzazione intuitiva usando un esempio di giocattolo

Per comprendere visivamente questo argomento, considera il seguente esempio di giocattolo in cui stiamo adattando un polinomio di grado 4 a una curva sinusoidale rumorosa:

inserisci qui la descrizione dell'immagine

Intuitivamente e visivamente, prevediamo che questo modello non funzionerà correttamente per piccoli set di dati a causa di un overfitting. Questo comportamento si riflette nella curva di apprendimento in cui tracciamo Errore quadrato medio vs Dimensione dell'allenamento insieme a una deviazione standard di 1. Si noti che ho scelto di tracciare 1 - MSE qui per riprodurre l'illustrazione utilizzata in ESL pagina 243±1±

inserisci qui la descrizione dell'immagine

Discutere l'argomento

Le prestazioni del modello migliorano significativamente all'aumentare della dimensione dell'allenamento fino a 50 osservazioni. Aumentare ulteriormente il numero a 200, ad esempio, porta solo piccoli benefici. Considera i seguenti due casi:

  1. Se il nostro set di training avesse 200 osservazioni, una validazione incrociata di volte stimerebbe le prestazioni su una dimensione di training di 160 che è praticamente la stessa delle prestazioni per le dimensioni del set di training 200. Pertanto la validazione incrociata non soffrirebbe di molti pregiudizi e aumentando a valori più grandi non porteranno molto beneficio ( diagramma a sinistra )K5K

  2. Tuttavia, se il set di training avesse osservazioni, una validazione incrociata di volte stimerebbe le prestazioni del modello rispetto a set di training di dimensioni 40, e dalla curva di apprendimento questo porterebbe a un risultato distorto. Quindi aumentare in questo caso tenderà a ridurre il bias. ( trama a destra ).5 K505K

inserisci qui la descrizione dell'immagine

[Aggiornamento] - Commenti sulla metodologia

Puoi trovare il codice per questa simulazione qui . L'approccio era il seguente:

  1. Genera 50.000 punti dalla distribuzione cui è nota la vera varianza diϵsin(x)+ϵϵ
  2. Iterate volte (ad es. 100 o 200 volte). Ad ogni iterazione, modifica il set di dati ricampionando punti dalla distribuzione originaleNiN
  3. Per ogni set di dati : i
    • Esegue la convalida incrociata K-fold per un valore diK
    • Memorizza l'errore medio quadrato medio (MSE) attraverso le pieghe K.
  4. Una volta completato il loop over , calcolare la deviazione media e standard dell'MSE attraverso set di dati per lo stesso valore dii KiiK
  5. Ripeti i passaggi precedenti per tutti i nell'intervallo fino a LOOCV{ 5 , . . . , N }K{5,...,N}

Un approccio alternativo consiste nel non ricampionare un nuovo set di dati ad ogni iterazione e invece rimpasto lo stesso set di dati ogni volta. Questo sembra dare risultati simili.



@Grazie per il codice! Ho eseguito il codice ma non capisco come si fa a conoscere il vero ( nel codice). Penso anche che il tuo codice sarà più compatto se definisci due funzioni una per i campioni bootstrap (Shuffle = False), una per KFold (Shuffle = True) :)1 - 11MSE1112
meTchaikovsky

@me_Tchaikovsky Ricorda che l'MSE del predittore può essere scomposto come e non assumendo alcuna propensione quando il modello corrisponde alla vera funzione sottostante, quindi ci rimane la varianza del termine di errore . La varianza della divisa rv è quindi in questo caso ε ~ U ( - .5 , .5 ) 1 / 12 ( b - a ) 2 1 / 12MSE=Var+Bias2ϵU(.5,.5)1/12(ba)21/12
Xavier Bourret Sicotte
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.