Qual è considerata una buona perdita di registro?


16

Sto cercando di capire meglio la perdita di registro e come funziona, ma una cosa che non riesco a trovare è inserire il numero di perdita di registro in una sorta di contesto. Se il mio modello ha una perdita di registro di 0,5, va bene? Qual è considerato un punteggio buono e cattivo? Come cambiano queste soglie?


Questa discussione è rilevante qui: stats.stackexchange.com/q/414349/121522
mkt -

Risposte:


19

La perdita di log è semplicemente dove è semplicemente la probabilità attribuita alla classe reale.L(pio)=-log(pio)p

Quindi è buono, abbiamo attribuito la probabilità alla classe giusta, mentre L (p) = + \ infty è cattivo, perché abbiamo attribuito la probabilità 0 alla classe effettiva.L(p)=01L(p)=+0

Quindi, rispondendo alla tua domanda, significa, in media, che hai attribuito alla giusta classe la probabilità tra i campioni.p 0,61L(p)=0.5p0.61

Ora, decidere se questo è abbastanza buono dipende effettivamente dall'applicazione, e quindi dipende dall'argomento.


9

Come ogni metrica, una buona metrica è quella migliore di quella "stupida", per caso, se si dovesse indovinare senza informazioni sulle osservazioni. Questo è chiamato il modello di sola intercettazione nelle statistiche.

Questo indovino "stupido" dipende da 2 fattori:

  1. il numero di classi
  2. il bilancio delle classi: la loro prevalenza nel set di dati osservato

Nel caso della metrica LogLoss, una consueta metrica "ben nota" è quella di dire che 0,693 è il valore non informativo. Questa cifra si ottiene predicendo p = 0.5per qualsiasi classe di un problema binario. Questo è valido solo per problemi binari bilanciati . Perché quando la prevalenza di una classe è del 10%, allora predirete p =0.1sempre quella classe. Questa sarà la tua base di previsione stupida, per caso, perché la previsione 0.5sarà più stupida .

I. Impatto del numero di classi Nsulla perdita del silenzio:

Nel caso bilanciato (ogni classe ha la stessa prevalenza), quando si prevede p = prevalence = 1 / Nper ogni osservazione, l'equazione diventa semplicemente:

Logloss = -log(1 / N)

logessere Ln, logaritmo nepalese per coloro che usano quella convenzione.

Nel caso binario, N = 2:Logloss = - log(1/2) = 0.693

Quindi i dumb-logloss sono i seguenti:

dumb-logloss a seconda del numero di classi - caso bilanciato

II. Impatto della prevalenza delle classi sul Dumb-Logloss:

un. Caso di classificazione binaria

In questo caso, prevediamo sempre p(i) = prevalence(i)e otteniamo la seguente tabella:

logloss di classificazione binaria, bilanciato - tabella

Quindi, quando le classi sono molto sbilanciate (prevalenza <2%), una perdita di log di 0,1 può effettivamente essere molto negativa! Una precisione del 98% sarebbe in tal caso negativa. Quindi forse Logloss non sarebbe la migliore metrica da utilizzare

logloss di classificazione binaria, sbilanciato - grafico

b. Caso di tre classi

"Scemo", a seconda della prevalenza - caso di tre classi:

logloss di classificazione a tre classi, sbilanciato

Possiamo vedere qui i valori dei casi binari bilanciati e di tre classi (0.69 e 1.1).

CONCLUSIONE

Una perdita di log di 0,69 può essere positiva in un problema multiclasse e pessima in un caso binario di parte.

A seconda del tuo caso, ti conviene calcolare te stesso la base del problema, per verificare il significato della tua previsione.

Nei casi distorti, capisco che logloss ha lo stesso problema dell'accuratezza e di altre funzioni di perdita: fornisce solo una misurazione globale delle prestazioni. Quindi completerai meglio la tua comprensione con metriche focalizzate sulle classi di minoranza (richiamo e precisione), o forse non usare affatto la perdita di log.


(+1) Benvenuto in CV! Puoi usare la composizione matematica nel tuo post. Ulteriori informazioni: math.meta.stackexchange.com/questions/5020/…
Sycorax dice

Meglio della mia risposta, +1
Firebug

5

Quindi questo è in realtà più complicato della risposta di Firebugs e tutto dipende dalla variazione intrinseca del processo che si sta tentando di prevedere.

Quando dico variazione ciò che intendo è "se un evento dovesse ripetersi esattamente nelle stesse condizioni, note e sconosciute, qual è la probabilità che si verifichi lo stesso risultato".

Un predittore perfetto avrebbe una perdita, per probabilità P: Perdita = P ln P + (1-P) ln (1-P)

Se stai cercando di prevedere qualcosa in cui, nel peggiore dei casi, alcuni eventi saranno previsti con un risultato di 50/50, integrando e prendendo la media la perdita media sarebbe: L = 0,5

Se quello che stai cercando di prevedere è un po 'più ripetibile, la perdita di un modello perfetto è inferiore. Quindi, ad esempio, supponiamo che, con sufficienti informazioni, un modello perfetto sia stato in grado di prevedere un risultato di un evento in cui in tutti i possibili eventi il ​​peggio che si potrebbe dire è "questo evento si verificherà con una probabilità del 90%", quindi la perdita media sarebbe L = 0,18 .

C'è anche una differenza se la distribuzione delle probabilità non è uniforme.

Quindi, in risposta alla tua domanda, la risposta è "dipende dalla natura di ciò che stai cercando di prevedere"


L0.693p

L0,18L0.5

1
Non sono d'accordo con il tuo caso peggiore. Sto semplicemente dicendo che un "buon risultato" dipende dal sistema. 0.4 può indicare un buon risultato per alcuni sistemi (come il secondo esempio) o negativo (per il primo).
simeon

0

Direi che la risposta statistica standard è quella di confrontare con il modello di sola intercettazione. (questo gestisce le classi sbilanciate menzionate in altre risposte) cfr pseudo r ^ 2 di mcFadden. https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/

Ora il problema è quale sia il valore massimo. fondamentalmente il problema è che la probabilità di un evento non è definita al di fuori di un modello per gli eventi. il modo in cui suggerirei è di prendere i dati del test e aggregarli a un certo livello, per ottenere una stima della probabilità. quindi calcolare la perdita di log di questa stima.

ad es. si sta prevedendo la percentuale di clic in base a (sito_sito, ad_id, consumer_id), quindi si aggregano clic, impressioni a livello di sito web e si calcola il ctr sul set di test per ciascun sito web. quindi calcola log_loss sul tuo set di dati di test usando queste percentuali di clic del test come previsioni. Questa è quindi la perdita di log ottimale sul set di test per un modello che utilizza solo ID sito Web . Il problema è che possiamo ridurre questa perdita come vorremmo semplicemente aggiungendo più funzionalità fino a quando ciascun record non viene identificato in modo univoco.

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.