Scopri come utilizzare la curva ROC (Receiver Operating Characteristic) per valutare i classificatori binari. Esplora i compromessi tra TPR e FPR con Ultralytics .
La curva ROC (Receiver Operating Characteristic) è uno strumento grafico fondamentale utilizzato per valutare le prestazioni dei modelli di classificazione binaria. Nel campo dell' apprendimento automatico (ML), essa visualizza il compromesso tra la sensibilità di un modello e la sua specificità in tutte le possibili soglie decisionali. A differenza delle metriche a valore singolo come l'accuratezza, che possono essere fuorvianti se un set di dati è sbilanciato, la curva ROC fornisce una visione completa di come si comporta un classificatore man mano che i criteri per identificare le istanze positive diventano più o meno rigorosi. Questa visualizzazione è essenziale per gli ingegneri che utilizzano tecniche di apprendimento supervisionato per determinare il punto di funzionamento ottimale per il loro caso d'uso specifico.
Per comprendere una curva ROC, è necessario osservare i due parametri tracciati l'uno rispetto all'altro: il tasso di positività reale (TPR) e il tasso di falsi positivi (FPR).
La curva illustra una relazione dinamica: abbassando la soglia di confidenza per catturare più casi positivi (aumentando il TPR), si aumenta inevitabilmente il rischio di segnalare erroneamente casi negativi (aumentando il FPR). Un classificatore perfetto raggiungerebbe l'angolo in alto a sinistra del grafico, indicando una sensibilità del 100% e un falso allarme dello 0%. Un modello che effettua ipotesi casuali apparirebbe come una linea diagonale dal basso a sinistra verso l'alto a destra. Le prestazioni complessive sono spesso riassunte dall' area sotto la curva (AUC), dove un valore di 1,0 rappresenta la perfezione.
La decisione su dove impostare la soglia su una curva ROC dipende interamente dal costo degli errori in una specifica applicazione industriale.
Per tracciare una curva ROC, sono necessarie le probabilità di previsione grezze piuttosto che solo le etichette di classe finali. L'esempio seguente utilizza il modello all'avanguardia YOLO26 per generare i punteggi di classificazione.
from ultralytics import YOLO
# Load a pretrained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference to get probability distribution
results = model("bus.jpg")
# Access the probability score for the predicted class
# These continuous scores are required to calculate TPR/FPR at different thresholds
print(f"Top Class Index: {results[0].probs.top1}")
print(f"Confidence Score: {results[0].probs.top1conf:.4f}")
Una volta raccolte queste probabilità per un set di validazione, gli sviluppatori possono utilizzare librerie come Scikit-learn per calcolare i punti della curva. Per la gestione dei set di dati e il monitoraggio di queste metriche nel tempo, la Ultralytics offre strumenti integrati per la valutazione e l'implementazione dei modelli.
È importante distinguere la curva ROC dagli altri strumenti di valutazione: