Come si inserisce la validazione incrociata di k-fold nel contesto di training / validation / testing sets?


14

La mia domanda principale riguarda il tentativo di capire come k-fold cross-validation si adatta al contesto di avere set di training / validation / testing (se si adatta a tutti in tale contesto).

Di solito, le persone parlano di dividere i dati in un set di addestramento, validazione e test - diciamo con un rapporto di 60/20/20 per il corso di Andrew Ng - per cui il set di validazione è usato per identificare parametri ottimali per il training del modello.

Tuttavia, se si volesse utilizzare la convalida incrociata di k-fold nella speranza di ottenere una misura di precisione più rappresentativa quando la quantità di dati è relativamente piccola, cosa comporta esattamente la convalida incrociata di k-fold in questa divisione 60/20/20 scenario?

Ad esempio, ciò significherebbe che in realtà uniremmo i set di addestramento e test (80% dei dati) e faremmo k-fold cross validation su di essi per ottenere la nostra misura di precisione (eliminando efficacemente con un "set di test" esplicito? In caso affermativo, quale modello di training utilizziamo a) in produzione eb) per utilizzare un set di validazione e identificare parametri di training ottimali? Ad esempio, una possibile risposta per aeb è forse quella di utilizzare il modello migliore.

Risposte:


12

La convalida incrociata di solito aiuta a evitare la necessità di un set di convalida.

L'idea di base con set di dati di addestramento / convalida / test è la seguente:

  1. Addestramento: si provano diversi tipi di modelli con diverse scelte di iperparametri sui dati di addestramento (ad es. Modello lineare con diversa selezione di caratteristiche, rete neurale con diverse scelte di strati, foresta casuale con diversi valori di mtry).

  2. Convalida: confrontare le prestazioni dei modelli nel passaggio 1 in base al set di convalida e selezionare il vincitore. Questo aiuta a evitare decisioni sbagliate prendendo troppo il set di dati di addestramento.

  3. Test: prova il modello vincitore sui dati del test solo per avere la sensazione di quanto bene si comporti nella realtà. Ciò rivela il sovradimensionamento introdotto nel passaggio 2. In questo caso, non si prenderebbero ulteriori decisioni. Sono solo informazioni chiare.

Ora, nel caso in cui si sostituisca la fase di convalida con la convalida incrociata, l'attacco ai dati viene eseguito in modo quasi identico, ma si ha solo un addestramento e un set di dati di prova. Non è necessario un set di dati di convalida.

  1. Formazione: vedi sopra.

  2. Convalida: si esegue la convalida incrociata sui dati di allenamento per scegliere il modello migliore del passaggio 1 rispetto alle prestazioni di convalida incrociata (qui, i dati di allenamento originali vengono ripetutamente suddivisi in un set di addestramento e convalida temporaneo). I modelli calcolati in validazione incrociata vengono utilizzati solo per la scelta del modello migliore del passaggio 1, che sono tutti calcolati sull'insieme di addestramento completo.

  3. Test: vedi sopra.


1
Grazie! Per confermare, nel contesto del CV, si può avere l'80% di treni contro il 20% di divisione del test. Quindi si può costruire un modello su quell'80% dei dati e testare contro il 20% per ottenere l'accuratezza. Per provare diverse varianti del modello, si può fare un CV di 10 volte sul set di dati di addestramento (80% dei dati) - addestrando efficacemente sull'8% dei dati totali e test rispetto al 72% dei dati totali in ogni piega. Sulla base dei risultati del CV, è possibile identificare i valori ottimali dell'iperparametro e utilizzarli per costruire un nuovo modello addestrato su tutti i dati di allenamento (80% del set di dati completo) e testare con il restante set di dati del 20%. Corretta?
blu,

3
Sì, tranne che per ogni CV, useresti il ​​72% per l'allenamento e l'8% per la convalida ;-)
Michael M

Risposta eccezionale @MichaelM. Stavo leggendo della convalida incrociata nidificata (NCV) e non riesco a decidere se dovrei usarlo o semplicemente fare ciò che hai delineato per il CV. E proprio per questo lo capisco, NCV verrebbe applicato al passaggio 3. Invece di ottenere un punteggio di 1 vincitore, si ottengono i punteggi del vincitore K (moltiplicando le corse totali per K, il passaggio 1-2 ripetuto K volte con i dati diff dell'80% del treno), che è quindi possibile calcolare la media. Quindi domande: 1) la mia comprensione è corretta? 2) si consiglia di utilizzare NCV?
Aziz Javed,

Hai esattamente ragione. Il CV nidificato contribuirà a ottenere stime più affidabili rispetto all'approccio "semplice" delineato sopra. Se il tempo lo consente, è definitivamente un'opzione. Sai su quale set di dati viene calcolato il modello finale in CV nidificato? Al massimo?
Michael M,

3

K -fold cross validation è una strategia di (ri) campionamento come molte altre.

Anche la suddivisione in formazione / convalida / test è una strategia di campionamento.

È possibile sostituire la formazione / convalida con un'altra strategia di campionamento. Quindi eseguirai -fold CV sull'80% dei dati e testerai sul restante 20%.K

Puoi anche applicarlo alla parte di test (questo è ciò che le persone chiamano validazione incrociata nidificata), dove le pieghe vengono utilizzate per l'addestramento / convalida e la parte rimanente da testare, quindi esegui l'iterazione sulle pieghe.K1

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.