Accuracy
L'accuratezza è la quota di previsioni corrette di un modello. Formula, accuratezza top-1 e top-5, il paradosso dell'accuratezza con dati sbilanciati e metriche migliori.
La precisione è la frazione di previsioni corrette di un modello: il numero di previsioni corrette diviso per il numero totale di previsioni. È la metrica predefinita per la classificazione delle immagini e altre attività di apprendimento supervisionato con un'etichetta per input, e risponde alla domanda più semplice su un modello: quanto spesso ha ragione. La precisione è facile da leggere e confrontare tra modelli, ma attribuisce lo stesso peso a ogni previsione, quindi sui dati sbilanciati un modello può ottenere un punteggio alto pur fallendo proprio nei casi importanti; in questi casi, precisione e richiamo forniscono informazioni più utili.
Come si calcola l’accuratezza#
Per un’attività binaria, i quattro conteggi della matrice di confusione danno accuratezza = (TP + TN) / (TP + TN + FP + FN): veri positivi più veri negativi diviso tutte le previsioni. Per un’attività con molte classi, l’accuratezza è la somma della diagonale della matrice divisa per il conteggio totale, e scikit-learn con accuracy_score la calcola direttamente a partire da due array di etichette. Spesso l’accuratezza viene riportata come tasso di errore, dove errore = 1 − accuratezza.
Accuratezza top-1 e top-5#
I classificatori con molte classi riportano anche l'accuratezza top-k. L'accuratezza top-1 considera corretta una previsione solo quando la classe con il punteggio più alto coincide con l'etichetta reale, mentre l'accuratezza top-5 la considera corretta quando l'etichetta reale si trova tra le cinque classi con i punteggi più alti. L'accuratezza top-5 è diventata uno standard con la competizione ImageNet, le cui immagini spesso contengono più oggetti ma hanno un'unica etichetta tra 1.000 classi. Nel caso di YOLO26, i modelli di classificazione riportano entrambi i valori e il modello nano, yolo26n-cls.pt, raggiunge il 71,4% di accuratezza top-1 e il 90,1% di accuratezza top-5 su ImageNet a 224 pixel.
Accuratezza e metriche correlate#
- Precisione: tra i positivi previsti, la quota che è realmente positiva. Aumenta quando diminuiscono i falsi allarmi.
- Richiamo: tra i positivi effettivi, la quota rilevata dal modello. È il valore che mette in evidenza un modello che ignora una classe rara.
- Punteggio F1: la media armonica di precisione e richiamo, che resta bassa se entrambi non sono elevati.
- Media della precisione media (mAP): la metrica standard per il rilevamento degli oggetti, per cui l’accuratezza non è applicabile perché lo sfondo non offre veri negativi quantificabili, ma solo un numero illimitato di regioni vuote dell’immagine.
Il paradosso dell’accuratezza#
Quando una classe è dominante, l’accuratezza premia il fatto di ignorare la classe rara. Se l’1% delle transazioni è fraudolento, un modello che approva tutte le transazioni è accurato al 99% e non rileva alcuna frode: uno schema noto come paradosso dell’accuratezza. La stessa insidia si presenta nell’ispezione dei difetti, nello screening delle malattie e nel rilevamento delle anomalie, dove la classe di interesse è rara per sua natura.
import numpy as np
from sklearn.metrics import accuracy_score, balanced_accuracy_score, recall_score
# 1,000 transactions, 10 of them fraudulent (label 1)
y_true = np.zeros(1000, dtype=int)
y_true[:10] = 1
# A model that labels every transaction as legitimate
y_pred = np.zeros(1000, dtype=int)
print(f"Accuracy: {accuracy_score(y_true, y_pred):.2f}")
print(f"Balanced accuracy: {balanced_accuracy_score(y_true, y_pred):.2f}")
print(f"Fraud recall: {recall_score(y_true, y_pred):.2f}")L’accuratezza bilanciata, ovvero il richiamo medio tra le classi, rivela il fallimento che l’accuratezza semplice nasconde: lo script stampa un’accuratezza di 0.99, un’accuratezza bilanciata di 0.50 e un richiamo delle frodi di 0.00.










