EDI+VA · Esercizio di Programmazione

EP01_02 — 📊 Prestazioni Predittive — Metriche di ML in VC

1.17.2 EP01_02 📊 Prestazioni Predittive — Metriche di ML in VC

In questa attività entrerai nel mondo dell’Apprendimento Automatico (Machine Learning). Il tuo obiettivo è valutare le prestazioni di un classificatore binario calcolando le metriche a partire da una Matrice di Confusione.

1.17.2.1 🧠 Perché la metrica giusta è importante?

Immagina un rilevatore di monete da R$ 1,00. L’impatto dell’errore definisce la metrica prioritaria:

Metrica Esempio Pratico Importanza in PDI/VC
Accuratezza Conteggio dei Grani Utile quando le classi sono bilanciate (es: metà dei grani difettosi, metà sani).
Precisione Sicurezza/Biometria Fondamentale per evitare Falsi Positivi (es: non consentire a un impostore di accedere a un sistema per un errore di riconoscimento).
Sensibilità Salute (Tumori) Fondamentale per evitare Falsi Negativi (es: non lasciare che un tumore passi inosservato in una radiografia).
F1-score Banconote Ideale per un equilibrio tra non rifiutare banconote autentiche e non accettare banconote false.

1.17.2.2 📊 La Matrice di Confusione

Predetta Positiva Predetta Negativa
Reale Positiva VP (Vero Positivo) FN (Falso Negativo)
Reale Negativa FP (Falso Positivo) VN (Vero Negativo)

Compito:

  1. Leggi 4 valori interi nell’ordine: VP, FN, FP, VN.
  2. Calcola le metriche utilizzando le formule:

\[\text{Accuratezza} = \frac{VP + VN}{VP + VN + FP + FN}\]

\[\text{Precisione} = \frac{VP}{VP + FP}\]

\[\text{Sensibilità (Recall)} = \frac{VP}{VP + FN}\]

\[\text{F1-score} = \frac{2 \times \text{Precisione} \times \text{Sensibilità}}{\text{Precisione} + \text{Sensibilità}}\]

  1. Stampa i risultati formattati con due cifre decimali, uno per riga.

📌 Importante:

  • Usa la divisione in virgola mobile per evitare risultati troncati.
  • L’ordine di uscita deve essere: Accuratezza, Precisione, Sensibilità e F1-score.
  • Consulta la simulazione interattiva di questo EP alla Figura 1.12.

1.17.2.3 📌 Esempio di Esecuzione

Input Output Osservazione
40 0.75 Accuratezza
10 0.73 Precisione
15 0.80 Sensibilità
35 0.76 F1-score

(Nota: VP=40, FN=10, FP=15, VN=35. Totale dei casi = 100)

🎮 Simulatore EP01_02: Prestazioni Predittive — Metriche di ML Matrice di Confusione & Metriche

Seleziona uno scenario predefinito o regola i cursori per osservare l'impatto in tempo reale sulla matrice di confusione e sulle metriche di valutazione.

INPUT (PARAMETRI DELLA MATRICE)
40
10
15
35
MATRICE DI CONFUSIONE DISCRETA
Pred +
Pred −
Reale +
VP
40
FN
10
Reale −
FP
15
VN
35
METRICHE CALCOLATE IN TEMPO REALE
Accuratezza 0.75
(VP + VN) / Totale
Precisione 0.73
VP / (VP + FP)
Sensibilità (Recall) 0.80
VP / (VP + FN)
F1-Score (Media Armonica) 0.76
2 · (P · R) / (P + R)
Totale Campioni: 100
Figura 1.12: Simulatore EP01_02: Prestazioni Predittive — Metriche di ML
%%writefile EP01_02.cpp
// your solution
Overwriting EP01_02.cpp
TestSuite("EP01_02.cpp").run()
✔️ EP01_02.cases esiste già in casos/
📋 5 caso/i caricato/i da casos/EP01_02.cases

🔍 Test di C++: EP01_02.cpp
⚠️ EP01_02.cpp: file vuoto (meno di 3 righe). Test saltati.