Quando è davvero necessaria la validazione incrociata nidificata e può fare la differenza pratica?


36

Quando si utilizza la convalida incrociata per effettuare la selezione del modello (come ad esempio la regolazione dell'iperparametro) e per valutare le prestazioni del modello migliore, è necessario utilizzare la convalida incrociata nidificata . L'anello esterno serve per valutare le prestazioni del modello e l'anello interno deve selezionare il modello migliore; il modello viene selezionato su ciascun set di allenamento esterno (utilizzando il loop CV interno) e le sue prestazioni vengono misurate sul set di test esterno corrispondente.

Questo è stato discusso e spiegato in molti thread (come ad esempio qui Formazione con il set di dati completo dopo la convalida incrociata?, Vedere la risposta di @DikranMarsupial) ed è del tutto chiaro per me. Fare solo una convalida incrociata semplice (non nidificata) sia per la selezione del modello che per la stima delle prestazioni può produrre stime delle prestazioni distorte positivamente. @DikranMarsupial ha pubblicato un documento del 2010 proprio su questo argomento (Sull'adattamento eccessivo nella selezione del modello e sulla conseguente distorsione della selezione nella valutazione delle prestazioni ) con la Sezione 4.3 chiamata L' eccessivo adattamento nella selezione del modello è davvero una vera preoccupazione nella pratica? - e il documento mostra che la risposta è Sì.

Detto questo, ora sto lavorando con la regressione a creste multiple multivariate e non vedo alcuna differenza tra CV semplice e nidificato, e quindi il CV nidificato in questo caso particolare sembra un onere computazionale non necessario. La mia domanda è: a quali condizioni il CV semplice produrrà una distorsione evidente che viene evitata con il CV nidificato? Quando in pratica conta il CV nidificato e quando non conta così tanto? Ci sono delle regole empiriche?

Ecco un'illustrazione che utilizza il mio set di dati effettivo. L'asse orizzontale è per la regressione della cresta. L'asse verticale è un errore di convalida incrociata. La linea blu corrisponde alla convalida incrociata semplice (non nidificata), con 50 divisioni casuali di prova / allenamento 90:10. La linea rossa corrisponde alla validazione incrociata nidificata con 50 split casuali di allenamento / test 90:10, dove λ è scelto con un loop interno di validazione incrociata (anche 50 split casuali 90:10). Le linee sono più di 50 divisioni casuali, le ombre mostrano la deviazione standard .log(λ)λ±1

Convalida incrociata semplice vs nidificata

La linea rossa è piatta perchéλ viene selezionato nel loop interno e le prestazioni del loop esterno non vengono misurate nell'intero intervallo di . Se la semplice convalida incrociata fosse distorta, il minimo della curva blu sarebbe sotto la linea rossa. Ma non è così.λ

Aggiornare

In realtà è il caso :-) È solo che la differenza è minuscola. Ecco lo zoom-in:

Convalida incrociata semplice e nidificata, ingrandimento

λ=0.00250

Convalida incrociata semplice vs nidificata, differenze

λ=0.002

(Ho eseguito l'intera procedura un paio di volte e succede ogni volta.)

La mia domanda è: in quali condizioni possiamo aspettarci che questo pregiudizio sia minuscolo e in quali condizioni non dovremmo?


Non sono troppo sicuro di aver capito il diagramma, potresti generare un diagramma a dispersione che mostra l'errore stimato dalla convalida incrociata nidificata e non nidificata su ciascun asse (presumendo che le 50 divisioni di test-training fossero le stesse ogni volta)? Quanto è grande il set di dati che stai utilizzando?
Dikran Marsupial,

1
Ho generato il diagramma a dispersione, ma tutti i punti sono molto vicini alla diagonale ed è difficile discernere qualsiasi deviazione da esso. Quindi, invece, ho sottratto un semplice errore CV (per un lambda ottimale) dall'errore CV nidificato e lo ho tracciato in tutte le suddivisioni del test di allenamento. Sembra esserci un pregiudizio molto piccolo, ma evidente! Ho fatto l'aggiornamento. Fammi sapere se le cifre (o le mie spiegazioni) sono confuse, vorrei che questo post fosse chiaro.
ameba dice di reintegrare Monica il

Nel primo paragrafo, hai il modello selezionato su ogni set di allenamento esterno ; dovrebbe forse essere interno- invece?
Richard Hardy,

@RichardHardy No. Ma vedo che questa frase non è formulata in modo molto chiaro. Il modello è "selezionato" su ciascun set di allenamento esterno. Diversi modelli (ad es. Modelli con lambda diversi) sono adatti a ciascun set di allenamento interno, testati su set di test interni, quindi viene selezionato uno dei modelli , basato sull'intero set di allenamento esterno. Le prestazioni vengono quindi valutate utilizzando il set di test esterni. Ha senso?
ameba dice di reintegrare Monica l'

Risposte:


13

Vorrei suggerire che la distorsione dipende dalla varianza del criterio di selezione del modello, maggiore è la varianza, maggiore è la probabilità che la distorsione sia. La varianza del criterio di selezione del modello ha due fonti principali, la dimensione del set di dati su cui viene valutata (quindi se si dispone di un set di dati piccolo, maggiore è la probabilità che si verifichino errori) e sulla stabilità del modello statistico (se i parametri del modello sono ben stimati dai dati di addestramento disponibili, c'è una minore flessibilità per il modello che si adatta troppo al criterio di selezione del modello sintonizzando gli iperparametri). L'altro fattore rilevante è il numero di scelte del modello da effettuare e / o iper-parametri da mettere a punto.

Nel mio studio, sto esaminando potenti modelli non lineari e set di dati relativamente piccoli (comunemente utilizzati negli studi sull'apprendimento automatico) ed entrambi questi fattori indicano che la convalida incrociata nidificata è assolutamente necessaria. Se si aumenta il numero di parametri (magari avendo un kernel con un parametro di ridimensionamento per ciascun attributo) l'over-fitting può essere "catastrofico". Se si utilizzano modelli lineari con un solo parametro di regolarizzazione e un numero relativamente elevato di casi (rispetto al numero di parametri), è probabile che la differenza sia molto più piccola.

Vorrei aggiungere che consiglierei sempre di utilizzare la convalida incrociata nidificata, a condizione che sia fattibile dal punto di vista computazionale, in quanto elimina una possibile fonte di pregiudizio in modo che noi (e i peer-reviewer; o) non dobbiamo preoccuparci se sia trascurabile o no.


2
Se si utilizzano tutti i dati, non sta effettivamente pianificando l'errore del set di addestramento? Abbastanza spesso uso modelli di classificazione in cui i migliori modelli hanno zero errori di addestramento ma errore di generalizzazione diverso da zero, anche se il parametro di regolarizzazione è scelto con cura.
Dikran Marsupial,

1
Alcune migliaia di modelli di allenamento o meno. Che tipo di modello stai usando? Man mano che il set di dati aumenta, i problemi statistici diminuiscono e aumentano i problemi computazionali, come regola generale. La convalida incrociata di k-fold è solo k volte più lenta rispetto al modello di base (inclusa la sintonizzazione di iperparametri), quindi raramente passa da fattibile a non fattibile. k-fold cross-valdiation è anche facilmente parallelizzabile, cosa che di solito faccio.
Dikran Marsupial,

1
Fornisce solo una stima delle prestazioni imparziale. Il CV essenzialmente nidificato stima le prestazioni di un metodo di adattamento di un modello, inclusa la selezione del modello tramite convalida incrociata. Per ottenere il modello operativo, in genere ripetiamo semplicemente il metodo utilizzando l'intero set di dati, che offre le stesse scelte di modello della procedura di convalida incrociata "piatta".
Dikran Marsupial,

1
Mi sono anche imbattuto nel problema del CV nidificato. L'uso del CV nidificato imparziale comporta l'adattamento di modelli con dati più piccoli. Per CV 10 volte, è come l'81% nel CV nidificato contro il 90% nel CV non nidificato. Anche la piega del test diventa 9% vs 10% in non nidificati. Ciò genera una varianza aggiuntiva nella valutazione del modello? Soprattutto per piccoli set di dati, come 350 campioni in questo post. È questo lo "svantaggio" che utilizza CV nidificato? In tal caso, come dovremmo decidere se utilizzare un CV nidificato rispetto alla dimensione del set di dati? Apprezzo molto l'opinione di esperti come te su questo tema. C'è qualche documento relativo a questo problema? @Dikran Marsupial
zesla, il

2
@zesla Sì, è vero che esistono meno dati per la convalida incrociata interna, che aumenterà la sua varianza, tuttavia il modello finale viene creato utilizzando l'intero set di dati (inclusa la stima di iperparametri). C'è sempre un compromesso tra distorsione e variazione nella stima delle prestazioni. È molto importante utilizzare la convalida incrociata nidificata se il set di dati è piccolo poiché un eccesso di adattamento nella selezione del modello e la distorsione è più un problema. Nelle applicazioni pratiche, dove ci sono pochi iperparametri, la differenza può essere di scarso significato pratico arxiv.org/abs/1809.09446 .
Dikran Marsupial,
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.