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
- Cawley, GC & Talbot, NLC: On-fitting nella selezione del modello e bias di selezione successiva nella valutazione delle prestazioni, Journal of Machine Learning Research, 11, 2079-2107 (2010).
- Boulesteix, A.-L .: Ottimismo nella ricerca bioinformatica., Bioinformatica, 26, 437-439 (2010). DOI: 10.1093 / bioinformatica / btp648
- Jelizarow, M .; Guillemot, V .; Tenenhaus, A .; Strimmer, K. & Boulesteix, A.-L .: Ottimismo eccessivo in bioinformatica: un'illustrazione., Bioinformatica, 26, 1990-1998 (2010). DOI: 10.1093 / bioinformatica / btq323
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.