Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Receiver Operating Characteristic (ROC) Curve

Una curva caratteristica operativa del ricevitore (ROC) rappresenta il tasso di veri positivi rispetto al tasso di falsi positivi per ogni soglia. Scopri come leggerla, AUC e codice.

Una curva caratteristica operativa del ricevitore (ROC) è un grafico che mostra quanto bene un classificatore binario separa due classi per ogni possibile soglia decisionale. Riporta il tasso di veri positivi sull’asse y rispetto al tasso di falsi positivi sull’asse x, con un punto per ogni soglia applicata ai punteggi del modello, così un’unica immagine copre tutti i compromessi tra individuare i positivi e generare falsi allarmi. La sua area, l’area sotto la curva (AUC), riassume il grafico in un unico valore indipendente dalla soglia. Il nome deriva dall’ingegneria radar della Seconda guerra mondiale, in cui misurava quanto bene gli operatori dei ricevitori radar distinguevano gli aerei nemici dal rumore; in seguito il metodo si è diffuso in medicina, psicologia e machine learning (ML).

Come si costruisce una curva ROC#

Ogni punto della curva deriva da una matrice di confusione calcolata a una determinata soglia:

  • Tasso di veri positivi (TPR), chiamato anche recall o sensibilità: TP / (TP + FN), la quota di positivi effettivi individuati dal modello.
  • Tasso di falsi positivi (FPR): FP / (FP + TN), la quota di negativi effettivi segnalati erroneamente. L’FPR è uguale a 1 meno la specificità.

Facendo variare la soglia da un valore alto a uno basso, si traccia la curva da (0, 0), dove non viene segnalato nulla, a (1, 1), dove viene segnalato tutto. Un classificatore che assegna a ogni positivo un punteggio superiore a quello di ogni negativo passa per l’angolo in alto a sinistra, un modello che indovina a caso segue la diagonale e una curva sotto la diagonale indica che i punteggi sono invertiti. L’AUC equivale alla probabilità che un positivo scelto a caso riceva un punteggio superiore a quello di un negativo scelto a caso: 0.5 corrisponde al caso e 1.0 a una separazione perfetta. Per costruire la curva servono punteggi continui, come probabilità previste o valori di confidenza, perché le etichette binarie 0/1 forniscono un solo punto. L’esempio seguente addestra un classificatore di regressione logistica su un dataset sbilanciato e calcola la curva con roc_curve di scikit-learn:

import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, roc_curve
from sklearn.model_selection import train_test_split

# Binary task where 10% of samples are positive
X, y = make_classification(n_samples=5000, weights=[0.9], class_sep=0.8, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0)

# ROC analysis needs continuous scores, not hard 0/1 predictions
scores = LogisticRegression().fit(X_train, y_train).predict_proba(X_test)[:, 1]
fpr, tpr, thresholds = roc_curve(y_test, scores)
print(f"AUC: {roc_auc_score(y_test, scores):.3f}")

# Each threshold is one point on the curve: higher recall costs more false alarms
for target in (0.80, 0.95):
    i = np.argmax(tpr >= target)  # first point that reaches the target TPR
    print(f"Threshold {thresholds[i]:.2f}: TPR {tpr[i]:.2f}, FPR {fpr[i]:.2f}")

Il modello raggiunge un’AUC di 0.963. Con una soglia di 0.44 individua l’82% dei positivi con un FPR di 0.01, mentre per raggiungere un recall del 95% occorre abbassare la soglia a 0.02, portando l’FPR a 0.26. In questa suddivisione di test, composta da 130 positivi e 1,120 negativi, individuare 18 positivi in più comporta 279 falsi allarmi in più.

Scegliere un punto operativo#

La curva mostra il costo di ogni soglia e l’applicazione decide quale costo è accettabile:

  • Screening medico: Un tumore mancato è molto più costoso di un esame di controllo, quindi gli strumenti di screening operano con un TPR elevato e accettano più falsi positivi da sottoporre alla valutazione dei radiologi.
  • Rilevamento delle frodi: Ogni pagamento legittimo bloccato crea disagi al cliente, quindi le banche scelgono un punto che individua la maggior parte delle frodi mantenendo l’FPR a un livello gestibile dai team di revisione e dai clienti.
  • Costi uguali: Quando entrambi gli errori hanno lo stesso costo, la statistica J di Youden, TPR meno FPR, individua il punto più lontano sopra la diagonale.

I modelli di classificazione Ultralytics YOLO26 restituiscono in results[0].probs.data una probabilità per ogni classe, i punteggi continui necessari per l’analisi ROC; raccogliendo la probabilità di una classe su un set di validazione etichettato si ottiene la curva ROC uno contro tutti di quella classe e una soglia scelta in base ai costi della distribuzione.

Una curva precision-recall riporta la precision rispetto al recall invece del TPR rispetto all’FPR. Poiché TPR e FPR vengono calcolati ciascuno all’interno di una classe, una curva ROC non cambia quando i positivi diventano più rari, mentre la precision diminuisce. Quando i positivi sono rari, come nello screening delle frodi o nel rilevamento delle anomalie, anche un FPR basso può comportare più falsi allarmi che rilevamenti corretti; uno studio PLOS ONE sui dataset sbilanciati ha rilevato che in questo contesto i grafici precision-recall sono più informativi. Il rilevamento degli oggetti viene valutato con curve precision-recall e mean average precision (mAP) per un motivo simile: le regioni di sfondo che verrebbero conteggiate come veri negativi sono illimitate, quindi l’FPR non ha un denominatore fisso.

  • Accuratezza e punteggio F1: Valori singoli misurati a una sola soglia, mentre la curva ROC e la sua AUC riassumono tutte le soglie.
  • Classificazione di immagini con molte classi: Ogni classe ha una curva ROC uno contro tutti e le AUC per classe vengono mediate in un punteggio macro o ponderato per prevalenza, calcolato da scikit-learn con roc_auc_score tramite multi_class="ovr".

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning