Convalida incrociata tra cui formazione, convalida e test. Perché abbiamo bisogno di tre sottoinsiemi?


29

Ho una domanda relativa al processo di convalida incrociata. Sono nel mezzo di un corso di Machine Learning on the Cursera. Uno degli argomenti riguarda la convalida incrociata. L'ho trovato leggermente difficile da seguire. So perché abbiamo bisogno del CV perché vogliamo che i nostri modelli funzionino bene su dati futuri (sconosciuti) e che il CV prevenga un eccesso di adattamento. Tuttavia, il processo stesso è confuso.

Quello che ho capito è che ho diviso i dati in 3 sottoinsiemi: formazione, convalida e test. Train and Validation è trovare la complessità ottimale di un modello. Quello che non capisco è il terzo sottoinsieme. Comprendo di prendere una serie di funzioni per il modello, di addestrarlo e convalidarlo nel sottoinsieme di convalida e cercare la funzione di costo minimo quando cambio la struttura. Quando l'ho trovato, collaudo il modello nel sottoinsieme Test. Se ho già trovato la funzione di costo minimo nel sottoinsieme di convalida, perché dovrei testarla di nuovo nel sottoinsieme di test ???

Qualcuno potrebbe chiarire questo per me?

Grazie


Troverai il documento e la discussione in [1] non irrilevanti per la tua domanda. Dalla memoria, menziona tre sottoinsiemi: il primo per formulare un modello, il secondo per stimarne i parametri e il terzo per convalidarlo mediante la previsione. [1] Chatfield, C. Model Uncertainty, Data Mining and Statistical Inference (Con discussione) Journal of Royal Statistical Society. Serie A (Statistiche in Society), 1995, 158, 419-466
Hibernating


Saluti! Il thread dietro questo link è anche una buona fonte per capire questo :)
Celdor

Risposte:


39
  • Il set di allenamento viene utilizzato per scegliere i parametri ottimali per un determinato modello. Tieni presente che la valutazione di un determinato set di parametri utilizzando il set di formazione dovrebbe fornire una stima imparziale della tua funzione di costo: è l'atto di scegliere i parametri che ottimizzano la stima della tua funzione di costo in base al set di formazione che distorce la stima che forniscono . Sono stati scelti i parametri che funzionano meglio sul set di allenamento; pertanto, le prestazioni apparenti di tali parametri, valutate sul set di addestramento, saranno eccessivamente ottimistiche.
  • Dopo essersi formato utilizzando il set di training, il set di validazione viene utilizzato per scegliere il modello migliore. Ancora una volta, si noti che la valutazione di un determinato modello utilizzando il set di convalida dovrebbe fornire una stima rappresentativa della funzione di costo: è l'atto di scegliere il modello che funziona meglio sul set di convalida che distorce la stima fornita. È stato scelto il modello che funziona meglio sul set di validazione; pertanto, le prestazioni apparenti di quel modello, come valutate sul set di validazione, saranno eccessivamente ottimistiche.
  • Dopo aver addestrato ciascun modello utilizzando il set di addestramento e aver scelto il modello migliore utilizzando il set di convalida , il set di test indica quanto è buona la scelta finale del modello. Ti dà una stima imparziale delle prestazioni effettive che otterrai in fase di esecuzione, che è importante sapere per molte ragioni. Non è possibile utilizzare il set di allenamento per questo, perché i parametri sono distorti verso di esso. E non puoi usare il set di validazione per questo, perché il modello stesso è distorto verso quelli. Quindi, la necessità di un terzo set.

Posso vederlo ora. Grazie. Non ho pensato al fatto che avrei bisogno di un altro sottoinsieme per trovare prestazioni imparziali in termini di struttura del modello. Saluti :) È un'ottima spiegazione.
Celdor il

Quindi, significa che il set di test finale non ha alcun ruolo nell'ottimizzazione del modello o nella selezione del modello migliore?
Anmol Singh Jaggi l'

1
No. In effetti, dovrebbe essere utilizzato solo per stimare le prestazioni previste. Quindi, se non ti piace il risultato delle prestazioni sul set di test, allora dovresti davvero evitare l'impulso di ottimizzare il tuo modello per ottimizzare il risultato del test, poiché il tuo modello sarebbe di nuovo distorto.
Ytsen de Boer,

13

Se ho già trovato la funzione di costo minimo sul sottoinsieme di convalida, perché dovrei testarla di nuovo sul sottoinsieme di test

A causa di un errore casuale: di solito hai solo un numero finito di casi.

L'ottimizzazione delle prestazioni di validazione (test interno) significa che potresti essere troppo adatto a quel set di test interno. Il set di test interno contribuisce alla stima del modello finale e non è quindi indipendente dal modello.

Ciò significa che è necessario disporre di un altro set di test (esterno) indipendente dall'intera procedura di modellazione (compresi tutti i processi di ottimizzazione e pre-elaborazione basata su dati o selezione del modello) se si desidera stimare le proprietà di generalizzazione.

Ti consiglio di fare una simulazione e confrontare le tre diverse stime di errore che puoi avere

  • riattivazione: la previsione del set di treni
    misura la bontà di adattamento
  • set di test interni (nella tua nomenclatura: validazione): qualità raggiunta dall'ottimizzatore
  • set di test esterno: errore di generalizzazione, indipendente dall'allenamento del modello.

In una simulazione è possibile confrontarli facilmente anche con un set di test adeguato, ampio e generato in modo indipendente. Se l'impostazione è corretta, il test esterno dovrebbe essere imparziale (scrivere il modello surrogato che valuta, non scrivere un modello "finale" basato sull'intero set di dati). Il test interno è di solito ottimisticamente distorto e la reintegrazione è ancora più ottimisticamente parziale.

Nel mio campo, il test interno avrebbe facilmente sottostimato l'errore di generalizzazione di un fattore 2 - 5 (molto di più per gli schemi di ottimizzazione aggressiva).


Nota: la nomenclatura degli insiemi non è universale. Nel mio campo (chimica analitica), la validazione significherebbe di solito la prova dell'esecuzione della procedura finale - quindi più ciò che fa il tuo set di "test" che quello che fa il tuo set di "validazione".

Preferisco quindi parlare del set di test interno ed esterno o del set di test di ottimizzazione (= set di test interno) e quindi un set di validazione significherebbe il set di test esterno.


2

Durante l'addestramento del modello è necessario selezionare i meta parametri per il modello (ad esempio, parametro di regolarizzazione) o persino scegliere tra diversi modelli. In questo caso, il sottoinsieme di convalida viene utilizzato per la scelta dei parametri, ma il sottoinsieme di test per la stima della previsione finale.

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.