Domanda:
Calcolando il punteggio F, qual è la classe "positiva", la classe di maggioranza o minoranza?
David Parks
2016-01-21 02:03:35 UTC
view on stackexchange narkive permalink

Sto calcolando il punteggio F per un set di dati sandbox: 100 pazienti medici, 20 dei quali hanno il cancro. Il nostro classificatore classifica erroneamente 20 pazienti sani come malati di cancro e 5 pazienti con cancro come sani, il resto è corretto.

Calcoliamo Veri positivi ; Veri negativi ; Falsi positivi ; e Falsi negativi .

Ci siamo imbattuti in un dibattito su quale classe viene prima, quelle che testano "Positivo" per il cancro o la classe di maggioranza, ad es. quelli che sono "sani".

Domanda esplicita: qual è il tasso di veri positivi corretto in questo set di dati? È:

  1. # di pazienti sani previsti su # di pazienti sani effettivi
  2. # di pazienti con cancro previsti su # di pazienti con cancro effettivi

Punti bonus se puoi fare riferimento a letteratura che supporta una supposizione o l'altra.

Nota, ho sfogliato alcuni testi sui punteggi f ma non ho visto una discussione esplicita su questo punto:

https://en.wikipedia.org/wiki/F1_score http://rali.iro.umontreal.ca/rali/sites/default/ files / publis / SokolovaLapalme-JIPM09.pdf

Il testo di Wikipedie sulla precisione e il richiamo sembra suggerire che "vero positivo" sia definito da qualunque "test" venga eseguito, e quindi in questo caso definito come la classe di minoranza perché il "test" è per il cancro. Tuttavia non trovo la discussione abbastanza rigorosa da convincermi. Se descrivo semplicemente il test in termini di test per pazienti "sani", cambio il punteggio f, ma questo era solo un cambiamento semantico. Mi aspetto che il punteggio f abbia una definizione matematicamente rigorosa.

https://en.wikipedia.org/wiki/Precision_and_recall

Non ho chiarito nel tentativo di semplificare, ma ho semplificato eccessivamente.Abbiamo un classificatore che classifica erroneamente 20 dei pazienti sani come malati di cancro e 5 dei malati di cancro come sani, il resto è corretto.Ho aggiornato la domanda con quel dettaglio.Sto solo facendo questi numeri per capire qual è la convenzione corretta per quanto riguarda il calcolo del punteggio F.Fondamentalmente è solo un set di dati distorti.Posso calcolare il punteggio F in due modi, considerando il vero-postoivo come una misura della classe sana, di maggioranza o come malsana, di minoranza.
Non ci avevo mai pensato così tanto prima.In riferimento alla tua "domanda esplicita" sopra, nel caso in cui si cerchi qualcuno con il cancro, penso che un 1 nel set di addestramento significherebbe che ha il cancro.Significa che stai cercando di aumentare la frequenza TP nel tuo modello.Come accennato di seguito, il punteggio F1 potrebbe non essere la metrica migliore da utilizzare, ma potrebbe comunque avere un valore a seconda del caso d'uso.Se lo usi, guarderei questo articolo per alcuni approfondimenti su questa metrica: hpl.hp.com/techreports/2009/HPL-2009-359.pdf
Tre risposte:
EdM
2016-01-27 22:49:12 UTC
view on stackexchange narkive permalink

Penso che tu abbia scoperto che il punteggio F non è un ottimo modo per valutare uno schema di classificazione. Dalla pagina di Wikipedia che hai collegato, c'è una semplificazione della formula per il punteggio F:

$$ {F1} = \ frac {2 {TP} } {2 {TP} + {FP} + {FN}} $$

dove $ TP, FP, FN $ sono numeri di veri positivi, falsi positivi e falsi negativi, rispettivamente.

Noterai che il numero di casi veri negativi (equivalentemente, il numero totale di casi) non è considerato affatto nella formula. Quindi puoi avere lo stesso punteggio F sia che tu abbia un numero molto alto o molto basso di veri negativi nei risultati della tua classificazione. Se prendi il tuo caso 1, "# di pazienti sani previsti su # di pazienti sani effettivi", i "veri negativi" sono quelli che sono stati correttamente classificati come affetti da cancro, ma quel successo nell'identificazione dei pazienti con cancro non entra nella F -Punto. Se prendi il caso 2, "# di pazienti con cancro previsti su # di pazienti con cancro effettivi", il numero di pazienti correttamente classificati come non affetti da cancro viene ignorato. Nessuna delle due sembra una buona scelta in questa situazione.

Se guardi uno dei miei riferimenti facilmente accessibili preferiti sulla classificazione e la regressione, An Introduction to Statistical Learning, Elements of Statistical Learning o Frank Harrell's Strategie di modellazione della regressione e note del corso associate, non troverai molte discussioni sui punteggi F. Quello che troverai spesso è un avvertimento contro la valutazione delle procedure di classificazione basate semplicemente su $ TP, FP, FN, $ e $ TN $ valori. È molto meglio concentrarsi su una valutazione accurata del probabile stato della malattia con un approccio come la regressione logistica, che in questo caso metterebbe in relazione la probabilità di avere il cancro ai valori dei predittori che hai incluso nel tuo schema di classificazione. Quindi, come dice Harrell a pagina 258 di Strategie di modellazione della regressione , 2a edizione:

