In che modo la validazione incrociata è diversa dallo snooping dei dati?


13

Ho appena finito "Un'introduzione all'apprendimento statistico" . Mi chiedevo se l'uso della convalida incrociata per trovare i migliori parametri di ottimizzazione per varie tecniche di apprendimento automatico è diverso dallo snooping dei dati?

Stiamo verificando ripetutamente quale valore del parametro di ottimizzazione determina un miglior risultato predittivo nel set di test. Che cosa succede se il parametro di tuning a cui arriviamo si adatta per caso a questo particolare set di test per caso e non si comporta bene su alcuni set di test futuri?

Per favore, scusa la mia comprensione da principiante dell'apprendimento automatico e sono desideroso di essere educato.

EDIT: vedere la risposta di @AdamO sulla definizione di "snooping dei dati". Ho usato il termine in modo molto impreciso nella mia domanda.


Sono così felice di trovare questo ... avere un TC domani con alcuni ricercatori che hanno pubblicato qualcosa .... purtroppo soffrono di questo problema. Ottima domanda!
Pallevillesen,

Risposte:


12

Mi chiedevo se l'uso della convalida incrociata per trovare i migliori parametri di ottimizzazione per varie tecniche di apprendimento automatico è diverso dallo snooping dei dati?

La tua preoccupazione è giusta e c'è molta letteratura su questo argomento, ad es

