2010-01-30 5 views
6

Sto valutando un numero di algoritmi diversi il cui compito è di prevedere la probabilità di un evento che si verifica.Determinare se la differenza tra due valori di errore è significativa

Sto testando gli algoritmi su set di dati di grandi dimensioni. Misuro la loro efficacia usando "Root Mean Squared Error", che è la radice quadrata della ((somma degli errori) al quadrato). L'errore è la differenza tra la probabilità prevista (un valore in virgola mobile compreso tra 0 e 1) e il risultato effettivo (0,0 o 1,0).

Quindi conosco l'RMSE e anche il numero di campioni su cui è stato testato l'algoritmo.

Il problema è che a volte i valori RMSE sono abbastanza vicini l'uno all'altro, e ho bisogno di un modo per determinare se la differenza tra loro è solo casuale, o se rappresenta una differenza effettiva nelle prestazioni.

Idealmente, per una data coppia di valori RMSE, mi piacerebbe sapere qual è la probabilità che uno sia realmente migliore dell'altro, in modo da poter usare questa probabilità come soglia di significato.

risposta

4

Stai entrando in un'area vasta e controversa non solo di calcolo ma di filosofia. I test di significatività e la selezione dei modelli sono oggetto di intenso disaccordo tra Bayesiani e Frequentisti. Il commento di Triston sulla suddivisione dell'insieme di dati in set di formazione e verifica non sarebbe piaciuto a un bayesiano.

Posso suggerire che RMSE non è un punteggio appropriato per le probabilità. Se i campioni sono indipendenti, il punteggio corretto è la somma dei logaritmi delle probabilità assegnate ai risultati effettivi. (Se non sono indipendenti, hai un casino nelle mani.) Quello che sto descrivendo è il punteggio di un modello "plug-in". La corretta modellazione bayesiana richiede l'integrazione sui parametri del modello, che è estremamente complicato dal punto di vista computazionale. Un modo bayesiano per regolare un modello di plug-in consiste nell'aggiungere una penalità al punteggio per parametri di modello improbabili (grandi).Questo è stato chiamato "decadimento del peso".

Ho iniziato il mio percorso di scoperta leggendo reti neurali per il riconoscimento di modelli di Christopher Bishop. L'ho usato e e Ottimizzazione pratica di Gill, e al per scrivere software che ha funzionato molto bene per me.

+0

Commentando il mio commento. "Il punteggio corretto" è un termine troppo forte. Questo punteggio è spesso appropriato, ma potrebbe essere necessario un punteggio di costo che tenga conto del guadagno ottenuto dalla corretta classificazione e della perdita da false classificazioni. È un argomento profondo.Non fare affidamento su un modello per decisioni importanti a meno che tu non sappia REALMENTE quello che stai facendo e tu VERAMENTE comprenderai come il tuo set di dati si riferisce alla distribuzione dei dati che stai valutando. Smontare la soapbox ora. –

+0

Sono completamente bayesiano. Ma data la domanda, un t-test frequentista che usa errori fuori campione è certamente statisticamente difendibile e dovrebbe dare buone risposte. Non è chiaro che la soluzione bayesiana sia del tutto fattibile; l'intervistatore sta usando procedure di stima esistenti, non bayesiane e sembra preoccuparsi che MSE non sia un criterio di adattamento del modello. – Tristan

+0

@Tristan. Inteso. Ma MSE è ragionevole per le uscite di probabilità? C'è una T analogica per studenti per un errore logaritmico? –

7

Il MSE è una media e quindi si applica il teorema del limite centrale. Quindi testare se due MSE sono uguali è come testare se due mezzi sono uguali. Una difficoltà rispetto a un test standard che confronta due mezzi è che i tuoi campioni sono correlati - entrambi provengono dagli stessi eventi. Ma una differenza di MSE è la stessa di una media di errori al quadrato differenziali (i mezzi sono lineari). Ciò suggerisce calcolare un one-sample t-test come segue:

  1. Per ogni x calcolare un errore e per procedura 1 e 2.
  2. differenze Calcola di errori quadratici (e2^2-e1^2).
  3. Calcolare la media delle differenze.
  4. Calcolare la deviazione standard delle differenze.
  5. Calcola una statistica t come mean/(sd/sqrt(n)).
  6. Confronta la statistica t con un valore critico o calcola un valore p. Ad esempio, respingere l'uguaglianza al livello di confidenza del 5% se |t|>1.96.

