Quando si crea un modello di regressione utilizzando set di modellazione / convalida separati, è appropriato "ricircolare" i dati di convalida?


13

Supponiamo di avere una divisione 80/20 tra osservazioni di modellazione / validazione. Ho adattato un modello al set di dati di modellazione e mi sento a mio agio con l'errore visualizzato sul set di dati di convalida. Prima di implementare il mio modello per calcolare il punteggio delle osservazioni future, è opportuno combinare nuovamente la convalida con i dati di modellazione per ottenere stime dei parametri aggiornate sui dati del 100%? Ho sentito due prospettive su questo:

  1. La convalida che ho eseguito è stata una convalida della struttura del modello, ovvero l'insieme di predittori e trasformazioni che ho applicato. Non ha senso lasciare il 20% dei miei dati sul tavolo quando potrei usarlo per aggiornare le mie stime.

  2. La convalida che ho eseguito è stata in parte una convalida delle stime dei parametri che ho calcolato sul mio set di dati di modellazione. Se aggiorno l'adattamento del modello, ho modificato le stime e non ho più un modo oggettivo per testare le prestazioni del modello aggiornato.

Ho sempre seguito l'argomento n. 1, ma più recentemente ho sentito diverse persone discutere n. 2. Volevo vedere cosa ne pensano gli altri. Hai mai visto buone discussioni in letteratura o altrove su questo argomento?

Risposte:


6

L'opzione 1 è quella corretta. È possibile aggiungere il set di dati di convalida per aggiornare i parametri del modello.

Questa è la risposta Ora parliamone. Il fatto che ciò che hai fatto sia stata la tua opzione 1. sopra è più chiaro se hai fatto la k-fold cross-validation del bootstrap (e avresti dovuto farlo - non è chiaro dalla tua domanda).

Nella convalida incrociata 5 volte, dividi i dati che hai in 5 set casuali di uguale dimensione. Chiamiamoli A, B, C, D ed E. Quindi imparerai i parametri del tuo modello (del modello stesso) in 4 dei set, diciamo A, B, C e D, e testalo o validalo in il quinto modello E. (Questo l'hai fatto). Ma poi selezioni un altro set come test / validazione (diciamo D) e impari usando gli altri 4 (A, B, C ed E). Provalo su D, ripeti.

L'errore del tuo modello predittivo è l'errore medio dei 5 test e hai una certa comprensione di come l'errore predittivo dipende dai set di apprendimento e test. Nel migliore dei casi, tutte e 5 le misure di errore sono simili e puoi essere ragionevolmente sicuro che il tuo modello funzionerà a quel livello in futuro.

Ma quale modello ?? Per ogni set di set di apprendimento avrai un parametro diverso per il modello. L'apprendimento con A, B, C, D genera un set di parametri P1, l'apprendimento con A, B, C, E, il set di parametri P2, fino a P5. Nessuno di loro è il tuo modello.

Quello che hai testato è l'errore atteso di una procedura per costruire modelli , la procedura che hai seguito quando il set di apprendimento era A, B, C, D e quando era A, B, C, E e così via. Questa procedura genera un modello con l'errore previsto?

Allora, qual è il modello finale? È l'applicazione della procedura in tutti i dati disponibili (A, B, C, D ed E). Un nuovo modello con set di parametri P0, che non hai mai generato prima, non hai dati per testarlo (dal momento che hai "usato" tutti i dati per determinare i parametri P0) e tuttavia hai una ragionevole aspettativa che funzionerà in futuro dati degli altri modelli (P1, P2 ...) costruiti utilizzando la stessa procedura.

E se non avessi eseguito una validazione incrociata o bootstrap (bootstrap è in qualche modo più complesso da spiegare - lo lascio fuori da questa discussione)? Che cosa succede se hai eseguito solo una divisione di apprendimento / convalida e una misura di errore. Quindi, l'argomento 2. può essere in qualche modo corretto ma hai un problema più grande: hai solo una misura dell'errore del modello e non sai quanto dipende tale errore dai dati utilizzati per convalidarlo. Forse, per fortuna, il tuo set di validazione del 20% è stato particolarmente facile da prevedere. Non avendo effettuato più misure di errore, sarà molto rischioso presumere che il tasso di errore previsto del modello predittivo rimarrà lo stesso per i dati futuri.

Qual è il "rischio maggiore"? Supporre che l'errore rimarrà sostanzialmente lo stesso per i dati futuri, o supporre che l'aggiunta di più dati per apprendere il modello in qualche modo "rovinerà" il modello e aumenterà il suo tasso di errore in futuro? Non so davvero come rispondere, ma sarei sospettoso di modelli che peggiorano con più dati ....

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.