Il problema è che l'ottimizzazione dell'iperparametro con la validazione incrociata è un processo di ottimizzazione basato sui dati e tenderà comunque a sovrautilizzare il tuo set di dati (meno che l'ottimizzazione per errore di reintegrazione, ma comunque). Cercare di usare i risultati della validazione incrociata di tuning come misura di performance "indipendente" è come mangiare la torta (= tuning) e mantenerla (= misurare le prestazioni del modello finale).

Ciò non significa che non si dovrebbe usare la convalida incrociata per l'ottimizzazione dell'iperparametro. Significa solo che puoi usarlo solo per uno scopo. Ottimizza o misura le prestazioni del modello ai fini della convalida.

La soluzione è che è necessario eseguire una validazione indipendente per misurare la qualità del modello ottenuto con gli iperparametri sintonizzati. Questo si chiama validazione nidificata o doppia. Troverai una serie di domande e risposte qui su questi argomenti

Concettualmente, mi piace dire che l'allenamento include tutti i tipi di passaggi elaborati per adattarsi non solo ai "soliti" parametri del modello, ma anche per adattare (auto-tuning) gli iperparametri. Pertanto, l'ottimizzazione basata sui dati di λ fa chiaramente parte dell'addestramento del modello.

Come regola generale, puoi anche dire che l'addestramento dei modelli è tutto ciò che deve essere fatto prima di avere una funzione black-box finale pronta per l'uso in grado di produrre previsioni per nuovi casi.


PS: Trovo molto confusa la terminologia di testing vs. validation perché nel mio campo "validation" significa dimostrare che il modello finale è adatto allo scopo, ed è quindi ciò che altre persone chiamano testing piuttosto che validation. Preferisco chiamare il set di test interno "set di test di ottimizzazione" e il "set di test di validazione finale" esterno o simili.


Aggiornare:

Quindi se il mio modello (ovvero il mio parametro di ottimizzazione in questo caso) fallisce la convalida esterna, cosa devo fare allora?

In genere, non succede nulla: ci sono situazioni tipiche che possono causare un tale fallimento. E tutte le situazioni di cui sono a conoscenza sono situazioni di adattamento eccessivo. È necessario essere consapevoli del fatto che mentre la regolarizzazione aiuta a ridurre il numero necessario di casi di formazione, l'ottimizzazione basata sui dati richiede grandi quantità di dati.

I miei consigli:

  • In genere, dovresti (dovresti) già avere aspettative approssimative, ad esempio quali prestazioni dovrebbero essere raggiungibili, quali prestazioni considereresti sospettosamente belle. Oppure specifica le prestazioni che devi ottenere e le prestazioni di base. Da questo e dal numero di casi di addestramento disponibili (per lo schema di scissione che hai deciso), calcola l'incertezza attesa per i test interni (di ottimizzazione). Se tale incertezza indica che non saresti in grado di ottenere confronti significativi, non eseguire l'ottimizzazione basata sui dati.

  • È necessario verificare quanto siano stabili sia le previsioni ottenute con il λ prescelto sia il λ ottimale trovato dalla procedura di auto-tuning. Se λ non è ragionevolmente stabile rispetto alle diverse suddivisioni dei dati, l'ottimizzazione non ha funzionato.

  • Se ritieni che non sarai in grado di eseguire l'ottimizzazione basata sui dati o che non funzionasse dopo tutto, puoi scegliere λ in base alle tue conoscenze specialistiche, ad esempio dall'esperienza con dati simili. O sapendo che se scopri che l'ottimizzazione fallisce, avrai bisogno di una regolarizzazione più forte: il sovradimensionamento che porta al fallimento funziona verso modelli troppo complessi.


1
Sono d'accordo, il treno terminologico / test / validazione non è molto intuitivo
M. Berk,

3

k

λλ

Lo "snooping dei dati" o, come potrei chiamarlo, "analisi dei dati esplorativi" non tratta una domanda prestabilita. In un certo senso si enumera un numero di risultati possibili, plausibilmente interessanti e li si valuta individualmente. Puoi eseguire qualsiasi numero di analisi esplorative e, di solito, non ti preoccupare di più test. È possibile valutare ciascuna analisi esplorativa singolarmente utilizzando la convalida incrociata, ma non tiene conto intrinsecamente di più test quando si dispone di più di 1 analisi esplorativa. Le ipotesi in questo contesto possono essere piuttosto ampie e di vasta portata, "quali fattori sono associati al cancro alla prostata?" (da cui il consumo di caffè, l'uso della vasectomia, ecc. ecc. sono stati misurati in una coorte). I risultati significativi sono visti come "generazione di ipotesi" e non forniscono prove di conferma.

K


λλ

1
@Anh: l'ottimizzazione di λ per validazione incrociata non è di per sé negativa. Ma così facendo hai "esaurito" quella convalida incrociata per l'ottimizzazione di λ e hai bisogno di un'altra convalida indipendente dalla modellazione incluso il processo di ottimizzazione λ. Non eseguire questa convalida esterna è MALE. Se quel particolare λ non funziona "di nuovo" (ad es. Su un'altra divisione dei dati), la tua ottimizzazione non ha funzionato. In quella situazione, in genere vedrai anche una grande differenza tra i risultati della convalida esterna e le prestazioni "migliori" osservate durante la messa a punto.
cbeleites supporta Monica l'

@cbeleites Quindi se il mio modello (cioè il mio parametro di tuning in questo caso) fallisce la validazione esterna, cosa dovrei fare allora? Non posso tornare indietro e trovare un altro parametro di ottimizzazione, perché essenzialmente ciò trasformerebbe la convalida esterna nel set di test di ottimizzazione. Quindi che si fa?
Heisenberg,

λ

λK

1

In realtà, durante il CV si tenta di trovare i parametri migliori in un set di convalida , che è distinto dal set di test. Hai diviso tutti i tuoi dati in tre set: set di addestramento, set di validazione e set di test. Quando esegui correttamente la convalida incrociata, non guardi mai la fine del test fino alla fine, quindi non c'è alcun ficcanaso. La convalida incrociata sul set di test è un errore metodologico grave (ma frequente).


Se il set di validazione e il set di test sono diversi, allora ha senso per me. Tuttavia, nel libro che ho letto (di Hastie et al. Non meno), sostengono che l'utilizzo del test di controllo è costoso (non stiamo usando molti dati per il training), quindi raccomandano la validazione incrociata di k-fold, in cui non credo ci sia un set di test separato.
Heisenberg,

1
@Anh: entrambe le suddivisioni possono essere eseguite ricampionando (ad esempio ripetute convalide incrociate) invece di mettere da parte solo un piccolo set di dati.
cbeleites supporta Monica l'

@Anh: nella k-fold cross-validation, hai diviso k volte il set di allenamento originale in un set di allenamento più piccolo e in un set di validazione. Il set di test originale non è coinvolto e utilizzato solo alla fine.
Jerorx,

0

Se si guarda ad esempio alla pagina 225 di "Un'introduzione all'apprendimento statistico" con l'esempio di Lazo, si vede che effettivamente eseguono la convalida incrociata nidificata. Cioè la selezione del modello viene effettuata cv.glmnetsu un trainset, che viene diviso dal cv.glmnetpacchetto in coppie treno-prova. La convalida del modello viene eseguita sul testset di convalida (" "), quindi è una convalida indipendente.

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.