Convalida incrociata interna vs esterna e selezione del modello


26

La mia comprensione è che con la validazione incrociata e la selezione del modello cerchiamo di affrontare due cose:

P1 . Stimare la perdita attesa sulla popolazione durante l'allenamento con il nostro campione

P2 . Misura e segnala la nostra incertezza di questa stima (varianza, intervalli di confidenza, distorsione, ecc.)

La pratica standard sembra essere quella di ripetere la convalida incrociata, poiché ciò riduce la varianza del nostro stimatore.

Tuttavia, quando si tratta di reportistica e analisi, la mia comprensione è che la convalida interna è migliore della convalida esterna perché:

È meglio segnalare:

  • Le statistiche del nostro stimatore, ad es. Intervallo di confidenza, varianza, media, ecc. Sul campione completo (in questo caso il campione CV).

di segnalare:

  • La perdita del nostro stimatore su un sottoinsieme di controllo del campione originale, poiché:

    (i) Questa sarebbe una singola misurazione ( anche se selezioniamo il nostro stimatore con CV )

    (ii) Il nostro stimatore per questa singola misurazione sarebbe stato addestrato su un set (ad esempio il set CV) che è più piccolo del nostro campione iniziale poiché dobbiamo fare spazio per il set di controllo. Ciò si traduce in una stima (pessimistica) più distorta in P1 .

È corretto? Se no perché?

Sfondo:

È facile trovare libri di testo che consigliano di dividere il campione in due set:

  • Il set di CV , che viene successivamente e ripetutamente suddiviso in set di treni e convalide .
  • Il hold-out (test) set, usato solo alla fine di segnalare le prestazioni stimatore

La mia domanda è un tentativo di comprendere i vantaggi e i vantaggi di questo approccio da manuale, considerando che il nostro obiettivo è quello di affrontare davvero i problemi P1 e P2 all'inizio di questo post. Mi sembra che riferire sul set di test di hold-out sia una cattiva pratica poiché l'analisi del campione CV è più istruttiva.

K-fold nidificato vs K-fold ripetuto:

In linea di principio, si può combinare la tenuta con la piega a K normale per ottenere la piega a K nidificata . Questo ci permetterebbe di misurare la variabilità del nostro stimatore, ma mi sembra che per lo stesso numero di modelli totali addestrati (numero totale di pieghe) ripetute piegature a K si otterrebbero stimatori che sono meno distorti e più accurati di K- nidificati piega. Per vedere questo:

  • La piega a K ripetuta utilizza una frazione maggiore del nostro campione totale rispetto alla piega a K nidificata per la stessa K (ovvero porta a una distorsione inferiore)
  • 100 iterazioni darebbero solo 10 misurazioni del nostro stimatore nella piega a K nidificata (K = 10), ma 100 misurazioni nella piega a K (più misurazioni portano a una varianza inferiore in P2 )

Cosa c'è di sbagliato in questo ragionamento?


1
Ho modificato il tuo titolo in modo che sia più specifico di ciò che ho raccolto che vuoi sapere. Penso che sia più probabile che tu ottenga le informazioni di cui hai bisogno in questo modo. Sentiti libero di cambiarlo se non sei d'accordo. Nota anche che questo thread è diventato automaticamente CW a causa dell'elevato numero di modifiche. Se non vuoi che sia CW, segnalalo per l'attenzione del moderatore; dovrebbe essere possibile invertire ciò (penso).
gung - Ripristina Monica

1
Grazie @gung. La mia unica preoccupazione è che alcune persone possano confondere l'aggancio con un CV doppio , con questo, penso che il CV interno vs esterno sia più chiaro come in Steyerberg03
Amelio Vazquez-Reina

Risposte:


20

Vorrei aggiungere alcuni punti alle belle risposte che sono già qui:

K-fold nidificato vs K-fold ripetuto: il k-fold nidificato e ripetuto sono cose totalmente diverse, utilizzate per scopi diversi.

  • Come già sapete , nidificato è utile se si desidera utilizzare il cv interno per la selezione del modello.
  • ripetuto: IMHO dovresti sempre ripetere k-fold cv [vedi sotto].

Pertanto consiglio di ripetere qualsiasi convalida incrociata k-fold nidificata .

Rapporto migliore "Le statistiche del nostro stimatore, ad es. Intervallo di confidenza, varianza, media, ecc. Sul campione completo (in questo caso il campione CV)." :

