Verifica se il miglioramento della precisione è significativo


14

Supponiamo che io abbia un algoritmo che classifica le cose in due categorie. Posso misurare l'accuratezza dell'algoritmo dicendo 1000 test - supponiamo che l'80% degli oggetti sia classificato correttamente.

Supponiamo che modifichi l'algoritmo in qualche modo in modo che l'81% delle cose sia classificato correttamente.

Le statistiche possono dirmi se il mio miglioramento dell'algoritmo è statisticamente significativo? Il concetto di significatività statistica è rilevante in questa situazione? Per favore, indicami la direzione di alcune risorse che potrebbero essere rilevanti.

Grazie molto.

Risposte:


3

Insomma sì. Il significato statistico è rilevante qui. Stai osservando l'errore di classificazione (o, quando lo dai qui accuratezza = 1- errore di classificazione). Se si confrontano i classificatori su diversi 1000 campioni, è possibile semplicemente utilizzare il test binomiale, se si tratta degli stessi 1000 campioni, è necessario utilizzare il test di McNemar. Si noti che semplicemente testare l'errore di classificazione in questo modo non è ottimale perché si presume che l'errore di classificazione sia indipendente dalla classe reale o che la proporzione delle classi vere sia la stessa tra le potenziali applicazioni.

Ciò significa che dovresti dare un'occhiata a misure come il tasso positivo reale, il tasso falso positivo o l'AUC. Quale misura usare e come testarla, dipende dall'output del tuo classicatore. Potrebbe essere solo una classe o potrebbe essere un numero continuo che dà la probabilità di appartenere a una determinata classe.


Ottimo, grazie. In realtà sto esaminando l'analisi del sentiment dei documenti di testo - classificandoli in "positivi" o "negativi" - c'è molto lavoro pubblicato in cui le persone alterano la selezione delle caratteristiche in qualche modo sottile, con un miglioramento dell'accuratezza dell'1% - e scrivono un documento su questo. Mi chiedo se in molti di questi casi gli autori non siano riusciti a fornire prove di un miglioramento statisticamente significativo dell'accuratezza della classificazione.
Ben

Il test di McNemar ti dice se i modelli sono significativamente diversi, il che non implica sempre che la differenza di precisione sia significativa (modelli diversi possono avere la stessa precisione). Per verificare direttamente il significato dell'aumento della precisione, si dovrebbero fare molte stime di accuratezza per mappare le distribuzioni delle accuratezze e quindi stimare se sono diverse. Ciò significherebbe addestrare i tuoi modelli più volte.
drevicko,

3

Come ha detto Erik, sì, puoi verificarlo per rilevanza statistica. Tuttavia, pensa per un momento esattamente cosa vuoi controllare. Penso che una domanda più interessante potrebbe essere quella di chiedere quanto sia probabile che l'algoritmo presumibilmente "migliorato" sia migliore (o significativamente migliore) rispetto all'originale, dati i dati di una differenza osservata dell'1%. Porre domande in termini di "significato statistico" tende a portare al tipo opposto di domanda: dato che i due algoritmi sono uguali, c'è meno del 5% di probabilità di osservare un miglioramento di almeno questo?

Per me, quest'ultima domanda è al contrario, ma in qualche modo è diventata lo standard. Puoi controllare Wikipedia sulla controversia nel test delle ipotesi statistiche . Successivamente potresti essere interessato all'inferenza bayesiana . Se davvero si vuole entrare in analisi dei dati bayesiana, è possibile controllare "Analisi dei dati bayesiana" di Gelman et al o controllare questa domanda .


2

applicando la risposta di Erik a quella di Michael :

Puoi fare lo stesso tipo di pensiero a cui Erik fa riferimento quando sceglie la misura delle prestazioni.

Trovo utile fare riferimento a tali misure diverse dalle domande a cui rispondono (qui nel linguaggio di diagnostica medica a cui ho più familiarità - ma forse puoi semplicemente sostituire il paziente con testo e malattia con spam ;-)):

  • Sensibilità: dato che il paziente ha veramente la malattia, con quale probabilità il classificatore se ne rende conto?

  • Specificità: dato che il paziente non ha davvero la malattia, con quale probabilità il classificatore se ne rende conto?

  • Valore predittivo positivo: dato che il classificatore afferma che il paziente è malato, con quale probabilità ha davvero la malattia?

  • Valore predittivo negativo: dato che il classificatore afferma che il paziente non è malato, con quale probabilità il paziente non ha davvero la malattia?

