Come calcolare il punteggio f1 in python (incluso esempio)


Quando si utilizzanomodelli di classificazione nell’apprendimento automatico, una metrica comune che utilizziamo per valutare la qualità del modello è il punteggio F1 .

Questa metrica viene calcolata come segue:

Punteggio F1 = 2 * (Precisione * Richiamo) / (Precisione + Richiamo)

Oro:

  • Precisione : correggere le previsioni positive rispetto al totale delle previsioni positive
  • Promemoria : correzione delle previsioni positive rispetto al totale dei positivi effettivi

Ad esempio, supponiamo di utilizzare un modello di regressione logistica per prevedere se 400 diversi giocatori di basket universitari verranno arruolati o meno nella NBA.

La seguente matrice di confusione riassume le previsioni fatte dal modello:

Ecco come calcolare il punteggio F1 del modello:

Precisione = Vero positivo / (Vero positivo + Falso positivo) = 120/ (120+70) = 0,63157

Richiamo = Vero positivo / (Vero positivo + Falso negativo) = 120 / (120+40) = 0,75

Punteggio F1 = 2 * (.63157 * .75) / (.63157 + .75) = . 6857

L’esempio seguente mostra come calcolare il punteggio F1 per questo modello esatto in Python.

Esempio: calcolo del punteggio F1 in Python

Il codice seguente mostra come utilizzare la funzione f1_score() del pacchetto sklearn in Python per calcolare il punteggio F1 per un determinato array di valori previsti e valori effettivi.

 import numpy as np
from sklearn. metrics import f1_score

#define array of actual classes
actual = np. repeat ([1, 0], repeats=[160, 240])

#define array of predicted classes
pred = np. repeat ([1, 0, 1, 0], repeats=[120, 40, 70, 170])

#calculate F1 score
f1_score(actual, pred)

0.6857142857142857

Vediamo che il punteggio F1 è 0,6857 . Questo corrisponde al valore che abbiamo calcolato manualmente in precedenza.

Nota : puoi trovare la documentazione completa per la funzione f1_score() qui .

Note sull’utilizzo dei punteggi F1

Se si utilizza il punteggio F1 per confrontare più modelli, il modello con il punteggio F1 più alto rappresenta il modello in grado di classificare meglio le osservazioni in classi.

Ad esempio, se si adatta ai dati un altro modello di regressione logistica e tale modello ha un punteggio F1 pari a 0,75, tale modello verrà considerato migliore perché ha un punteggio F1 più elevato.

Risorse addizionali

Come eseguire la regressione logistica in Python
Come creare una matrice di confusione in Python
Come calcolare la precisione bilanciata in Python
Punteggio F1 vs precisione: quale dovresti usare?

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *