Perché la stima CV dell'errore di test sottostima l'errore di test effettivo?


10

Sono consapevole del fatto che la stima della convalida incrociata k-fold dell'errore del test di solito sottovaluta l'errore effettivo del test. Sono confuso perché questo è il caso. Capisco perché l'errore di addestramento è generalmente inferiore all'errore di test - perché stai allenando il modello sugli stessi dati su cui stai stimando l'errore! Ma questo non è il caso della convalida incrociata: la piega su cui si misura l'errore viene specificamente esclusa durante il processo di formazione.

Inoltre, è corretto affermare che la stima della convalida incrociata dell'errore del test è distorta verso il basso?


1
Dove vedi questo dichiarato? Puoi darci dei riferimenti?
Orazio

1
(+1) Ho visto la stessa affermazione e credo che sia corretta ma non capisco neanche la logica
KevinKim

Risposte:


9

Per fare un esempio: riportare solo l'errore CV di un modello è problematico nel caso in cui tu abbia originariamente più modelli (ognuno con un certo errore CV e varianza di errore), quindi usa questo errore per scegliere il modello più adatto alla tua applicazione. Questo è problematico perché con ogni modello hai ancora una certa possibilità di essere fortunato / sfortunato (e ottenere risultati migliori / peggiori) - e scegliendo un modello, probabilmente hai anche scelto quello in cui eri più fortunato. Pertanto, la segnalazione di questo errore come stima dell'errore finale tende ad essere eccessivamente ottimistica.

Se vuoi approfondire i dettagli: questa risposta si collega ad alcuni articoli di facile lettura su questo problema: uso improprio di convalida incrociata (segnalazione delle prestazioni per il miglior valore di iperparametro)

Come sottolinea @cbeleites: questo è problematico nel caso in cui si utilizzi l'errore CV k-fold ottenuto ad es. A) si scelga un modello migliore tra più modelli usando ad esempio diversi iperparametri, che fa parte del processo di addestramento, e b) quindi riporta lo stesso errore dell'errore di test invece di utilizzare un set di test separato, trattenuto. Se invece intendevi chiedere il puro errore CV stesso - senza usarlo per scegliere alcun modello - la risposta di @cbeleites è molto probabilmente quella che stai cercando.


Ancora una volta, il problema qui sta segnalando un errore di addestramento (addestramento come in: questa stima viene utilizzata nel processo di ottenimento di un modello finale) stima per errore di generalizzazione - indipendentemente dal fatto che questo errore sia stato calcolato tramite validazione incrociata, blocco o qualsiasi altra cosa altro metodo di stima dell'errore.
cbeleites insoddisfatto di SX il

1
@cbeleites Ancora una volta, vero punto - di solito presumo che i risultati del CV saranno in qualche modo utilizzati per la selezione del modello (che per alcuni è la ragione dell'utilizzo del CV in primo luogo) - quindi lo faccio notare. Ho aggiornato la mia risposta di conseguenza.
geekoverdose,

9

K

Fatto in modo approssimativo significa che la suddivisione in set di test e training all'interno della validazione incrociata porta effettivamente a casi di test che sono veramente indipendenti dal modello.

Tuttavia, ci sono una serie di insidie ​​che compromettono questa indipendenza . A seconda di quanto gravemente i dati del test siano compromessi e di quanto il modello sia troppo adatto, questa mancanza di indipendenza significa che l'errore di convalida incrociata diventa in realtà un errore di addestramento. Cioè, tutto sommato, potresti finire con un grave pregiudizio ottimista (sottovalutando l'effettivo errore di generalizzazione).
IMHO è importante capire che la maggior parte di queste insidie ​​non sono uniche per la convalida incrociata ma sono meglio caratterizzate come suddivisione errata in treno e set di test : possono (e fare) accadere lo stesso con altri schemi di convalida come resistere o indipendenti set di test che in realtà non sono indipendenti come si suppone.

Ecco alcuni esempi degli errori più comuni nella divisione che vedo:

  • La risposta di @geekoverdose fornisce un esempio dell'uso palese di una stima dell'errore di addestramento interno (!) come errore di prova.
    Più in generale, qualsiasi tipo di stima dell'errore utilizzata per l'ottimizzazione del modello basata sui dati è un errore di addestramento in quanto è ancora in corso l'addestramento utilizzando questa stima di errore.
  • Variabili confondenti non prese in considerazione per la scissione.
    Una riga nella matrice dei dati non costituisce necessariamente un caso indipendente, ad es
    • Trattare le misurazioni ripetute dello stesso caso / soggetto / paziente come "indipendenti"
    • in generale trascura / ignora il clustering forte nei dati
    • non essere a conoscenza della deriva in corso nel processo di generazione dei dati (futuri casi sconosciuti contro solo casi sconosciuti), ...


