Scopri come le curve ROC e l'AUC valutano le prestazioni dei classificatori in AI/ML, ottimizzando il rapporto tra veri positivi (TPR) e falsi positivi (FPR) per attività come il rilevamento di frodi e la diagnosi medica.
La curva ROC (Receiver Operating Characteristic) è una rappresentazione grafica utilizzata per valutare le prestazioni di un modello di classificazione binaria. modello di classificazione binaria. Visualizza il compromesso tra il tasso di veri positivi (TPR) e il tasso di falsi positivi (FPR) in base a diverse soglie di classificazione. positivo (TPR) e il tasso di falsi positivi (FPR) in base a diverse soglie di classificazione. Nell'apprendimento apprendimento automatico (ML), questa curva è fondamentale per valutare la capacità di un modello di distinguere tra due classi, come "spam" e "non spam" o "malato". "non spam" o "malato" contro "sano". Tracciando queste percentuali, la curva ROC fornisce una visione completa della capacità diagnostica di un modello, andando oltre le metriche a singolo numero come la l 'accuratezza, che possono essere fuorvianti in modo isolato.
Per interpretare correttamente una curva ROC, è essenziale comprendere le due metriche tracciate sui suoi assi:
La curva viene generata variando la soglia di confidenza del classificatore da 0 a 1. Ogni punto della punto della curva ROC rappresenta una coppia sensibilità/specificità corrispondente a una particolare soglia di decisione. A linea diagonale dal basso a sinistra all'alto a destra rappresenta un classificatore casuale senza capacità predittiva (lancio di una moneta). lancio di una moneta), mentre una curva che si inarca bruscamente verso l'angolo in alto a sinistra indica un modello ad alte prestazioni.
Le curve ROC sono ampiamente utilizzate in vari settori per ottimizzare le soglie decisionali per l'impiego di modelli. l'impiego di modelli.
Per tracciare una curva ROC, sono necessarie le probabilità previste per la classe positiva e non solo le etichette finali della classe.
finale. L'esempio che segue mostra come estrarre queste probabilità utilizzando un metodo
YOLO11 modello di classificazione dal
ultralytics pacchetto.
from ultralytics import YOLO
# Load a pretrained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Run inference on an image to get prediction results
results = model("path/to/image.jpg")
# Access the probability distribution for all classes
# These scores are necessary inputs for calculating ROC and AUC
probs = results[0].probs.data
print(f"Class probabilities: {probs}")
Una volta ottenute queste probabilità per un set di dati di prova, librerie come Scikit-learn possono essere per calcolare i valori di FPR e TPR necessari per tracciare la curva.
Sebbene la curva ROC sia uno strumento potente, è utile distinguerla dai concetti di valutazione correlati:
Per le attività di rilevamento degli oggetti, metriche come precisione media (mAP) sono Anche se le curve ROC rimangono importanti per la componente di classificazione sottostante a questi modelli. La comprensione di queste distinzioni assicura che gli sviluppatori scelgano la metrica giusta per le loro specifiche sfide di computer vision (CV). sfide della computer vision (CV).