Matrice di confusione, cosa rivela sugli errori del modello

22 ottobre 2026

Matrice di confusione che mostra le prestazioni di un modello di classificazione: alta accuratezza per auto (0.87) e camion (0.81), ma minore per bus (0.26) e moto (0.64).

Un modello assegna un punteggio alto a molti contatti commerciali, ma il team vendite scopre che parecchi non diventeranno clienti. La confusion matrix, o matrice di confusione, mostra quali previsioni sono corrette e quali errori commette il classificatore, anche se da sola non dice ancora quale errore costi di più alla tua azienda.

Matrice di confusione che mostra 600 veri positivi, 300 falsi negativi, 100 falsi positivi e 9000 veri negativi per la classificazione spam.

La matrice mostra dove il modello sbaglia, non se l’errore è accettabile

  • Diagonale: raccoglie le previsioni corrette; le altre celle mostrano gli errori.
  • Falso positivo: il modello segnala un caso che in realtà è negativo.
  • Falso negativo: il modello non rileva un caso che in realtà è positivo.
  • Classi rare: una buona accuracy complessiva può nascondere un richiamo molto basso.
  • Soglia: cambiarla modifica il compromesso fra falsi allarmi e casi mancati.

Le quattro celle distinguono previsioni corrette ed errori

Immagina un classificatore che decide se un lead acquisterà. La matrice incrocia la classe reale con quella prevista: i casi corretti finiscono sulla diagonale, mentre gli scambi fra classi rivelano gli errori da esaminare.

Esito Classe reale positiva Classe reale negativa
Predetto positivo Vero positivo (TP): il lead acquista ed è segnalato. Falso positivo (FP): il lead non acquista, ma viene segnalato.
Predetto negativo Falso negativo (FN): il lead acquista, ma non viene segnalato. Vero negativo (TN): il lead non acquista e non viene segnalato.

La disposizione di righe e colonne può cambiare da uno strumento all’altro: controlla sempre le etichette prima di interpretare i numeri. Per esempio, la documentazione di scikit-learn definisce le righe come classi reali e le colonne come classi previste; altri strumenti possono presentare l’orientamento opposto. Un asse letto al contrario trasforma facilmente un falso positivo in un falso negativo.

Una accuracy del 90% può nascondere zero vendite individuate

Quando una classe è rara, l’accuracy può rassicurare senza descrivere il comportamento che interessa al business. Considera 1.000 lead, di cui 100 acquistano: un modello che classifica tutti come “non acquisterà” raggiunge il 90% di accuracy, ma non segnala neppure un futuro cliente.

Un secondo modello produce 72 veri positivi, 108 falsi positivi, 28 falsi negativi e 792 veri negativi. L’accuracy sale all’86,4%, ma ora il richiamo è 72% e la precisione è 40%: trova la maggior parte dei clienti, mentre soltanto 4 segnalazioni positive su 10 si traducono in acquisti. La scelta dipende dalla capacità del team di seguire quei contatti, non dal confronto isolato fra percentuali.

Situazione osservata Possibile lettura Passo successivo
Accuracy alta, richiamo vicino a zero Il modello può ignorare la classe minoritaria. Esamina la matrice per classe e confronta il risultato con un modello di riferimento.
Molti falsi positivi Il team può sprecare tempo su contatti poco promettenti. Verifica il costo del follow-up e valuta una soglia più alta.
Molti falsi negativi Possibili clienti interessanti restano fuori dal processo commerciale. Valuta una soglia più bassa se il costo dei contatti aggiuntivi è sostenibile.
Conteggi modesti o classi molto sbilanciate Una singola percentuale può essere instabile o fuorviante. Controlla i numeri assoluti per classe e prova dati di valutazione più rappresentativi.

Per questo considero l’accuracy un indicatore iniziale, non un verdetto. Nei casi sbilanciati affiancherei almeno precisione e richiamo, poi deciderei quale errore pesa di più nel processo concreto.

Precisione e richiamo rispondono a due domande diverse

La precisione risponde a: «Tra i casi segnalati dal modello, quanti sono davvero positivi?». Il richiamo chiede invece: «Tra tutti i positivi reali, quanti ne abbiamo trovati?». Un valore alto per una metrica non garantisce un valore alto anche per l’altra.

Se un falso negativo significa perdere una vendita importante, può avere senso privilegiare il richiamo e accettare più segnalazioni da verificare. Se ogni falso positivo innesca un controllo costoso o un blocco ingiustificato, la precisione può diventare prioritaria. L’F1 combina precisione e richiamo in un solo punteggio, ma non incorpora automaticamente il costo economico specifico degli errori.

La tabella può mostrare più classi, per esempio “acquisto immediato”, “interesse futuro” e “nessun interesse”. In quel caso, le celle fuori diagonale indicano quali categorie vengono confuse fra loro: scambiare un acquisto imminente con un interesse futuro può richiedere una risposta diversa dallo scambiarlo con un contatto inattivo.