Come vedi, i valori predittivi sono ciò a cui medici e pazienti sono veramente interessati. Tuttavia, quasi tutti caratterizzano il suo classificatore per sensibilità e specificità. Il motivo è che i valori predittivi devono tenere conto della prevalenza della malattia e che può variare enormemente (ordini di grandezza!) Per diversi tipi di pazienti.

Altre informazioni sull'argomento per la tua domanda:

Scommetto che hai ragione a preoccuparti.

Prendendo entrambi gli scenari di Erik in un esempio:

Ecco i campioni di test indipendenti:

> binom.test (x = 810, n = 1000, p = 0.8)

    Exact binomial test

data:  810 and 1000 
number of successes = 810, number of trials = 1000, p-value = 0.4526
alternative hypothesis: true probability of success is not equal to 0.8 
95 percent confidence interval:
 0.7842863 0.8338735 
sample estimates:
probability of success 
                  0.81 

(nota che questo test è stato su due lati, supponendo che i due classificatori sarebbero stati pubblicati anche se i risultati fossero stati il ​​contrario ...)

Ecco la migliore situazione possibile: test accoppiato, e il nuovo classificatore è giusto per tutti i campioni, anche quello vecchio ha ragione, più altri 10:

> ## mc.nemar: best possible case
> oldclassif <- c (rep ("correct", 800), rep ("wrong", 200))
> newclassif <- c (rep ("correct", 810), rep ("wrong", 190))
> table (oldclassif, newclassif)
          newclassif
oldclassif correct wrong
   correct     800     0
   wrong        10   190
> mcnemar.test (oldclassif, newclassif)

    McNemar's Chi-squared test with continuity correction

data:  oldclassif and newclassif 
McNemar's chi-squared = 8.1, df = 1, p-value = 0.004427

(il valore p rimane al di sotto del magico 0,05 fintanto che non più di 10 campioni su 1000 sono stati previsti in modo diverso dai due classificatori).

Anche se i valori p sono la risposta giusta alla domanda sbagliata, c'è un'indicazione che è un po 'un posto stretto.

Tuttavia, tenendo conto della solita pratica scientifica, ovvero un numero sconosciuto (non pubblicato) di nuove funzionalità è stato testato e solo quello che ha funzionato leggermente meglio è stato pubblicato, il posto diventa ancora più stretto. E poi, il classificatore dell'80% potrebbe essere solo il successore di un classificatore del 79% ...

Se ti piace leggere il tedesco, ci sono alcuni libri davvero carini di Beck-Bornhold e Dubben. Se ricordo bene, Mit an Wahrscheinlichkeit grenzender Sicherheit ha una bella discussione su questi problemi. (Non so se esiste un'edizione inglese, una traduzione piuttosto letterale del titolo è "Con una certezza al limite della probabilità")


1

Scoraggerei fortemente l'uso di qualsiasi regola di punteggio impropria discontinua (un punteggio di precisione come sensibilità, specificità, proporzione classificata corretta che quando ottimizzato risulta in un modello fasullo) e invece utilizzerei test del rapporto di verosimiglianza o test F parziali per un valore aggiunto del nuovo variabili.

Uno dei diversi modi per vedere i problemi con la proporzione classificata correttamente è che se la proporzione complessiva in una categoria è 0,9, avrai ragione 0,9 volte ignorando i dati e classificando ogni osservazione come appartenente a quella categoria.


2
Sì, a volte l'accuratezza è una metrica pessima da usare, e talvolta è un metodo eccezionale; dipende. Questo sembra essere completamente tangenziale a ciò che riguarda la domanda. La domanda è di determinare se un nuovo algoritmo è migliore secondo una metrica nota, non di scegliere una metrica in primo luogo.
Michael McGowan,

Penso che dobbiamo descrivere attentamente gli obiettivi e le funzioni di utilità e, se non vogliamo fornire funzioni di utilità, dobbiamo eseguire il backsolve per la funzione di utilità che viene effettivamente assunta quando viene eseguita la classificazione.
Frank Harrell,

Qual è la ragione di così tanti voti anonimi?
chl

2
@chl Pensavo di aver spiegato che ho votato per il voto per non aver veramente risposto alla domanda che è stata posta.
Michael McGowan,

@MichaelMcGowan Abbastanza giusto.
chl
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.