Il RMSE è una trasformazione monotona di MSE, pertanto questo test non dovrebbe fornire risultati sostanzialmente diversi. Ma fai attenzione a non dare per scontato che MRSE sia RMSE.

Una preoccupazione più grande dovrebbe essere il sovradattamento. Assicurati di calcolare tutte le tue statistiche MSE usando i dati che non hai usato per stimare il tuo modello.

+0

È un po 'difficile per sommare le differenze di errori al quadrato, poiché in realtà ho bisogno di testare più di 2 algoritmi contemporaneamente. C'è un modo per farlo quando gli input sono il numero di test (n) e i due valori RMSE? – sanity

+0

Il vantaggio di differenziare prima è che si evita la necessità di calcolare i termini di covarianza. Il problema è cov (e1, e2)! = 0, quindi un t-test standard non funzionerà. Se hai solo due valori RMSE, non conosci la covarianza, quindi non sarai in grado di calcolare facilmente qualsiasi statistica di test. Se è possibile eseguire queste procedure più volte, è consigliabile prendere in considerazione il bootstrap. Ciò ti consentirà di utilizzare facilmente qualsiasi statistica che desideri in modo statisticamente difendibile ma semplice. – Tristan

+0

Cosa intendi con "bootstrap"? Immagino di non aver dichiarato il problema molto bene. Fondamentalmente posso avere centinaia di algoritmi e ho bisogno di identificare il migliore, quindi non so quale algoritmo deve essere confrontato tra loro fino a quando non ho già eseguito il test e registrato i risultati: -/ – sanity

0

Sto rispondendo alle domande nei commenti. L'argomento è troppo grande per essere gestito nei commenti.

Versione di note di scogliera.

I tipi di punteggi di cui stiamo parlando misurano le probabilità. (Che sia appropriato per quello che stai facendo è un'altra domanda.) Se si assume che i campioni siano indipendenti, si ottiene la probabilità "totale" semplicemente moltiplicando tutte le probabilità insieme. Ma di solito questo si traduce in numeri assurdamente piccoli, quindi in modo equivalente, si aggiungono i logaritmi delle probabilità. Più grande è meglio. Zero è perfetto.

L'errore ubiquitario -quadrato, -x^2, dove x è l'errore del modello, deriva dall'ipotesi (spesso ingiustificata) che i dati di addestramento comprendono osservazioni (misurazioni) corrotte con "rumore gaussiano". Se guardi su Wikipedia o qualcosa alla definizione di una distribuzione gaussiana (alias normale), troverai che contiene il termine e^(- x^2). Prendi il logaritmo naturale di ciò, e voilà !, -x^2. Ma i tuoi modelli non producono i valori di "pre-rumore" più probabili per le misurazioni. Producono direttamente le probabilità. Quindi la cosa da fare è semplicemente aggiungere i logaritmi delle probabilità assegnate agli eventi osservati. Si presume che tali osservazioni siano prive di rumore. Se i dati di allenamento dicono che è successo, è successo.

La tua domanda originale rimane senza risposta. Come dire se due modelli differiscono "significativamente"? Questa è una domanda vaga e difficile. È oggetto di molti dibattiti e persino di emozioni e rancori. Inoltre, non è la domanda a cui vuoi rispondere. Quello che vuoi sapere è quale modello ti dà il miglior profitto atteso, tutto considerato, compresa la quantità di ogni pacchetto software costa, ecc.

Dovrò interrompere questo presto. Questo non è il posto per un corso su modellistica e probabilità, e io non sono veramente qualificato come professore.