Intervallo di confidenza per l'accuratezza della classificazione convalidata in modo incrociato


11

Sto lavorando a un problema di classificazione che calcola una metrica di somiglianza tra due immagini radiografiche di input. Se le immagini sono della stessa persona (etichetta di "destra"), verrà calcolata una metrica più alta; l'immissione di immagini di due persone diverse (etichetta "errata") comporterà una metrica inferiore.

Ho usato una validazione incrociata stratificata di 10 volte per calcolare la probabilità di errata classificazione. La mia dimensione del campione attuale è di circa 40 corrispondenze giuste e 80 corrispondenze errate, in cui ciascun punto dati è la metrica calcolata. Sto ottenendo una probabilità di classificazione errata di 0,00, ma su questo ho bisogno di una sorta di analisi dell'intervallo di confidenza / errore.

Stavo cercando di utilizzare un intervallo di confidenza proporzionale binomiale (dove avrei usato i risultati della convalida incrociata come etichettatura corretta o etichettatura errata per il mio numero di successi). Tuttavia, uno dei presupposti alla base dell'analisi binomiale è la stessa probabilità di successo per ogni prova, e non sono sicuro che il metodo alla base della classificazione di "giusto" o "sbagliato" nella validazione incrociata possa essere considerato la stessa probabilità di successo.

L'unica altra analisi a cui riesco a pensare è quella di ripetere i tempi X di convalida incrociata e calcolare la deviazione media / standard dell'errore di classificazione, ma non sono sicuro che ciò sia appropriato poiché riuserei i dati dal mio dimensioni del campione relativamente piccole più volte.

qualche idea? Sto usando MATLAB per tutte le mie analisi e ho la casella degli strumenti Statistiche. Gradirei qualsiasi assistenza!


Probabilità di classificazione errata di 0,00 significa che si ottiene una precisione di classificazione del 100% su ciascuna delle 10 pieghe di convalida incrociata?
ameba dice di reintegrare Monica il

Sì, questo è corretto. Ognuna delle pieghe non ha comportato errori di classificazione; lo 0,00 che ho riportato rappresenta il numero totale di classificazioni errate (0) rispetto al numero totale di casi di test (120).
Sean,

A proposito, cosa intendi esattamente per convalida incrociata "stratificata"? Su ogni fold CV hai 120/10 = 12 campioni di test, con sempre 4 match e 8 non match?
ameba dice di reintegrare Monica il

Sì, è esattamente così - almeno questo è il modo in cui capisco come viene fatto all'interno di MATLAB. Ogni piega deve contenere la stessa proporzione delle etichette della classe "giusta" / "sbagliata", ovvero 1: 2.
Sean,

Risposte:


7

Influenza dell'instabilità nelle previsioni di diversi modelli surrogati

Tuttavia, uno dei presupposti alla base dell'analisi binomiale è la stessa probabilità di successo per ogni prova, e non sono sicuro che il metodo alla base della classificazione di "giusto" o "sbagliato" nella validazione incrociata possa essere considerato la stessa probabilità di successo.

Bene, di solito quell'equivalenza è un presupposto necessario anche per permetterti di mettere in comune i risultati dei diversi modelli surrogati.

In pratica, l'intuizione che questa ipotesi possa essere violata è spesso vera. Ma puoi misurare se questo è il caso. È qui che trovo utile la convalida incrociata ripetuta: la stabilità delle previsioni per lo stesso caso con modelli surrogati diversi consente di giudicare se i modelli sono equivalenti (previsioni stabili) o meno.

Ecco uno schema di convalida incrociata ripetuta ripetutamente (ovvero ripetuta) :K
convalida incrociata ripetuta per k

Le lezioni sono rosse e blu. I cerchi a destra simboleggiano le previsioni. In ogni iterazione, ogni campione è previsto esattamente una volta. Di solito, la media generale viene utilizzata come stima delle prestazioni, presupponendo implicitamente che le prestazioni dei modelli surrogati siano uguali. Se cerchi ciascun campione in base alle previsioni fatte da diversi modelli surrogati (ovvero attraverso le colonne), puoi vedere quanto sono stabili le previsioni per questo esempio.ioK