Sicuro. Tuttavia, è necessario essere consapevoli del fatto che non sarà (facilmente) in grado di stimare l'intervallo di confidenza solo dai risultati della convalida incrociata. Il motivo è che, per quanto ricampi, il numero effettivo di casi che guardi è finito (e di solito piuttosto piccolo - altrimenti non ti preoccuperesti di queste distinzioni).
Vedi ad esempio Bengio, Y. e Grandvalet, Y .: No stimatore indiscusso della varianza del diario di convalida incrociata K-Fold di Machine Learning Research, 2004, 5, 1089-1105 .

n

nσ2(p^)=1np(1-p)pp^np=0,5
C. Beleites, R. Salzer e V. Sergo: Convalida di modelli di classificazione soft mediante appartenenze a classi parziali: un concetto esteso di sensibilità e Co. applicato alla classificazione dei tessuti di astrocitoma, Chemom. Intell. Laboratorio. Syst., 122 (2013), 12-22.

Quindi, questo mi permette di ribaltare la tua argomentazione contro l'aggancio :

  • Né il ricampionamento da solo (necessariamente) ti dà una buona stima della varianza,
  • OTOH, se si può ragionare sulla varianza del test finito-campione della stima della convalida incrociata, è anche possibile tenerlo.

Il nostro stimatore per questa singola misurazione sarebbe stato addestrato su un set (ad esempio il set CV) che è più piccolo del nostro campione iniziale poiché dobbiamo fare spazio per il set di controllo. Ciò si traduce in una stima (pessimistica) più distorta in P1.

1K

Mi sembra che riferire sul set di test di hold-out sia una cattiva pratica poiché l'analisi del campione CV è più istruttiva.

Di solito si. Tuttavia, è anche bene tenere presente che esistono importanti tipi di errori (come la deriva) che non possono essere misurati / rilevati mediante il ricampionamento della convalida.
Vedi ad esempio Esbensen, KH e Geladi, P. Principi di corretta convalida: uso e abuso del ricampionamento per la validazione, Journal of Chemometrics, 2010, 24, 168-187

ma mi sembra che per lo stesso numero di modelli totali addestrati (numero totale di pieghe) la piega a K ripetuta produrrebbe stimatori che sono meno distorti e più accurati della piega a K nidificata. Per vedere questo:

La piega a K ripetuta utilizza una frazione maggiore del nostro campione totale rispetto alla piega a K nidificata per la stessa K (ovvero porta a una distorsione inferiore)

K-1Kn
K

100 iterazioni darebbero solo 10 misurazioni del nostro stimatore nella piega a K nidificata (K = 10), ma 100 misurazioni nella piega a K (più misurazioni portano a una varianza inferiore in P2)

Se questo fa la differenza dipende dall'instabilità dei modelli (surrogati), vedi sopra. Per i modelli stabili è irrilevante. Quindi può essere se si eseguono 1000 o 100 ripetizioni / iterazioni esterne.


E questo documento appartiene definitivamente alla lista di lettura su questo argomento: Cawley, GC e Talbot, NLC su sovra-adattamento nella selezione dei modelli e conseguente bias di selezione nella valutazione delle prestazioni, Journal of Machine Learning Research, 2010, 11, 2079-2107


6

Un riferimento chiave che spiega questo è:

@ARTICLE{pic90,
  author = {Picard, R. R. and Berk, K. N.},
  year = 1990,
  title = {Data splitting},
  journal = The American Statistician,
  volume = 44,
  pages = {140-147}
}

Guarda anche:

@Article{mic05pre,
  author =       {Michiels, Stefan and Koscielny, Serge and Hill, Catherine},
  title =        {Prediction of cancer outcome with microarrays: a
multiple random validation strategy},
  journal =      {Lancet},
  year =         2005,
  volume =       365,
  pages =        {488-492},
  annote =       {comment on
p. 454; validation;microarray;bioinformatics;machine learning;nearest
centroid;severe problems with data splitting;high variability of list
of genes;problems with published studies;nice results for effect of
training sample size on misclassification error;nice use of confidence
intervals on accuracy estimates;unstable molecular signatures;high
instability due to dependence on selection of training sample}
}

Nel mio lavoro ho scoperto che la suddivisione dei dati richiede formazione e test delle dimensioni dei campioni che si avvicinano a 10.000 per funzionare in modo soddisfacente.


Frank - Queste sono grandi risorse. Mi chiedo come queste informazioni siano correlate a ciò che @Dan ha fornito nella sua risposta. Forse sto leggendo male questo, ma sembra che la comunità sia divisa su questo tema.
Amelio Vazquez-Reina,