0

Prima di tutto, desidero chiarire i termini utilizzati nella domanda, a quanto ho capito. Iniziamo normalmente con un set di dati di allenamento, utilizziamo la convalida incrociata k-fold per testare diversi modelli (o set di iperparametri) e selezioniamo il modello migliore con l'errore CV più basso. Quindi, la "stima della convalida incrociata dell'errore del test" significa usare l'errore CV più basso come errore del test, non solo l'errore CV di un modello casuale (che il caso discusso da cbeleites, ma non è ciò che facciamo normalmente). L '"errore del test effettivo" in questione è l'errore che otteniamo quando applichiamo il miglior modello CV a un set di dati di test infinito, supponendo che possiamo ottenerlo. L'errore CV dipende dal set di dati specifico che abbiamo e l'errore di test effettivo dipende dal miglior modello CV selezionato, che dipende anche dal set di dati di addestramento. Pertanto, la differenza tra l'errore CV e l'errore del test dipende da diversi set di dati di addestramento. Quindi la domanda diventa: se ripetiamo il processo sopra molte volte con set di dati di addestramento diversi e calcoliamo rispettivamente la media dei due errori, perché l'errore CV medio è inferiore all'errore di test medio, ovvero l'errore CV è distorto verso il basso? Ma prima, succede sempre?

Normalmente è impossibile ottenere molti set di dati di training e set di dati di test contenenti righe infinite. Ma è possibile farlo utilizzando i dati generati dalla simulazione. Nel "capitolo 7 Valutazione e selezione dei modelli" del libro "Gli elementi dell'apprendimento statistico" di Trevor Hastie, et al. , include tale esperimento di simulazione.

La conclusione è che, usando CV o bootstrap, "... la stima dell'errore del test per un determinato set di addestramento non è facile in generale, dati solo i dati di quello stesso set di addestramento". Per "non facile", significano che l'errore CV potrebbe essere sottostimare o sopravvalutare il vero errore del test a seconda dei diversi set di dati di allenamento, vale a dire che la varianza causata da diversi set di dati di allenamento è piuttosto grande. Che ne dici di pregiudizi? Il kNN e il modello lineare che hanno testato non sono quasi distorti: l'errore CV sopravvaluta il vero errore del test dello 0-4%, ma alcuni modelli "come alberi, convalida incrociata e cinghia di avvio possono sottostimare l'errore vero del 10%, perché il la ricerca del miglior albero è fortemente influenzata dal set di validazione ".

Per riassumere, per un particolare set di dati di allenamento, l'errore CV potrebbe essere superiore o inferiore all'errore di test reale. Per il pregiudizio, l'errore CV medio potrebbe variare da un po 'più alto a molto più basso rispetto all'errore di test reale medio a seconda dei metodi di modellazione.

Il motivo della sottovalutazione, come menzionato sopra, è che la selezione di iperparametri per il miglior modello dipende in definitiva dal particolare set di dati di addestramento che otteniamo. Un po 'di dettaglio, lascia che i migliori iperparametri siano M1 in questo particolare set di dati di allenamento. Ma M1 potrebbe non essere il miglior iperparametro su altri set di dati di allenamento, il che significa che l'errore CV minimo è inferiore all'errore CV di M1. Pertanto, gli errori CV attesi che otteniamo dal processo di formazione sono molto probabilmente inferiori all'errore CV previsto di M1. L'unica volta in cui l'errore CV minimo di un determinato set di dati di allenamento non viene distorto è quando il modello migliore è sempre il migliore indipendentemente dai set di dati di allenamento. D'altra parte, l'errore CV potrebbe anche sopravvalutare un po 'il vero errore del test, come discusso da cbeleites. Questo perché l'errore CV di piega k si ottiene usando un po 'meno dati di addestramento per addestrare il modello (per 10 volte cv, usa i dati del 90%), è distorto verso l'alto rispetto all'errore vero, ma non molto. Quindi ci sono due pregiudizi che vanno in direzioni diverse. Poiché il metodo di modellazione tende a un eccesso di vestibilità, l'uso di CV meno piegati, ad esempio 5 volte contro 10 volte, potrebbe comportare una minore distorsione.

Detto questo, in pratica non aiuta molto: di solito otteniamo solo un set di dati "particolare". se tratteniamo dal 15% al ​​30% come dati di test e selezioniamo il modello migliore per CV sul resto come dati di addestramento, è probabile che l'errore CV sia diverso dall'errore di test poiché entrambi differiscono dall'errore di test previsto. Potremmo essere sospettosi se l'errore CV è molto inferiore all'errore di test, ma non sapremo quale è più vicino al vero errore di test. La migliore pratica potrebbe essere solo quella di presentare entrambe le metriche.

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.