Come faccio a scegliere un modello da questo output [validazione incrociata esterna]?
Risposta breve: non lo fai.
Trattare la validazione incrociata interna come parte della procedura di adattamento del modello. Ciò significa che il raccordo, incluso il montaggio degli iperparametri (è qui che si nasconde la convalida incrociata interna) è proprio come qualsiasi altra routine di esitazione del modello.
La convalida incrociata esterna stima le prestazioni di questo approccio di adattamento del modello. Per questo usi i soliti presupposti
- i modelli surrogati esterni sono equivalenti al modello "reale" creato con tutti i dati.k
model.fitting.procedure
- Oppure, nel caso 1. si guasta (distorsione pessimistica della validazione del ricampionamento), almeno i modelli surrogati esterni sono equivalenti tra loro.
Ciò consente di raggruppare (media) i risultati del test. Significa anche che non è necessario scegliere tra loro poiché si presume che siano sostanzialmente gli stessi. La scomposizione di questa seconda ipotesi più debole è l'instabilità del modello.k
Evitare Non scegliere il apparentemente migliore dei modelli surrogati - che di solito essere solo "la raccolta" incertezza test e conduce ad un pregiudizio ottimista.k
Quindi, come posso usare CV nidificato per la selezione del modello?
Il CV interno fa la selezione.
Mi sembra che la selezione del modello migliore da quei modelli vincenti K non sarebbe un confronto equo poiché ogni modello è stato addestrato e testato su diverse parti del set di dati.
Hai ragione nel dire che non è una buona idea scegliere uno dei modelli surrogati di . Ma ti sbagli sul motivo. Vero motivo: vedi sopra. Il fatto che non siano addestrati e testati sugli stessi dati non "fa male" qui.k
- Non avere gli stessi dati di test: come si desidera affermare in seguito che i risultati del test si generalizzano a dati mai visti, questo non può fare la differenza.
- Non avendo gli stessi dati di allenamento:
- se i modelli sono stabili, questo non fa differenza: Stabile qui significa che il modello non cambia (molto) se i dati di allenamento sono "perturbati" sostituendo alcuni casi con altri casi.
- se i modelli non sono stabili, tre considerazioni sono importanti:
- puoi effettivamente misurare se e in che misura questo è il caso, usando la validazione incrociata ripetuta ripetuta / ripetuta . Ciò consente di confrontare i risultati della convalida incrociata per lo stesso caso previsti da modelli diversi basati su dati di allenamento leggermente diversi.k
- Se i modelli non sono stabili, la varianza osservata sui risultati del test della validazione incrociata -fold aumenta: non si ha solo la varianza a causa del fatto che viene testato solo un numero finito di casi, ma si ha una varianza aggiuntiva a causa dell'instabilità dei modelli (varianza nelle capacità predittive).k
- Se l'instabilità è un vero problema, non è possibile estrapolare bene le prestazioni per il modello "reale".
Il che mi porta alla tua ultima domanda:
Quali tipi di analisi / controlli posso fare con i punteggi che ottengo dalle pieghe K esterne?
- verificare la stabilità delle previsioni (utilizzare la convalida incrociata ripetuta / ripetuta)
verificare la stabilità / variazione degli iperparametri ottimizzati.
Per prima cosa, gli iperparametri a dispersione selvaggia possono indicare che l'ottimizzazione interna non ha funzionato. Inoltre, ciò può consentire di decidere sugli iperparametri senza il costoso passaggio di ottimizzazione in situazioni simili in futuro. Con costosi non mi riferisco alle risorse computazionali ma al fatto che queste informazioni "costano" che potrebbero essere meglio utilizzate per stimare i parametri "normali" del modello.
controlla la differenza tra la stima interna ed esterna del modello scelto. Se c'è una grande differenza (l'essere interno è molto iperottimistico), c'è il rischio che l'ottimizzazione interna non abbia funzionato bene a causa di un eccesso di adattamento.
domanda di update @ user99889: cosa fare se il CV esterno rileva instabilità?
Innanzitutto, rilevare nel loop CV esterno che i modelli non producono previsioni stabili a tale riguardo non differisce in realtà dal rilevare che l'errore di prediciton è troppo elevato per l'applicazione. È uno dei possibili risultati della validazione (o verifica) del modello, il che implica che il modello che abbiamo non è adatto al suo scopo.
Nel commento di risposta a @davips, stavo pensando di affrontare l'instabilità del CV interno , ovvero come parte del processo di ottimizzazione del modello.
Ma hai certamente ragione: se cambiamo il nostro modello sulla base dei risultati del CV esterno, è necessario un altro giro di test indipendenti del modello modificato.
Tuttavia, l'instabilità nel CV esterno sarebbe anche un segno del fatto che l'ottimizzazione non è stata impostata correttamente - quindi trovare l'instabilità nel CV esterno implica che il CV interno non penalizzi l'instabilità nel modo necessario - questo sarebbe il mio punto principale di critica in una situazione del genere. In altre parole, perché l'ottimizzazione consente / porta a modelli fortemente overfit?
Tuttavia, c'è una particolarità qui che IMHO può giustificare l'ulteriore cambiamento del modello "finale" dopo un'attenta considerazione delle circostanze esatte : poiché abbiamo rilevato un eccesso di adattamento, qualsiasi modifica proposta (meno df / più restrittiva o aggregazione) al modello sarebbe essere in direzione di un minor adattamento (o almeno iperparametri che sono meno inclini a un adattamento eccessivo). Il punto di test indipendenti è di rilevare il sovradimensionamento: il sottotitolo può essere rilevato dai dati già utilizzati nel processo di formazione.
Quindi, se stiamo parlando, diciamo, di ridurre ulteriormente il numero di variabili latenti in un modello PLS che sarebbe relativamente benigno (se la modifica proposta fosse un tipo completamente diverso di modello, diciamo PLS invece di SVM, tutte le scommesse sarebbero disattivate ), e sarei ancora più rilassato a riguardo se sapessi che siamo comunque in una fase intermedia della modellazione - dopo tutto, se i modelli ottimizzati sono ancora instabili, non c'è dubbio che siano necessari più casi. Inoltre, in molte situazioni, dovrai eventualmente eseguire studi progettati per testare correttamente vari aspetti delle prestazioni (ad es. Generalizzazione dei dati acquisiti in futuro). Tuttavia, insisterei sul fatto che l'intero processo di modellizzazione dovrebbe essere segnalato e che le implicazioni di questi ultimi cambiamenti dovrebbero essere discusse attentamente.
Inoltre, l'aggregazione includendo e la stima CV analogica out-of-bag delle prestazioni sarebbe possibile dai risultati già disponibili - che è l'altro tipo di "post-elaborazione" del modello che sarei disposto a considerare benigno qui. Ancora una volta, sarebbe stato meglio se lo studio fosse stato progettato dall'inizio per verificare che l'aggregazione non fornisse alcun vantaggio rispetto alle predizioni individuali (che è un altro modo di dire che i singoli modelli sono stabili).
Aggiornamento (2019): più penso a queste situazioni, più vengo a favorire l' approccio "validazione incrociata nidificata apparentemente senza nidificazione" .