È inoltre possibile calcolare le prestazioni per ciascuna iterazione (blocco di 3 righe nel disegno). Qualsiasi scostamento tra questi significa che l'assunto che i modelli surrogati sono equivalenti (tra loro e inoltre al "grande modello" costruito su tutti i casi) non è soddisfatto. Ma questo ti dice anche quanta instabilità hai. Per quanto riguarda la proporzione binomiale, penso che la prestazione reale sia la stessa (cioè indipendente dal fatto che siano sempre previsti gli stessi casi in modo errato o se lo stesso numero ma casi diversi siano erroneamente previsti). Non so se si possa ragionevolmente assumere una particolare distribuzione per le prestazioni dei modelli surrogati. Ma penso che sia comunque un vantaggio rispetto alla segnalazione attualmente comune di errori di classificazione se si riporta tale instabilità.KK

«
nKio

Il disegno è una versione più recente di fig. 5 in questo documento: Beleites, C. & Salzer, R .: Valutazione e miglioramento della stabilità dei modelli chemiometrici in situazioni di piccole dimensioni del campione, Anal Bioanal Chem, 390, 1261-1271 (2008). DOI: 10.1007 / s00216-007-1818-6
Nota che quando abbiamo scritto il documento non avevo ancora realizzato completamente le diverse fonti di varianza che ho spiegato qui - tienilo a mente. Pertanto ritengo che l' argomentazioneper un'efficace stima della dimensione del campione, dato che non è corretta, anche se la conclusione dell'applicazione secondo cui diversi tipi di tessuto all'interno di ciascun paziente contribuiscono sulla quantità di informazioni complessive di un nuovo paziente con un determinato tipo di tessuto è probabilmente ancora valida (ho un tipo totalmente diverso di prove che indicano anche in questo modo). Tuttavia, non sono ancora completamente sicuro di ciò (né di come farlo meglio e quindi essere in grado di verificare), e questo problema non è correlato alla tua domanda.


Quali prestazioni utilizzare per l'intervallo di confidenza binomiale?

Finora ho usato la prestazione media osservata. Si potrebbe anche usare la peggiore prestazione osservata: più vicina è la prestazione osservata a 0,5, maggiore è la varianza e quindi l'intervallo di confidenza. Pertanto, gli intervalli di confidenza della prestazione osservata più vicini a 0,5 offrono un "margine di sicurezza" conservativo.

Si noti che alcuni metodi per calcolare gli intervalli di confidenza binomiale funzionano anche se il numero osservato di successi non è un numero intero. Uso l '"integrazione della probabilità posteriore bayesiana" come descritto in
Ross, TD: intervalli di confidenza accurati per la proporzione binomiale e la stima del tasso di Poisson, Comput Biol Med, 33, 509-531 (2003). DOI: 10.1016 / S0010-4825 (03) 00019-2

(Non lo so per Matlab, ma in R puoi usare binom::binom.bayesentrambi i parametri di forma impostati su 1).


n

Vedi anche: Bengio, Y. e Grandvalet, Y .: No stimatore indiscusso della varianza della convalida incrociata di K-Fold, Journal of Machine Learning Research, 2004, 5, 1089-1105 .

(Pensare di più a queste cose è nella mia todo-list di ricerca ..., ma poiché vengo dalla scienza sperimentale mi piace integrare le conclusioni teoriche e di simulazione con i dati sperimentali - che è difficile qui perché avrei bisogno di un grande serie di casi indipendenti per test di riferimento)


Aggiornamento: è giustificato assumere una distribuzione biomiale?

K

n

npn


