Definizione e struttura
La matrice di confusione (confusion matrix) e uno strumento tabellare che riassume le prestazioni di un modello di classificazione. Confronta le predizioni del modello con le etichette reali (ground truth), rendendo immediatamente visibili gli errori commessi.
Nel caso binario (due classi: Positivo e Negativo), la matrice ha dimensione 2x2:
| Predetto Positivo | Predetto Negativo | |
|---|---|---|
| Reale Positivo | TP (True Positive) | FN (False Negative) |
| Reale Negativo | FP (False Positive) | TN (True Negative) |
Le righe rappresentano la classe reale, le colonne la classe predetta dal modello. Questa convenzione e la piu diffusa in letteratura (Scikit-learn, TensorFlow).
TP, FP, TN, FN spiegati
Per comprendere le quattro celle, immaginiamo un classificatore che rileva email di spam:
- True Positive (TP): il modello dice "spam" e l'email e davvero spam. Predizione corretta.
- True Negative (TN): il modello dice "non spam" e l'email non e spam. Predizione corretta.
- False Positive (FP): il modello dice "spam" ma l'email e legittima. Errore di tipo I (falso allarme).
- False Negative (FN): il modello dice "non spam" ma l'email e spam. Errore di tipo II (mancata rilevazione).
Ricorda: la prima parola (True/False) indica se la predizione e corretta; la seconda (Positive/Negative) indica cosa ha predetto il modello.
Accuracy, Precision, Recall
Dalla matrice di confusione si derivano le metriche fondamentali:
Formule principali
Accuracy = (TP + TN) / (TP + TN + FP + FN)
Precision = TP / (TP + FP)
Recall (Sensitivity) = TP / (TP + FN)
Specificity = TN / (TN + FP)
Accuracy misura la percentuale complessiva di predizioni corrette. E utile quando le classi sono bilanciate, ma puo essere fuorviante con dataset sbilanciati. Se il 95% dei campioni e negativo, un modello che predice sempre "negativo" raggiunge il 95% di accuracy senza aver appreso nulla.
Precision risponde alla domanda: "Tra tutti i campioni che il modello ha etichettato come positivi, quanti lo sono davvero?". E cruciale quando i falsi positivi hanno un costo elevato (es. diagnostica medica: non vuoi allarmare pazienti sani).
Recall risponde a: "Tra tutti i campioni realmente positivi, quanti ne ha individuati il modello?". E critica quando i falsi negativi sono pericolosi (es. rilevamento frodi: non vuoi lasciare passare transazioni fraudolente).
F1-Score e media armonica
Precision e Recall sono spesso in tensione: aumentare l'una tende a ridurre l'altra. L'F1-Score e la media armonica delle due, offrendo un singolo valore di compromesso:
F1-Score = 2 * (Precision * Recall) / (Precision + Recall)
La media armonica penalizza i valori estremi: se Precision = 1.0 ma Recall = 0.01, l'F1 sara molto basso (~0.02), a differenza della media aritmetica (0.505) che nasconderebbe il problema.
Varianti dell'F-score includono F-beta, dove beta controlla il peso relativo di Recall rispetto a Precision: F2 da piu peso alla Recall, F0.5 alla Precision.
Esempio pratico completo
Supponiamo un modello di diagnosi tumorale applicato a 200 pazienti:
| Predetto Tumore | Predetto Sano | |
|---|---|---|
| Reale Tumore | TP = 45 | FN = 5 |
| Reale Sano | FP = 10 | TN = 140 |
Calcoliamo:
- Accuracy = (45 + 140) / 200 = 92.5%
- Precision = 45 / (45 + 10) = 81.8%
- Recall = 45 / (45 + 5) = 90.0%
- F1-Score = 2 * (0.818 * 0.900) / (0.818 + 0.900) = 85.7%
In questo contesto medico, la Recall del 90% significa che 5 pazienti malati su 50 non vengono rilevati. Potrebbe essere necessario abbassare la soglia di classificazione per aumentare la Recall, accettando piu falsi positivi. E un trade-off tipico nella pratica clinica, dove si preferisce investigare ulteriormente un paziente sano (FP) piuttosto che non diagnosticare un tumore (FN).
Matrice multiclasse
Quando le classi sono piu di due (es. classificazione di immagini in "gatto", "cane", "uccello"), la matrice diventa NxN. Ogni cella (i, j) indica quanti campioni della classe reale i sono stati classificati come classe j.
| Pred. Gatto | Pred. Cane | Pred. Uccello | |
|---|---|---|---|
| Gatto | 40 | 5 | 5 |
| Cane | 3 | 42 | 5 |
| Uccello | 2 | 3 | 45 |
La diagonale principale mostra le predizioni corrette. Per calcolare Precision e Recall per ciascuna classe, si considera ogni classe come "positiva" in un approccio one-vs-all. Per aggregare le metriche si usano:
- Macro-average: media semplice delle metriche di ciascuna classe (tratta tutte le classi allo stesso modo).
- Weighted-average: media pesata per il numero di campioni per classe.
- Micro-average: calcola TP, FP, FN globali e poi le metriche (coincide con l'accuracy nel multiclasse).
Quando usare quale metrica
La scelta della metrica dipende dal contesto applicativo e dal costo relativo degli errori:
| Scenario | Metrica prioritaria | Motivazione |
|---|---|---|
| Diagnosi medica | Recall | Un FN (malattia non rilevata) e molto piu grave di un FP |
| Filtro spam email | Precision | Un FP (email legittima in spam) e fastidioso per l'utente |
| Frode finanziaria | Recall | Meglio investigare un falso allarme che perdere una frode |
| Classificazione bilanciata | F1-Score / Accuracy | Un buon compromesso quando le classi sono equilibrate |
| Motore di ricerca | Precision@K | Tra i primi K risultati, quanti sono rilevanti? |
Non esiste una metrica universalmente migliore. La scelta dipende sempre dal dominio e dal costo relativo dei diversi tipi di errore. Comprendere la matrice di confusione e il primo passo per prendere decisioni informate.
Per approfondire la valutazione dei modelli, consulta l'articolo sugli Algoritmi di Classificazione e quello su Overfitting e Underfitting, dove si discute come il bilanciamento tra complessita del modello e generalizzazione influenza direttamente queste metriche.