Come calcolare la precisione bilanciata in python usando sklearn
L’accuratezza bilanciata è una metrica che possiamo utilizzare per valutare le prestazioni di unmodello di classificazione .
Viene calcolato come segue:
Accuratezza bilanciata = (Sensibilità + Specificità) / 2
Oro:
- Sensibilità : il “vero tasso di positività” – la percentuale di casi positivi che il modello è in grado di rilevare.
- Specificità : il “vero tasso negativo” – la percentuale di casi negativi che il modello è in grado di rilevare.
Questa metrica è particolarmente utile quando le due classi sono sbilanciate, ovvero una classe appare molto più dell’altra.
Supponiamo, ad esempio, che un analista sportivo utilizzi 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:
Per calcolare l’accuratezza bilanciata del modello, calcoleremo prima la sensibilità e la specificità:
- Sensibilità : il “vero tasso positivo” = 15 / (15 + 5) = 0,75
- Specificità : il “tasso vero negativo” = 375 / (375 + 5) = 0,9868
Possiamo quindi calcolare la precisione bilanciata come segue:
- Accuratezza bilanciata = (Sensibilità + Specificità) / 2
- Precisione bilanciata = (0,75 + 9868) / 2
- Precisione bilanciata = 0,8684
La precisione bilanciata del modello risulta essere 0,8684 .
L’esempio seguente mostra come calcolare la precisione bilanciata per questo scenario specifico utilizzando la funzione Balanced_accuracy_score() della libreria sklearn in Python.
Esempio: calcolo della precisione bilanciata in Python
Il codice seguente mostra come definire un array di classi previste e un array di classi effettive, quindi calcolare la precisione bilanciata di un modello in Python:
import numpy as np from sklearn. metrics import balanced_accuracy_score #define array of actual classes actual = np. repeat ([1, 0], repeats=[20, 380]) #define array of predicted classes pred = np. repeat ([1, 0, 1, 0], repeats=[15, 5, 5, 375]) #calculate balanced accuracy score balanced_accuracy_score(actual, pred) 0.868421052631579
La precisione bilanciata è 0,8684 . Questo corrisponde al valore che abbiamo calcolato manualmente in precedenza.
Nota : puoi trovare la documentazione completa per la funzione Balanced_accuracy_score() qui .
Risorse addizionali
Un’introduzione all’accuratezza bilanciata
Come eseguire la regressione logistica in Python
Come calcolare il punteggio F1 in Python