Non ho avuto il tempo di leggere il primo, ma per quanto riguarda il secondo, ho dato una rapida occhiata e sembra riecheggiare esattamente ciò che dicevano i miei documenti. Dai un'occhiata da vicino alla sezione "Analisi statistica" e vedrai che descrivono lo stesso processo di selezione delle funzionalità che Dikran descrive nel post che ho linkato sopra. Immagino che le persone che hanno studiato non lo abbiano fatto in questo modo, ed è per questo che scoprono che "A causa della convalida inadeguata, i nostri studi scelti hanno pubblicato risultati troppo ottimistici rispetto a quelli delle nostre stesse analisi". Non penso che ci sia disaccordo.
Dan L

4

Dipende molto dal processo di creazione del modello, ma ho trovato utile questo documento

http://www.biomedcentral.com/content/pdf/1471-2105-7-91.pdf

Il punto cruciale di ciò che viene discusso qui è il significativo pregiudizio liberale (stimare le prestazioni del modello per essere migliori di quello che sarà effettivamente) che si verificherà se si seleziona il modello in base alla stessa cosa che si sta utilizzando per stimarne le prestazioni. Pertanto, se si sta selezionando il proprio modello da una serie di possibili modelli osservando il suo errore di convalida incrociata, non è necessario utilizzare l'errore di convalida incrociata (o qualsiasi altro metodo di stima interno) per stimare le prestazioni del modello.

Un'altra risorsa utile è

/stats//a/27751/26589

Questo post fornisce un chiaro esempio di come la selezione delle funzionalità quando tutti i dati vengono "visti" porterà a una distorsione liberale nelle prestazioni del modello (affermando che il modello funzionerà meglio di quanto non faccia effettivamente).

Se desideri che esponga un esempio più specifico di ciò che fai, forse potresti fornire una descrizione generale dei tipi di modelli che stai costruendo (quanti dati hai, quante funzioni scegli, il modello attuale, ecc.).


Grazie Dan. Questo è tutto interessante Per semplicità possiamo supporre che stiamo provando a stimare i parametri del kernel di un SVM (ad esempio un kernel RBF) per la classificazione binaria (<~ 10 parametri) e che stiamo lavorando con 100 campioni (ad esempio 20 positivi) da una vasta popolazione.
Amelio Vazquez-Reina,

Un paio di domande veloci. 1) Quando costruisci i tuoi SVM, ti permetti di scegliere un sottoinsieme dei 10 parametri o usi sempre tutti quelli che ti vengono consegnati? 2) Hai mai preso in considerazione kernel o modelli diversi (logistica, foresta casuale, ecc.)? 3) Quale software / pacchetto stai usando? Le implementazioni di convalida incrociata integrate variano e mi piacerebbe sapere quale useresti.
Dan L

Grazie @ Dan - Faccio una ricerca della griglia tra modelli e parametri (cioè i kernel e i parametri sono diversi attraverso la ricerca della griglia). Per ogni esperimento nella ricerca della griglia faccio CV (ripetuta convalida incrociata K-fold). Sto usando Scikit-Learn.
Amelio Vazquez-Reina,

1
Grazie @ Dan. Immagino che la mia unica domanda rimasta sulla validazione incrociata nidificata sia come scegliere il modello (dato che ottengo un modello diverso in ogni piega del ciclo esterno). Non mi sembrerebbe ragionevole scegliere il modello con il punteggio più alto in questo circuito esterno, poiché il modello vincente in ogni piega viene misurato rispetto a una parte diversa del set di dati.
Amelio Vazquez-Reina,

1
Supponi di avere 3 pieghe esterne. Ciò significa che esegui un intero processo di costruzione del modello 3 volte, offrendoti tre diversi modelli. Alla fine non usi nessuno di questi modelli - per ottenere il tuo modello finale, esegui l'intero processo di creazione del modello su tutti i tuoi dati (tranne forse per un set di valutazione indipendente). Sembra che ciò comporterebbe un overfitting, ma se la strategia di costruzione del modello si adatta troppo, dovrebbe anche sovrautilizzare nella convalida incrociata esterna, portando a una stima dell'errore adeguatamente più elevata.
Dan L

2

Penso che la tua comprensione sia corretta, lo stimatore per le perdite ottenute utilizzando un singolo set di test di controllo di solito ha una varianza elevata. Eseguendo qualcosa come la convalida incrociata di K-fold si ottiene un'idea più accurata della perdita, nonché il senso di distribuzione della perdita.

Di solito c'è un compromesso, più CV si ripiega meglio è la stima, ma è necessario più tempo di calcolo.


Grazie. Ho aggiunto uno sfondo all'OP per chiarire ulteriormente la mia domanda.
Amelio Vazquez-Reina,
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.