Ciao @cbeleites, ho appena commentato che la mia analisi CV ha prodotto 2 valori univoci per quel particolare set di dati (alcuni altri set di dati hanno N valori univoci, con N di solito inferiore a 5), ​​proprio come l'ameba descritta sopra. Detto questo, come posso dimostrare che le mie previsioni sono stabili usando solo il mio singolo set di dati e CV? Per quanto riguarda una distribuzione binomiale, stavo prendendo in considerazione l'intervallo Agresti-Coull (può funzionare per un alto tasso di successo / tasso di successo del 100% senza problemi). Sembra che tu stia dicendo che posso usare una distribuzione binomiale, ma non sono ancora chiaro come posso giustificare quell'ipotesi della stessa probabilità di successo.
Sean,

p

1
@amoeba: non ho idea di come combinare la distribuzione binomiale con la distribuzione sconosciuta a causa dell'instabilità in un intervallo di confidenza. Quindi riporto i percentili osservati per la (in) stabilità e il binomiale ci per la dimensione del campione del test finito. Come combinarli è una delle domande di ricerca che mi tengo in testa, ma finora non ho trovato una soluzione né ho incontrato nessuno. Immagino che siamo arrivati ​​in prima linea nella ricerca ...
cbeleites insoddisfatto di SX

1
@Sean: hai visto la mia recente domanda su problemi correlati? C'è una discussione (per me) molto interessante in corso nei commenti, e attualmente sto lavorando su alcune simulazioni. Sono arrivato a credere che l'ipotesi binomiale sia gravemente sbagliata! Potresti anche essere interessato a diversi riferimenti forniti lì che rivendicano la stessa cosa.
ameba dice Ripristina Monica

1
@Sean: cercherò di mantenere aggiornati questi due thread, il che significa che dopo (e se) il problema verrà ulteriormente chiarito, proverò a sintetizzare la situazione lì e anche a fornire una nuova risposta qui. Per ora, hai notato questo documento collegato nell'altro thread? Gli autori discutono esattamente la tua domanda e forniscono una procedura bootstrap che sostengono che funzioni bene. Se dovessi scrivere una risposta alla tua domanda in questo momento, consiglierei la loro procedura. Ma avrebbe senso prima controllare 24 documenti che citano quel documento.
ameba dice Ripristina Monica l'

3

Penso che la tua idea di ripetere più volte la validazione incrociata sia corretta.

Ripeti il ​​tuo CV diciamo 1000 volte, ogni volta dividendo i tuoi dati in 10 parti (per CV 10 volte) in un modo diverso ( non mescolare le etichette). Otterrai 1000 stime dell'accuratezza della classificazione. Naturalmente riutilizzerai gli stessi dati, quindi queste 1000 stime non saranno indipendenti. Ma questo è simile alla procedura bootstrap: puoi prendere la deviazione standard su queste accuratezze come errore standard della media del tuo stimatore di precisione generale. O un intervallo percentile del 95% come intervallo di confidenza al 95%.

In alternativa, è possibile combinare il ciclo di convalida incrociata e il ciclo di bootstrap e selezionare semplicemente il 10% casuale (forse stratificato casuale) dei dati come set di test e farlo 1000 volte. Lo stesso ragionamento di cui sopra si applica anche qui. Tuttavia, ciò comporterà una maggiore varianza rispetto alle ripetizioni, quindi penso che la procedura sopra descritta sia migliore.

Se il tuo tasso di classificazione errata è 0,00, il tuo classificatore commette zero errori e se ciò accade ad ogni iterazione di bootstrap, otterrai un intervallo di confidenza ampio zero. Ma questo significherebbe semplicemente che il tuo classificatore è praticamente perfetto, quindi buono per te.


Ciao @amoeba, grazie per la tua risposta. Ti dispiacerebbe spiegare un po 'di più riguardo al tuo primo suggerimento nel ripetere il CV 1000 volte permutando casualmente i campioni? Dovrebbe esserci una proporzione prestabilita di set di test: set di addestramento (ad es. 10:90 per la validazione incrociata di 10 volte)? Immagino di non essere abbastanza chiaro come ripetere la convalida 10 aumenterebbe la varianza nel tempo.
Sean,