Se crei una regola di classificazione da un modello di probabilità, sei presuntuoso. Supponiamo che venga sviluppato un modello per assistere i medici nella diagnosi di una malattia. I medici a volte dichiarano di desiderare un modello decisionale binario, ma se viene data una probabilità applicheranno giustamente soglie diverse per il trattamento di pazienti diversi o per l'ordinazione di altri test diagnostici.

Un buon modello della probabilità di essere un membro di una classe, in questo caso di avere il cancro, è quindi molto più utile di qualsiasi schema di classificazione particolare.

Grazie per i riferimenti e la spiegazione del motivo per cui TP / FP / FN / TN potrebbero essere misure sbagliate per questo tipo di caso (e a sua volta il punteggio F che dipende da quelle misure).Questo è il piccolo schiaffo in faccia di cui avevo bisogno.:)
@DavidParks felice di aiutare.
Un'ottima aggiunta a questa domanda / risposta: http://stats.stackexchange.com/questions/76776/is-the-f-1-score-symmetric?lq=1
Non mi è mai piaciuta l'idea di ignorare il risultato TN.Puoi involontariamente migliorare o peggiorare le prestazioni del tuo modello scegliendo l'etichetta 1 vs 0 di conseguenza.
Ensuis sui Pulverem
2016-01-24 11:59:03 UTC
view on stackexchange narkive permalink

La precisione è la frazione che ha effettivamente il cancro rispetto al numero totale che si prevede positivo,

  precisione = (numero di veri positivi) / (numero di positivi previsti dal classificatore)  codice> 

Il ricordo (o tasso di vero positivo) è, quale frazione di tutti i predetti dal tuo classificatore sono stati accuratamente identificati .

  tasso di veri positivi = veri positivi / (Vero positivo + Falso negativo)  

Venendo al punteggio F, è una misura del compromesso tra precisione e richiamo. Supponiamo che tu imposti la soglia per la previsione di un positivo come molto alto . Supponiamo di prevedere positivo se h (x) > = 0,8 e negativo se h ( x) < 0.8 hai una precisione enorme ma un richiamo basso. Hai una precisione di (15) / (15 + 20) = 42,8% (15 è il numero di veri positivi 20 cancerogeni totali, sottratti 5 che sono previsti erroneamente)

Se vuoi avere un alto ricordo [o un tasso di veri positivi], significa che vuoi evitare di perdere casi positivi, in modo da prevedere un positivo più facilmente. Prevedi positivo se h (x) > = 0.3 altrimenti predice negativo. Fondamentalmente avere un alto ricordo significa che stai evitando molti falsi negativi . Qui il tuo vero tasso di positività è (15 / (15 + 5)) = 75%

Avere un alto ricordo per i classificatori del cancro può essere una buona cosa, tu totalmente è necessario evitare falsi negativi qui. Ma ovviamente questo ha il costo della precisione.

Il punteggio F misura questo compromesso tra previsione precisa ed evitare falsi negativi. La sua definizione può essere arbitraria a seconda del classificatore, supponiamo che sia definita come la media tra precisione e tasso di vero positivo.

Questa non è una misura molto buona del punteggio F perché puoi avere un valore di richiamo enorme e una precisione molto bassa [ad esempio, prevedere tutti i casi positivi] e ti ritroverai comunque con un punteggio F che è lo stesso quando la tua precisione e il tuo richiamo sono ben bilanciati.

Definisci il punteggio F come:

  2 * (Precisione * Richiamo) / (Precisione + Richiamo)  codice> 

Perché? Se hai una precisione o un richiamo molto bassi o entrambi, il tuo punteggio F diminuisce; e saprai che qualcosa non va.

Ti consiglierei di calcolare il punteggio F, la precisione e il richiamo, nel caso in cui il tuo classificatore preveda tutti i negativi, e quindi con l'algoritmo vero e proprio. Se si tratta di un set inclinato, potresti richiedere più dati di addestramento.

Nota anche che è una buona idea misurare il punteggio F sull'insieme di convalida incrociata. È anche noto come punteggio F1.

http://arxiv.org/ftp/arxiv/papers/1503/1503.06410.pdf

https://www.google.co.in/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=a+probabilistic+theory+of+precision+recall+and+f + punteggio

Se stai utilizzando il punteggio F1 e la convalida incrociata, ho riscontrato alcuni buoni punti in questo articolo: https://www.hpl.hp.com/techreports/2009/HPL-2009-359.pdf
Nello specifico, afferma che è importante considerare il modo in cui si calcola il punteggio F1.Ad esempio, se prendi la media dei punteggi F1 su tutte le corse CV, otterrai un valore diverso rispetto a se si sommano prima i valori tp, tn, fp, fn e poi si calcola il punteggio F1 dai dati grezzi, otterrai un valore diverso (e migliore in base alla carta).Tendo ad essere d'accordo con questo calcolo poiché l'altro è più come prendere una media di una media (qualcosa da evitare).
Andrew Silver
2020-01-09 02:16:08 UTC
view on stackexchange narkive permalink

Oltre alle risposte precedenti, nota che il punteggio F 1 può anche essere risolto come:

$$ F_1 score = \ frac {2} {\ frac {1} {P} + \ frac {1} {R}} $$

Dove P = precisione e R = richiamo = tasso di vero positivo (TPR).

Questo offre il vantaggio di fare riferimento a P e R una sola volta ciascuno quando si risolve per il F 1 punteggio .



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...