Come confrontare statisticamente le prestazioni dei classificatori di machine learning?


29

Sulla base dell'accuratezza della classificazione stimata, voglio verificare se un classificatore è statisticamente migliore su un set di base rispetto a un altro classificatore. Per ogni classificatore, seleziono un campione di addestramento e test in modo casuale dal set di base, addestra il modello e collaudo il modello. Lo faccio dieci volte per ogni classificatore. Pertanto ho dieci misurazioni dell'accuratezza della classificazione di stima per ciascun classificatore. Come testare statisticamente se il è un classificatore migliore del nel set di dati di base. Quale t-test è appropriato da usare?clun'SSiofioer1clun'SSiofioer2


Hai testato i classificatori sugli stessi campioni? cioè, sample1, c1 (sample1), c2 (sample1)? O hai usato campioni diversi per ciascun classificatore?
John Moeller,

T-test associato sarebbe appropriato in questo scenario.
GEL,

1
@lewellen: l'accuratezza è proporzionale: i test t di solito non sono appropriati.
cbeleites supporta Monica il

3
@JohnMoeller: "differenza di proporzioni" sarebbe un termine di ricerca, indipendente o dipendente che non conosciamo ancora. Se è accoppiato: test di McNemar. Immagino che il test t significhi una dimensione del campione piuttosto piccola, quindi forse un'approssimazione normale non è una buona idea. Vorrei metodi statistici per tariffe e proporzioni per cercare i dettagli.
cbeleites supporta Monica il

2
@JohnMoeller: sto dicendo che ogni precisione è proporzionale. Se si desidera confrontarli, utilizzare i metodi per "differenza di proporzioni". L'ho espanso in una risposta per evitare infiniti commenti.
cbeleites supporta Monica il

Risposte:


14

Dietterich dice: "La distribuzione binomiale può essere ben approssimata da una distribuzione normale per valori ragionevoli di ." Finora, non ci hai detto che hai ragionevoli n . I 30 casi di JohnMoeller sono IMHO piuttosto pochi per l'approssimazione normale (almeno senza alcuna conoscenza di p 1 e p 2 ). nnp1p2
cbeleites supporta Monica il

Ho almeno 4000 record per classe disponibili nel set di dati di base, quindi il campione che seleziono può essere qualcosa di meno di questo. Il più grande svantaggio con i test della differenza di proporzioni è che ignorano la "variazione interna dell'algoritmo di apprendimento". Penso che questo sia importante per un classificatore come una rete neurale, che sto usando.
entropia

bene, questa è una situazione completamente diversa da quella con cui JohnMoeller ha reagito. Se intendi instabilità del modello per "variazione interna": puoi misurarla. Aggiornerò la mia risposta.
cbeleites supporta Monica il

Per chiarire, 30 è il numero di volte che seleziono i set di partizioni di test / training, non il numero di punti di test che seleziono.
John Moeller,

@JohnMoeller: scusa, l'ho completamente frainteso (proveniente da un campo in cui "un campione" è un campione fisico di qualche tipo).
cbeleites supporta Monica il

10

Non ho il libro Fleiss a portata di mano, quindi tutto questo è IIRC.

Rispondere alla domanda di @ JohnMoeller nei commenti per il momento: la domanda originale è IMHO senza risposta così com'è.

Supponiamo quindi di avere 30 campioni e testare c1 e c2 su ciascun campione e registrare l'accuratezza di ciascuno su ciascun campione.

in questo modo, si ottiene una tabella di contingenza 2 x 2 che fornisce il classificatore 1 corretto / sbagliato rispetto al classificatore 2 corretto / sbagliato. Qual è il punto di partenza per il test di McNemar . Quindi questo è per un confronto accoppiato, che è più potente del confronto di proporzioni "indipendenti" (che non sono completamente indipendenti se provengono dal disegno casuale dallo stesso campione finito).

Non riesco a cercare la "piccola stampa" di McNemar in questo momento, ma 30 campioni non sono molti. Quindi potresti anche dover passare da McNemar a l'esatto test di Fisher [o qualcos'altro] che calcola le probabilità binomiali.


Mezzi di proporzioni:
non importa se si testa uno stesso classificatore 10x con 10 casi di test o una volta con tutti quei 100 casi (la tabella 2 x 2 conta solo tutti i casi di test).

Se le 10 stime di accuratezza per ciascun classificatore nella domanda originale sono ottenute mediante blocco casuale o 10 volte la convalida incrociata o 10x out-of-bootstrap, si presume che i 10 modelli surrogati calcolati per ciascun classificatore siano equivalenti (= avere la stessa precisione), quindi i risultati dei test possono essere raggruppati *. Per la convalida incrociata di 10 volte, si assume quindi che la dimensione del campione di prova sia uguale al numero totale di campioni di prova. Per gli altri metodi non ne sono così sicuro: potresti provare lo stesso caso più di una volta. A seconda dei dati / problema / applicazione, ciò non equivale a tante informazioni quanto al test di un nuovo caso.

K

Knp^=Knσ2(p^)=σ2(Kn)=p(1-p)n


Ah ok. È l'ultimo pezzo che chiarisce le cose, almeno per me. Grazie.
John Moeller,

Grazie per la risposta. Semplicemente non chiaro sulla procedura da seguire. Si dice validazione incrociata 10 volte preforme su un singolo set di dati. Misurare la precisione sul campione di controllo, ovvero calcolare una matrice di confusione 2x2. Aggiungi le dieci matrici di confusione 2x2. Preforma il test di McNemar sulla matrice di confusione 2x2 aggregata.
entropia

@entropia: 1. La tabella di contingenza 2x2 non è la matrice di confusione. 2. nuovo campione ogni volta rispetto al test di entrambi i classificatori sugli stessi dati di test: i test accoppiati sono più potenti (e possibili qui). Vedi la risposta aggiornata.
cbeleites supporta Monica il

Mi dispiace per quello, sì, tabella di contingenza. Ho ragione a dire che il test di McNemar si traduce anche direttamente in un problema multi-classe.
entropia

@cbeleites grazie mille per la risposta !!! Penso che ora tu abbia risposto esattamente alle mie domande. Tuttavia, non capisco ancora la procedura esatta da seguire. Ti dispiacerebbe approfondire l'ultimo paragrafo.
entropia
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.