Perché una procedura di convalida incrociata risolve il problema del sovradimensionamento di un modello?
Perché una procedura di convalida incrociata risolve il problema del sovradimensionamento di un modello?
Risposte:
Non riesco a pensare a una spiegazione sufficientemente chiara al momento, quindi la lascerò a qualcun altro; tuttavia la convalida incrociata non risolve completamente il problema di sovra-adattamento nella selezione del modello, ma semplicemente lo riduce. L'errore di convalida incrociata non presenta una variazione trascurabile, soprattutto se la dimensione del set di dati è ridotta; in altre parole, ottieni un valore leggermente diverso a seconda del particolare campione di dati che usi. Ciò significa che se si dispone di molti gradi di libertà nella selezione del modello (ad es. Molte funzioni da cui selezionare un piccolo sottoinsieme, molti iperparametri da ottimizzare, molti modelli tra cui scegliere) è possibile sovrapporre il criterio di convalida incrociata poiché il modello è ottimizzato in modi che sfruttano questa variazione casuale piuttosto che in modi che migliorano davvero le prestazioni, e puoi finire con un modello che funziona male. Per una discussione di questo, vediCawley e Talbot "Sull'adattamento eccessivo nella selezione del modello e conseguente bias di selezione nella valutazione delle prestazioni", JMLR, vol. 11, pagg. 2079-2107, 2010
Purtroppo è molto probabile che la convalida incrociata ti deluda quando hai un piccolo set di dati, che è esattamente quando hai più bisogno della convalida incrociata. Tieni presente che la convalida incrociata k-fold è generalmente più affidabile della convalida incrociata one-out poiché presenta una varianza inferiore, ma può essere più costosa da calcolare per alcuni modelli (motivo per cui LOOCV viene talvolta utilizzato per la selezione dei modelli, anche se ha una varianza elevata).
La mia risposta è più intuitiva che rigorosa, ma forse aiuterà ...
A quanto ho capito, l'overfitting è il risultato della selezione del modello basata sull'addestramento e il test utilizzando gli stessi dati, in cui si dispone di un meccanismo di adattamento flessibile: si adatta il campione di dati così strettamente che si adattano il rumore, i valori anomali e tutto l'altra varianza.
Dividere i dati in un set di addestramento e test ti impedisce di farlo. Ma una divisione statica non utilizza i dati in modo efficiente e la divisione stessa potrebbe essere un problema. La convalida incrociata mantiene il vantaggio di non ricompensa-un-esatto-adattamento-dei-dati-di-allenamento della suddivisione dei test di addestramento, usando anche i dati che hai nel modo più efficiente possibile (cioè tutti i tuoi dati vengono utilizzati come dati di addestramento e test, ma non nella stessa sequenza).
Se si dispone di un meccanismo di adattamento flessibile, è necessario limitare la selezione del modello in modo che non favorisca in qualche modo "perfetto" ma adattamenti complessi. Puoi farlo con AIC, BIC o altri metodi di penalizzazione che penalizzano direttamente la complessità dell'adattamento, oppure puoi farlo con CV. (Oppure puoi farlo usando un metodo di adattamento non molto flessibile, il che è uno dei motivi per cui i modelli lineari sono belli.)
Un altro modo di vederlo è che l'apprendimento riguarda la generalizzazione, e un adattamento troppo stretto non è, in un certo senso, generalizzante. Variando ciò su cui impari e ciò su cui sei testato, generalizzi meglio che se imparassi solo le risposte a una specifica serie di domande.
Dal punto di vista bayesiano, non sono così sicuro che la validazione incrociata faccia qualcosa che un'analisi bayesiana "corretta" non fa per confrontare i modelli. Ma non sono sicuro al 100% che lo faccia.
Che è chiamata la precedente distribuzione predittiva . Indica in sostanza quanto bene il modello ha previsto i dati effettivamente osservati, ed è esattamente ciò che fa la validazione incrociata, con il "precedente" sostituito dal modello "training" e i "dati" sostituiti dal "test" dati. Quindi, se il modello B prevede i dati meglio del modello A, la sua probabilità posteriore aumenta rispetto al modello A. Sembra da ciò che il teorema di Bayes effettuerà effettivamente la convalida incrociata usando tutti i dati, piuttosto che un sottoinsieme. Tuttavia, non ne sono pienamente convinto - sembra che abbiamo qualcosa per niente.
Un'altra caratteristica chiara di questo metodo è che ha un "rasoio occam" incorporato, dato dal rapporto delle costanti di normalizzazione delle distribuzioni precedenti per ciascun modello.
Tuttavia, la validazione incrociata sembra preziosa per il vecchio temuto "qualcos'altro" o per quello che a volte viene chiamato "errata specificazione del modello". Sono costantemente lacerato dal fatto che questo "qualcos'altro" sia importante o meno, perché sembra che dovrebbe importare - ma ti lascia paralizzato senza soluzione quando apparentemente importa. Solo qualcosa per farti venire il mal di testa, ma niente che tu possa fare al riguardo - tranne per pensare a cosa potrebbe essere quel "qualcos'altro" e provarlo nel tuo modello (in modo che non faccia più parte di "qualcos'altro") .
Inoltre, la validazione incrociata è un modo per fare effettivamente un'analisi bayesiana quando gli integrali sopra sono ridicolmente difficili. E la validazione incrociata "ha senso" praticamente per chiunque - è "meccanica" piuttosto che "matematica". Quindi è facile capire cosa sta succedendo. E sembra anche che ti concentri sulla parte importante dei modelli: fare buone previsioni.