Come calcolare il punteggio f1 in r (con 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 R.

Esempio: calcolo del punteggio F1 in R

Il codice seguente mostra come utilizzare la funzione confusionMatrix() dal pacchetto caret in R per calcolare il punteggio F1 (e altri parametri) per un determinato modello di regressione logistica:

 library (caret)

#define vectors of actual values and predicted values
actual <- factor(rep(c(1, 0), times=c(160, 240)))
pred <- factor(rep(c(1, 0, 1, 0), times=c(120, 40, 70, 170)))

#create confusion matrix and calculate metrics related to confusion matrix
confusionMatrix(pred, actual, mode = " everything ", positive=" 1 ")

          Reference
Prediction 0 1
         0 170 40
         1 70 120
                                          
               Accuracy: 0.725           
                 95% CI: (0.6784, 0.7682)
    No Information Rate: 0.6             
    P-Value [Acc > NIR]: 1.176e-07       
                                          
                  Kappa: 0.4444          
                                          
 Mcnemar's Test P-Value: 0.005692        
                                          
            Sensitivity: 0.7500          
            Specificity: 0.7083          
         Pos Pred Value: 0.6316          
         Neg Pred Value: 0.8095          
              Accuracy: 0.6316          
                 Recall: 0.7500          
                     F1: 0.6857          
             Prevalence: 0.4000          
         Detection Rate: 0.3000          
   Detection Prevalence: 0.4750          
      Balanced Accuracy: 0.7292          
                                          
       'Positive' Class: 1

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

Nota : dobbiamo specificare mode=”tutto” in modo che il punteggio F1 venga visualizzato nell’output.

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,85, tale modello verrà considerato migliore perché ha un punteggio F1 più elevato.

Risorse addizionali

Come eseguire la regressione logistica in R
Punteggio F1 vs precisione: quale dovresti usare?

Aggiungi un commento

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