Quante volte dovremmo ripetere un CV K-fold?


18

Mi sono imbattuto in questo thread guardando le differenze tra bootstrap e cross validation - ottima risposta e riferimenti a proposito. Quello che mi chiedo è ora, se fossi di eseguire ripetute dire CV di 10 volte per calcolare la precisione di un classificatore, quante volte n dovrei ripeterlo?

Fa n dipenderà dal numero di pieghe? Sulla dimensione del campione? C'è qualche regola per questo?

(Nel mio caso, ho campioni grandi fino a 5000 e se scelgo qualcosa di più grande di n = 20 il mio computer impiega troppo tempo per eseguire il calcolo.)

Risposte:


10

Il fattore che influenza è la stabilità del tuo modello - o, più precisamente: le previsioni dei surrogati sono.

Se i modelli sono completamente stabili, tutti i modelli surrogati produrranno la stessa previsione per lo stesso caso di test. In tal caso, non sono necessarie iterazioni / ripetizioni e non apportano miglioramenti.

Dato che puoi misurare la stabilità delle previsioni, ecco cosa farei:

  • Impostare l'intera procedura in modo da salvare i risultati di ogni ripetizione / iterazione di convalida incrociata, ad es. Sul disco rigido
  • Inizia con un gran numero di iterazioni
  • Dopo alcune iterazioni, recupera i risultati preliminari e dai un'occhiata alla stabilità / variazione dei risultati per ogni serie.
  • Quindi decidere quante ulteriori iterazioni si desidera perfezionare i risultati.

  • Naturalmente puoi decidere di eseguire, diciamo, 5 iterazioni e poi decidere il numero finale di iterazioni che vuoi fare.

(Nota a margine: in genere utilizzo> circa 1000 modelli surrogati, quindi il numero tipico di ripetizioni / iterazioni sarebbe di circa 100-125).


13

Fai una domanda a uno statistico e la sua risposta sarà una sorta di "dipende".

Dipende . A parte il tipo di modello (buon punto cbeleites!), Il numero di set point di allenamento e il numero di predittori? Se il modello è per la classificazione, uno squilibrio di classe elevata mi farebbe aumentare il numero di ripetizioni. Inoltre, se dovessi ricampionare una procedura di selezione delle caratteristiche, mi sarei orientato verso più campioni.

Per qualsiasi metodo di ricampionamento utilizzato in questo contesto, ricorda che (diversamente dal bootstrap classico), hai solo bisogno di iterazioni sufficienti per ottenere una stima "abbastanza precisa" della media della distribuzione. Questo è soggettivo ma qualsiasi risposta sarà.

Attenersi alla classificazione con due classi per un secondo, supponiamo che tu preveda / speri che l'accuratezza del modello sia di circa 0,80. Poiché il processo di ricampionamento sta campionando la stima dell'accuratezza (diciamo p), l'errore standard sarebbe sqrt[p*(1-p)]/sqrt(B)dove si Btrova il numero di campioni. Per B = 10, l'errore standard dell'accuratezza è di circa 0,13 e con B = 100esso di circa 0,04. È possibile utilizzare quella formula come guida approssimativa per questo caso particolare.

Considera anche che, in questo esempio, la varianza dell'accuratezza viene massimizzata quanto più ti avvicini a 0,50, quindi un modello accurato dovrebbe richiedere meno repliche poiché l'errore standard dovrebbe essere inferiore rispetto ai modelli che sono discenti deboli.

HTH,

Max


2
Sarei estremamente cauto qui per applicare qualsiasi tipo di calcolo dell'errore standard in questo contesto, perché ci sono 2 fonti di varianza qui (instabilità del modello + set finito di casi di test), e penso che il ricampionamento della validazione non aggirerà il test finito imposta varianza: considera la validazione incrociata. In ogni corsa, tutti i casi di test vengono testati esattamente una volta. Pertanto la varianza tra le serie di CV iterati deve essere dovuta all'instabilità. Non osserverai (né ridurrai!) La varianza dovuta al test finito impostato in questo modo, ma ovviamente il risultato è ancora soggetto ad esso.
cbeleites supporta Monica il
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.