La soglia va scelta in base al costo dell’errore

Un classificatore può restituire una probabilità o un punteggio; la soglia trasforma quel valore in una decisione di classe. Alzarla tende a ridurre le segnalazioni positive, abbassandola il modello ne produce di più: per questo cambiano anche falsi positivi e falsi negativi. La soglia predefinita non è una regola di business.

  • Se un caso positivo mancato costa più di una verifica aggiuntiva, prova soglie più basse e osserva come cresce il richiamo.
  • Se i falsi allarmi saturano il team o attivano procedure onerose, prova soglie più alte e controlla precisione e falsi negativi.
  • Se entrambi gli errori hanno conseguenze rilevanti, confronta le soglie sul set di validazione e scegli usando costi operativi espliciti.

La guida di Google for Developers sulle soglie sottolinea che il valore 0,5 non è adatto automaticamente a ogni problema, soprattutto quando le classi sono sbilanciate o i due tipi di errore hanno conseguenze diverse. La matrice, dunque, va ricalcolata alla soglia che si intende davvero mettere in produzione.

La normalizzazione aiuta a leggere classi di dimensioni diverse

Con una classe molto frequente e una rara, i conteggi grezzi possono dominare la lettura visiva. La normalizzazione converte le celle in proporzioni, ma il risultato cambia secondo il riferimento scelto: righe, colonne oppure intera popolazione. Una percentuale senza denominatore dichiarato è ambigua.

In scikit-learn, il parametro normalize può normalizzare rispetto alle classi reali (true), a quelle previste (pred) o al totale (all). La prima vista aiuta a vedere quanti esempi reali di ogni classe vengono riconosciuti; la seconda chiarisce la composizione delle previsioni assegnate a ciascuna classe. Conserva anche i conteggi assoluti: una percentuale elevata basata su pochi esempi può cambiare rapidamente con nuovi dati.

Per problemi multilabel, in cui un record può avere più etichette contemporaneamente, una singola matrice multiclass non descrive necessariamente ogni etichetta nel modo atteso. La funzione multilabel_confusion_matrix di scikit-learn produce invece una matrice binaria per ciascuna classe, utile quando vuoi individuare quali etichette specifiche vengono perse o assegnate in eccesso.

Una matrice utile porta a una decisione operativa

Una tabella piena di numeri non decide da sola chi contattare, quali transazioni fermare o quali casi inviare a revisione. La decisione nasce quando colleghi ogni cella a una conseguenza: tempo del team, ricavi mancati, costi di controllo o rischio operativo.

Ritengo che la lettura più solida parta dagli errori che il processo può tollerare, poi confronti le metriche e la soglia su dati mai usati per addestrare il modello. Se il flusso cambia, cambiano anche la frequenza delle classi e il costo dei falsi allarmi: la matrice va quindi riletta, non archiviata come una valutazione definitiva.

Questo articolo ha carattere esclusivamente informativo ed educativo. Il materiale è stato elaborato con il supporto di moderni strumenti analitici e linguistici (IA). Prima di prendere una decisione, consulta un esperto.

Domande frequenti

Un falso positivo è un caso che il modello segnala come positivo ma che in realtà è negativo: per esempio, un lead che non acquista viene indicato come potenziale cliente. Un falso negativo è invece un positivo reale che il modello non rileva, come un lead che acquista ma non viene segnalato. Controlla sempre le etichette di righe e colonne, perché l’orientamento della matrice può variare tra strumenti.

Se 100 lead su 1.000 acquistano, un modello che classifica tutti come non acquirenti indovina i 900 negativi e raggiunge il 90% di accuracy, ma ha richiamo pari a zero sui clienti. Per valutare una classe rara, affianca all’accuracy precisione e richiamo e verifica i conteggi per classe.

Abbassare la soglia tende ad aumentare le segnalazioni positive e il richiamo, ma può produrre più falsi positivi. Alzarla tende a ridurre le segnalazioni e i falsi allarmi, ma può lasciare fuori più positivi reali. Confronta le soglie sul set di validazione considerando i costi operativi degli errori e la capacità del team di gestire i contatti.

La normalizzazione è utile quando le classi hanno dimensioni diverse, perché esprime le celle come proporzioni. In scikit-learn puoi normalizzare rispetto alle classi reali (true), a quelle previste (pred) o al totale (all). Specifica sempre il denominatore e conserva anche i conteggi assoluti, soprattutto quando una percentuale si basa su pochi esempi.
Valuta l'articolo

Media: 0.0 / 5 · 0 valutazioni

Tag

richiamo matrice di confusione precisione soglia decisionale classi sbilanciate

Condividi post

Commenti (0)
Aggiungi un commento