1
Temo che la seconda procedura suggerita da @amoeba sia troppo ottimistica: un classificatore non perfetto può avere prestazioni perfette su un determinato set di dati (ad esempio, supponi di avere solo 4 campioni - è un 1: 8 per classificarli tutti correttamente per caso). Come notato dall'ameba, la misurazione della varianza rispetto alle diverse allocazioni delle pieghe del treno di prova produrrà un intervallo di confidenza pari a 0, il che è chiaramente errato in questo caso.
Trisoloriansunscreen

1
Penso che alla fine, questo problema si riduce a trovare la probabilità di osservare dati diversi da quelli che non ho già osservato. Ottenere intervalli di confidenza per il mio campione è ciò che @amoeba ha suggerito per la mia domanda originale (ho usato le pieghe casuali per ogni iterazione CV) e il risultato sembra più realistico (IC al 95%: [0,0028, 0,0033]). Tuttavia, non so se esiste un'altra tecnica che sarebbe migliore per la previsione dei dati futuri. Forse una sorta di approccio basato sul modello in cui adatta le curve ai miei dati e calcola la loro sovrapposizione?
Sean,

3
@amoeba: grazie per il chiarimento, immagino di non aver letto abbastanza attentamente la tua risposta. Tuttavia, sono ancora preoccupato per un pregiudizio ottimista di questo approccio (entrambe le procedure). Misurando l'accuratezza mentre si provano diverse divisioni CV, si stima la variabilità causata dalla divisione arbitraria. Tuttavia, ignori il fatto che tutti i tuoi dati sono un campione casuale di una più ampia popolazione di osservazioni (che non hai raccolto). Se hai un piccolo set di dati che per caso raggiunge prestazioni perfette (indipendentemente dalle suddivisioni del CV), il tuo intervallo di confidenza è zero e questo non è corretto.
Trisoloriansunscreen

1
@amoeba: è difficile, dal momento che non è possibile avviare autonomamente le osservazioni (in tal caso, considerare un classificatore di vicino più vicino). Sto lottando con quel problema da solo, vediamo se qualcun altro ha un'idea.
Trisoloriansunscreen

2

L'errore di classificazione è sia discontinuo sia una regola di punteggio impropria. Ha una bassa precisione e l'ottimizzazione seleziona le caratteristiche sbagliate e dà loro i pesi sbagliati.


Questo difficilmente può rappresentare un problema per l'OP se ottiene una precisione di classificazione convalidata per il 99-100%.
ameba dice Ripristina Monica il

1
@amoeba: può essere un problema anche se si osservano proporzioni corrette vicine al 100 o 0%: a differenza delle misure di prestazione che si basano su punteggi continui, qualsiasi tipo di prestazione che viene misurata dopo la dicotomizzazione (indurimento) il punteggio di classificazione continua non può indicare le previsioni si avvicinano al bordo della decisione purché siano ancora dalla parte corretta. Tuttavia, IMHO ci sono validi motivi per segnalare le misure delle prestazioni di tipo proporzionale (ad esempio se i vostri lettori / collaboratori le comprendono, ma non capiscono ad esempio i punteggi di Brier). Non volevo aprire quello ...
cbeleites insoddisfatto di SX

... linea di discussione in quanto non vi era alcuna indicazione di ottimizzazione nella domanda (che è dove questo diventa davvero importante).
cbeleites insoddisfatto di SX

Se stai calcolando una proporzione classificata "correttamente" devi farlo per un motivo, ad esempio, per esprimere un giudizio o intraprendere un'azione. La proporzione è fuorviante per questi scopi.
Frank Harrell

1
@FrankHarrell: Beh, la ragione immagino sia di segnalarlo in un documento. Pensi che le persone dovrebbero smettere di riferire le accuratezze della classificazione?
ameba dice Ripristina Monica il
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.