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

Confusion Matrix

Una matrice di confusione conta le previsioni di un modello rispetto alle etichette vere, classe per classe. Scopri come leggerla, quali metriche fornisce e come si presenta nella rilevazione.

Una matrice di confusione è una tabella che conta quanto le previsioni di un modello di classificazione corrispondono alle etichette reali. Un asse elenca le classi effettive e l'altro le classi previste; ogni cella conta gli esempi appartenenti a quella coppia. Le previsioni corrette si trovano sulla diagonale, mentre ogni errore è fuori diagonale, nella cella che indica esattamente quale classe è stata confusa con quale altra. Per questo la matrice di confusione è la prima panoramica standard degli errori di un modello e la fonte di accuratezza, precisione, richiamo e F1-score.

Come leggere una matrice di confusione binaria#

Con due classi, la matrice ha quattro celle:

  • Veri positivi (TP): esempi positivi previsti come positivi, per esempio un componente difettoso segnalato come difettoso.
  • Falsi positivi (FP): esempi negativi previsti come positivi, detti anche errori di tipo I o falsi allarmi.
  • Falsi negativi (FN): esempi positivi previsti come negativi, detti anche errori di tipo II o mancate rilevazioni.
  • Veri negativi (TN): esempi negativi previsti come negativi.

La maggior parte delle metriche binarie è costituita da rapporti tra questi quattro conteggi. La precisione è TP / (TP + FP), il richiamo è TP / (TP + FN) e l'accuratezza è (TP + TN) diviso per la somma di tutti e quattro. Quale cella fuori diagonale sia più importante dipende dall'applicazione: uno screening del cancro è regolato per mantenere bassi i falsi negativi, mentre un filtro antispam è regolato per mantenere bassi i falsi positivi.

Matrici di confusione multiclasse#

Con N classi, la matrice è N × N. Nell'orientamento usato da scikit-learn, nella sua confusion_matrix, ogni riga rappresenta una classe reale e ogni colonna una classe prevista. Leggere una riga mostra dove sono finiti gli esempi di quella classe, quindi la cella diagonale divisa per il totale della riga corrisponde al richiamo della classe. Leggere una colonna mostra quali fossero davvero le previsioni del modello per quella classe, quindi la cella diagonale divisa per il totale della colonna corrisponde alla precisione della classe. Alcuni strumenti visualizzano la matrice trasposta, quindi per leggere un grafico bisogna fare riferimento alle etichette degli assi.

from sklearn.metrics import confusion_matrix

# Etichette reali e previste per 10 immagini
y_true = ["cat", "cat", "cat", "dog", "dog", "dog", "dog", "fox", "fox", "fox"]
y_pred = ["cat", "cat", "dog", "dog", "dog", "dog", "cat", "fox", "dog", "fox"]

# Le righe sono le classi reali e le colonne quelle previste, in quest'ordine di etichette
labels = ["cat", "dog", "fox"]
matrix = confusion_matrix(y_true, y_pred, labels=labels)
print(matrix)

Le righe stampate per cat, dog e fox sono [2 1 0], [1 3 0] e [0 1 2]. La diagonale contiene 7 delle 10 immagini, quindi l'accuratezza è 0.7. La colonna dog raccoglie un cat e un fox, perciò la precisione di dog è 3 / 5 = 0.6; la riga dog perde un'immagine a favore di cat, perciò il richiamo di dog è 3 / 4 = 0.75. Una matrice normalizzata divide ogni cella per il totale della relativa classe reale, quindi la diagonale mostra il richiamo per classe e le classi di dimensioni molto diverse diventano confrontabili.

Matrici di confusione per il rilevamento di oggetti#

Il rilevamento aggiunge una classe di sfondo, perché un rilevatore può indicare un riquadro dove non c'è nulla oppure non rilevare affatto un oggetto. Prima, le predizioni vengono associate alle etichette tramite intersezione sull'unione (IoU), poi vengono conteggiate: le coppie associate finiscono nelle celle delle classi, le predizioni non associate contano come falsi positivi rispetto allo sfondo e le etichette non associate come falsi negativi previsti come sfondo. La cella sfondo-sfondo resta vuota perché non è possibile conteggiare regioni vuote dell'immagine, quindi una matrice di rilevamento non ha veri negativi. La validazione di YOLO26 costruisce questa matrice con una riga e una colonna aggiuntive per lo sfondo, associando le predizioni alle etichette con IoU superiore a 0.45, e la salva come confusion_matrix.png, con le classi previste sull'asse verticale e quelle reali sull'asse orizzontale.

from ultralytics import YOLO

# Load a pretrained YOLO26 nano detector
model = YOLO("yolo26n.pt")

# Validation builds the confusion matrix and saves it as confusion_matrix.png
metrics = model.val(data="coco8.yaml")
matrix = metrics.confusion_matrix.matrix  # rows: predicted class, columns: true class

# 80 COCO classes plus one background row and column
print(matrix.shape)

# Class 0 is "person": correct detections and people the model missed
print(f"Person TP: {matrix[0, 0]:.0f}, missed: {matrix[-1, 0]:.0f}")

La forma è (81, 81) e l'ultima riga conta le persone etichettate che non sono state associate ad alcuna predizione.

  • Curva ROC: un punto per ogni soglia decisionale; ciascun punto riassume la matrice di confusione di quella soglia come tasso di veri positivi e tasso di falsi positivi.
  • Media della precisione media (mAP): il principale punteggio di rilevamento, calcolato usando le stesse decisioni TP e FP a tutti i livelli di confidenza, senza mostrare quali classi vengono confuse.
  • Accuratezza: la matrice ridotta a un solo numero, cioè la diagonale divisa per il totale. In un dataset composto per il 95% da esempi negativi, un modello che prevede sempre "negativo" ottiene un'accuratezza del 95%, anche se la matrice mostra zero veri positivi.

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