Area Under the Curve (AUC)
AUC trasforma una curva ROC in un unico punteggio compreso tra 0 e 1: la probabilità che un classificatore assegni a un positivo casuale un punteggio superiore a quello di un negativo casuale. AUC ROC e AUC PR, con codice.
L'area sotto la curva (AUC) è una metrica che riassume la capacità di un classificatore binario di distinguere due classi a ogni possibile soglia decisionale. Nel machine learning, AUC indica quasi sempre l'area sotto la curva ROC (receiver operating characteristic), chiamata anche ROC AUC o AUROC. Il suo valore corrisponde alla probabilità che il modello assegni a un esempio positivo scelto a caso un punteggio superiore a quello di un esempio negativo scelto a caso. Un'AUC di 1.0 significa che ogni positivo supera ogni negativo; 0.5 indica che l'ordinamento non è migliore del caso, mentre valori inferiori a 0.5 indicano un ordinamento invertito. Poiché dipende solo dall'ordine dei punteggi, l'AUC valuta un modello prima che venga scelta una soglia, rendendola una metrica standard per i modelli di diagnosi medica, la valutazione del merito creditizio e il rilevamento delle frodi.
Come si calcola l'AUC#
La curva ROC rappresenta il tasso di veri positivi, ovvero il recall, rispetto al tasso di falsi positivi, cioè la quota di negativi segnalati erroneamente, mentre la soglia decisionale scende dal punteggio più alto a quello più basso. Una soglia superiore a tutti i punteggi non segnala nulla e corrisponde a (0, 0); una soglia inferiore a tutti i punteggi segnala tutto e corrisponde a (1, 1). L'AUC è l'area sotto la linea che collega tutti i punti intermedi, di solito calcolata con il metodo dei trapezi.
Lo stesso valore si ottiene contando le coppie. Confrontando ogni positivo con ogni negativo e assegnando a ciascuna coppia un punteggio di 1 se il positivo è classificato più in alto, 0.5 in caso di parità e 0 altrimenti, si ottiene esattamente la ROC AUC: una quantità che gli statistici conoscono come statistica U di Mann-Whitney normalizzata e i ricercatori in ambito medico come statistica di concordanza o c-statistic. I team che valutano il rischio di credito spesso riportano invece il coefficiente di Gini, pari a 2 × AUC − 1.
La prospettiva basata sulle coppie spiega le principali proprietà dell'AUC. Qualsiasi trasformazione che preserva l'ordine dei punteggi, come elevare al quadrato le probabilità o applicare la temperature scaling ai logit di un classificatore binario, lascia invariata l'AUC; un modello può quindi avere un'AUC eccellente e probabilità calibrate male. Per valutare la calibrazione serve una metrica distinta, come il Brier score.
ROC AUC e PR AUC su dati sbilanciati#
La ROC AUC non dipende dal rapporto tra le classi, perché il tasso di veri positivi viene calcolato solo sui positivi e il tasso di falsi positivi solo sui negativi. Questa proprietà diventa un limite quando i positivi sono rari. Con 1 positivo ogni 100, un tasso di falsi positivi del 5% produce circa cinque falsi allarmi per ogni positivo reale, ma incide appena sulla curva ROC. L'area sotto la curva precision-recall (PR AUC), solitamente riassunta come precisione media (AP), rappresenta la precisione rispetto al recall e rende direttamente visibili questi falsi allarmi, risultando più informativa della curva ROC sui dati sbilanciati. Lo script scikit-learn seguente valuta lo stesso modello in entrambi i modi:
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import average_precision_score, roc_auc_score
from sklearn.model_selection import train_test_split
# Imbalanced binary problem: 1 positive per 100 samples
X, y = make_classification(n_samples=20_000, weights=[0.99], flip_y=0, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, stratify=y, random_state=0)
# Score the test set with a simple classifier
model = LogisticRegression(max_iter=1000).fit(X_train, y_train)
scores = model.predict_proba(X_test)[:, 1]
# The same scores summarized by the areas under two different curves
print(f"Positives in test set: {y_test.sum()} of {len(y_test)}")
print(f"ROC AUC: {roc_auc_score(y_test, scores):.3f}")
print(f"PR AUC (average precision): {average_precision_score(y_test, scores):.3f}")Con 100 positivi tra 10.000 campioni di test, il modello raggiunge una ROC AUC di 0.911, ma una precisione media di appena 0.462. Anche i valori di riferimento delle due metriche sono diversi: un ordinamento casuale ottiene una ROC AUC di 0.5 indipendentemente dal bilanciamento delle classi, mentre la sua precisione media corrisponde al tasso di positivi, in questo caso 0.01.
AUC multiclasse e rilevamento degli oggetti#
La ROC AUC è definita per due classi. Per un numero maggiore, la funzione roc_auc_score di scikit-learn calcola la media delle AUC uno-contro-tutti, in cui ogni classe viene confrontata con tutte le altre, oppure delle AUC uno-contro-uno per ogni coppia di classi, usando una media macro o ponderata per la prevalenza.
Il rilevamento degli oggetti non può usare le curve ROC, perché i negativi sono tutte le posizioni dell'immagine che non contengono oggetti: un insieme praticamente illimitato, privo di un tasso di falsi positivi significativo. Le metriche di rilevamento usano invece le aree sotto le curve precision-recall. La convalida di YOLO26 in Ultralytics calcola la precisione media di ogni classe come area sotto il relativo inviluppo precision-recall, campionata in 101 punti di recall come nella valutazione COCO, e calcola la media di queste aree per ottenere la precisione media (mAP) con soglie IoU da 0.50 a 0.95.
AUC e termini correlati#
- Accuratezza: Misura le previsioni corrette a una sola soglia e può sembrare eccellente sui dati sbilanciati pur non individuando alcun positivo. L'AUC misura l'ordinamento a tutte le soglie.
- Punteggio F1: Combina precisione e recall a una sola soglia, valutando quindi un singolo punto operativo, mentre l'AUC li riassume tutti.
- Matrice di confusione: Conta veri e falsi positivi e negativi a una sola soglia. Ogni punto ROC riassume una matrice di confusione sotto forma di coppia di tassi.
- Precisione media: L'area sotto la curva precision-recall, il riepilogo abituale quando i positivi sono rari e l'elemento principale della mAP.
- AUC parziale: L'area calcolata su un intervallo limitato di falsi positivi, per esempio da 0 a 0.1; si usa quando sono accettabili solo tassi di falsi allarmi bassi, come nei programmi di screening su larga scala in cui ogni falso allarme comporta un esame di approfondimento.










