Classificazione e metriche di valutazione: esercizi svolti

Indice dei contenuti

    La classificazione assegna osservazioni a categorie. Per valutare un classificatore non basta l’accuratezza: servono metriche che distinguano i tipi di errore (falsi positivi e negativi), soprattutto con classi sbilanciate. Questa scheda allena la matrice di confusione e le metriche derivate, fondamento del machine learning statistico.

    1. Regola di Bayes per la classificazione

    Esercizio. Spiegare il criterio del classificatore di Bayes.

    Il classificatore di Bayes assegna l’osservazione x alla classe con probabilità a posteriori massima:

    \hat y=\arg\max_k P(C_k\mid x)\propto P(x\mid C_k)\,P(C_k).

    Combina la verosimiglianza P(x\mid C_k) con la probabilità a priori della classe P(C_k). È il classificatore ottimo (minimo errore) quando le distribuzioni sono note; LDA e QDA ne sono casi con ipotesi gaussiane.

    2. Matrice di confusione

    Esercizio. Un classificatore binario produce: veri positivi TP=80, falsi positivi FP=20, falsi negativi FN=10, veri negativi TN=90. Costruire la matrice di confusione.

    \begin{array}{c|cc} & \text{Predetto +} & \text{Predetto -}\\\hline \text{Reale +} & TP=80 & FN=10\\ \text{Reale -} & FP=20 & TN=90 \end{array}

    La matrice di confusione incrocia classe reale e predetta. La diagonale (TP, TN) sono le predizioni corrette; fuori diagonale gli errori, di due tipi diversi.

    3. Accuratezza

    Esercizio. Calcolare l’accuratezza del classificatore del punto 2.

    L’accuratezza è la frazione di predizioni corrette:

    \text{Accuratezza}=\dfrac{TP+TN}{TP+TN+FP+FN}=\dfrac{80+90}{200}=\dfrac{170}{200}=0{,}85.

    L’85\% delle predizioni è corretto. Ma l’accuratezza inganna con classi sbilanciate: va affiancata da precisione e recall.

    4. Precisione e recall

    Esercizio. Calcolare precisione e recall del classificatore del punto 2.

    Precisione (dei predetti positivi, quanti corretti):

    P=\dfrac{TP}{TP+FP}=\dfrac{80}{80+20}=0{,}80.

    Recall (dei reali positivi, quanti trovati):

    R=\dfrac{TP}{TP+FN}=\dfrac{80}{80+10}=0{,}89.

    Precisione e recall guardano errori diversi: la precisione penalizza i falsi positivi, il recall i falsi negativi. La scelta dipende dal costo relativo dei due errori.

    5. F1-score

    Esercizio. Calcolare l’F1-score (precisione 0{,}80, recall 0{,}89).

    L’F1 è la media armonica di precisione e recall:

    F_1=2\dfrac{P\cdot R}{P+R}=2\times\dfrac{0{,}80\times0{,}89}{0{,}80+0{,}89}=2\times\dfrac{0{,}712}{1{,}69}=0{,}843.

    L’F1 bilancia i due indici in un solo numero; la media armonica penalizza gli squilibri (se uno dei due è basso, l’F1 crolla). Utile quando precisione e recall contano entrambi.

    6. Problema delle classi sbilanciate

    Esercizio. Un dataset ha il 95\% di classe negativa. Un classificatore che predice sempre “negativo” che accuratezza ha, ed è utile?

    \text{Accuratezza}=\dfrac{TN}{\text{tot}}=0{,}95=95\%.

    Accuratezza altissima, ma il classificatore è inutile: non rileva mai i positivi (recall =0). Con classi sbilanciate l’accuratezza è fuorviante: precisione, recall, F1 e curve ROC danno il quadro reale. È il motivo per cui non ci si affida mai alla sola accuratezza.

    7. Specificità e false positive rate

    Esercizio. Con TP=80, FP=20, FN=10, TN=90, calcolare specificità e false positive rate.

    La specificità misura quanti negativi reali vengono riconosciuti correttamente:

    \text{Specificità} = \dfrac{TN}{TN+FP}.

    Sostituendo:

    \text{Specificità} = \dfrac{90}{90+20} = \dfrac{90}{110} = 0{,}818.

    Il false positive rate è:

    \text{FPR} = \dfrac{FP}{FP+TN}.

    Quindi:

    \text{FPR} = \dfrac{20}{20+90} = 0{,}182.

    Le due metriche sono complementari:

    \text{FPR}=1-\text{specificità}.

    Interpretazione: il classificatore riconosce circa l’81{,}8\% dei negativi reali e sbaglia circa il 18{,}2\% dei negativi classificandoli come positivi.

    8. Balanced accuracy

    Esercizio. Calcolare la balanced accuracy del classificatore del punto 7.

    La balanced accuracy è la media tra recall dei positivi e recall dei negativi:

    \text{Balanced accuracy} = \dfrac{\text{sensibilità}+\text{specificità}}{2}.

    La sensibilità coincide con il recall:

    \text{sensibilità} = \dfrac{TP}{TP+FN} = \dfrac{80}{90} = 0{,}889.

    La specificità è:

    0{,}818.

    Quindi:

    \text{Balanced accuracy} = \dfrac{0{,}889+0{,}818}{2} = 0{,}854.

    Risultato:

    \boxed{\text{balanced accuracy}\approx 0{,}854}.

    È una metrica più robusta dell’accuratezza semplice quando le classi sono sbilanciate, perché pesa allo stesso modo la capacità di riconoscere positivi e negativi.

    9. Effetto della soglia

    Esercizio. Un modello restituisce probabilità di classe positiva. Per quattro osservazioni:

    OsservazioneProbabilità predettaClasse reale
    A0{,}90+
    B0{,}70-
    C0{,}40+
    D0{,}20-

    Calcolare la matrice di confusione con soglia 0{,}5.

    Con soglia 0{,}5, si predice positivo se:

    \hat{p}\geq 0{,}5.

    Allora:

    • A è predetto positivo ed è reale positivo: TP;
    • B è predetto positivo ma è reale negativo: FP;
    • C è predetto negativo ma è reale positivo: FN;
    • D è predetto negativo ed è reale negativo: TN.

    Quindi:

    TP=1,\qquad FP=1,\qquad FN=1,\qquad TN=1.

    La precisione è:

    P=\dfrac{1}{1+1}=0{,}5.

    Il recall è:

    R=\dfrac{1}{1+1}=0{,}5.

    Se si abbassasse la soglia a 0{,}3, anche C diventerebbe positivo: aumenterebbe il recall, ma potrebbe aumentare il numero di falsi positivi in altri dataset. La soglia è quindi una decisione operativa, non solo statistica.

    10. ROC: un punto della curva

    Esercizio. Con la matrice TP=80, FP=20, FN=10, TN=90, individuare il punto ROC.

    La curva ROC usa:

    \text{TPR}=\dfrac{TP}{TP+FN}

    sull’asse verticale e:

    \text{FPR}=\dfrac{FP}{FP+TN}

    sull’asse orizzontale.

    Calcoliamo:

    \text{TPR}=\dfrac{80}{80+10}=0{,}889,
    \text{FPR}=\dfrac{20}{20+90}=0{,}182.

    Il punto ROC corrispondente è:

    \boxed{(0{,}182,\ 0{,}889)}.

    Un buon classificatore sta verso l’angolo alto sinistro: alto TPR e basso FPR. Spostando la soglia si ottengono altri punti della curva.

    11. Macro e micro media nel multi-classe

    Esercizio. Due classi hanno F1-score:

    F_{1,A}=0{,}90, \qquad F_{1,B}=0{,}50.

    Se le classi hanno rispettivamente 900 e 100 esempi, confrontare media macro e media pesata.

    La media macro dà lo stesso peso alle classi:

    F_{1,\text{macro}} = \dfrac{0{,}90+0{,}50}{2} = 0{,}70.

    La media pesata usa il supporto delle classi:

    F_{1,\text{weighted}} = \dfrac{900\cdot0{,}90+100\cdot0{,}50}{1000}.

    Quindi:

    F_{1,\text{weighted}} = \dfrac{810+50}{1000} = 0{,}86.

    Interpretazione: la media pesata sembra molto buona perché la classe A domina il dataset. La macro media evidenzia invece che la classe B è classificata molto peggio. Nei problemi sbilanciati, riportare entrambe evita conclusioni fuorvianti.

    12. Scelta della metrica in base al costo

    Esercizio. In un sistema di allarme, un falso negativo costa 100 e un falso positivo costa 5. Un classificatore produce FN=4 e FP=30. Calcolare il costo totale degli errori.

    Il costo totale è:

    C=100\cdot FN+5\cdot FP.

    Sostituendo:

    C=100\cdot4+5\cdot30=400+150=550.

    Risultato:

    \boxed{C=550}.

    In questo scenario il falso negativo pesa molto più del falso positivo: è ragionevole scegliere una soglia che privilegi il recall, anche a costo di ridurre la precisione. Le metriche non sono neutrali: devono riflettere il costo operativo degli errori.

    Errori comuni

    • Affidarsi alla sola accuratezza. Con classi sbilanciate l’accuratezza è ingannevole: serve recall/precisione/F1.
    • Confondere precisione e recall. Precisione = TP/(TP+FP) (dei predetti +); recall = TP/(TP+FN) (dei reali +).
    • Usare la media aritmetica per F1. L’F1 è la media armonica: penalizza correttamente il caso in cui uno dei due indici è basso.
    • Ignorare il costo degli errori. Falsi positivi e negativi hanno conseguenze diverse: la metrica va scelta in base al dominio.
    • Non dichiarare la soglia. Una matrice di confusione dipende dalla soglia usata per trasformare probabilità in classi.
    • Nascondere classi minoritarie nelle medie pesate. In multi-classe, macro e weighted average raccontano aspetti diversi.

    Ultimo aggiornamento: