Precision vs Accuracy è uno dei trade-off più comuni nel Machine Learning: un modello, o una rete neurale, deve essere preciso e avere una grande accuratezza. In cosa consiste questo bilanciamento? Scopriamolo.
La prima volta sul blog?
Questo è il nostro viaggio, accomodati: sentiti come a casa tua.
Precision Vs Accuracy: la demistificazione
L’italiano è una lingua meravigliosa, con la quale possiamo manifestare quella prerogativa fondamentale del pensiero occidentale che è l’astrazione.
Questa lingua romanza sa essere elegante e raffinata, ma anche molto complessa: ogni parola ha un preciso significato, ed esistono molteplici sinonimi dalla sottile differenza.
Così capita che quei sinonimi diventino uguaglianze e si finisca per usare due parole e indicare la stessa cosa.
Io e te siamo però migliori di quella massa di caproni che pullula nei commenti dei Social Media e sappiamo riconoscere l’importanza di usare le giuste parole nel corretto contesto.
Per chiudere questa breve digressione, e collegarci al tema originario, possiamo quindi dire che accuratezza e precisione, benché sinonimi, indichino due concetti che abbiamo il dovere si separare.
Iniziamo dal primo.
Accuratezza
Al di là della definizione, che non ne spiega davvero il significato, possiamo dire che l’accuratezza involve la capacità di avvicinarsi a un risultato specifico.
Immagina di essere un arciere.
Il tuo obiettivo e quello di scagliare la freccia al centro del bersaglio.
Hai 10 frecce.
Seguimi attentamente, non giungere a conclusione rapide.
Puoi dire di avere una grande accuratezza se riesci a tirarle più o meno vicino al cerchio giallo. Sono sparse attorno al centro? Alta accuratezza
Sono cadute fuori o sono concentrate in un angolo del bersaglio? Scarsa accuratezza.
Giusto per ripetere…
Tanto più ti avvicini all’obiettivo tanto maggiore sarà la tua accuratezza.
Precisione
La precisione esprime la consistenza del risultato: quante volte sei in grado di ottenere lo stesso esisto impiegando il medesimo metodo?
In altre parole, impiegando la metafora dell’arciere, la precisione è visibile nella dispersione delle frecce sul bersaglio.
Quando queste sono raggruppate in una piccola area la tua precisione è alta. Al contrario è molto bassa se le frecce sono sparse.
Cogli la differenza?
La precisione non considera il raggiungimento dell’obiettivo.
Puoi scagliare tutte le frecce in un cerchio di qualche centimetro a pochi passi da te, mancare il bersaglio di diversi metri, eppure vantarti di avere una grande precisione.
La tua accuratezza sarà invece dannatamente bassa.
Voglio dirti che puoi essere tanto preciso nell’ottenere lo stesso esito sbagliato.
Devi però sapere che puoi anche ottenere un esito corretto, magari meno volte, lanciando parecchie frecce sparse attorno al centro del bersaglio: alta accuratezza e bassa precisione.
Precision vs Accuracy: Machine Learning
Quello che potresti adesso chiederti è cosa significhi tutto questo nel machine learning e nella data science.
Hai tutti gli strumenti per poterlo capire.
Sono due metriche, che possiamo impiegare per descrivere le perfomance del nostro modello.
Immaginiamo di avere un classificatore binario che determina se un sospetto è vittima o carnefice e di dover interpretare la matrice di confusione (qui un link alla spiegazione della confusion matrix).
In tal caso per comunicare l’efficacia del nostro modello, e ancor prima per capire quali siano i requisiti del progetto, possiamo ora usare in modo corretto i termini precisione e accuratezza.
Il nostro obiettivo è quello d’individuare correttamente le vittime, così da salvarle prima che sia compiuto l’indicibile.
Immagino di aver ottimizzato il modello per la massima accuratezza.
Ogni assassino è effettivamente indicato come carnefice, e viene arrestato.
A quale prezzo siamo però in grado di raggiungere questo risultato?
Otteniamo questo risultato indicando al contempo un elevato numero di cittadini onesti come spregiudicati.
In pratica lanciamo molte frecce all’incirca nel centro dell’obiettivo e centriamo il cerchio giallo.
Non forzare troppo la metafora però, altrimenti confondiamo le acque anziché chiarirle.
Quante però delle persone che abbiamo contrassegnato come assassini sono effettivamente tali?
Questa misurazione ci fornisce un’indicazione della precisione del modello.
In altri termini, quanto è consistente il nostro modello a riconoscere i carnefici?
Questi ragionamenti introducono una più vasta riflessione sul significato e l’importanza dei concetti di precision, recall e F1 Score che trovi qui.
Per sedimentare ulteriormente il concetto, questa illustrazione di TED è fenomenale.
Precision vs Accuracy
Prima di salutarti, qualche ultima preziosa riflessione.
L’Accuracy, o accuratezza, è una metrica molto usata, immediatamente comprensibile e spesso valida.
Quando tuttavia abbiamo un dataset sblianciato (imbalanced dataset), in cui cioè le nostre label non presentano la medesima frequenza, la questione si complica.
Ad esempio, avendo pochi casi negativi basterebbe prevedere costantemente un outcome positivo per avere comunque un alta accuratezza, benché il nostro modello sia privo di reale utilità.
Ti ricordo che per un classificatore binario, la codifica dei due valori della label in positivo e negativo è puramente arbitraria, e giustificata dal problema specifico.
Per il momento è tutto.
Un caldo abbraccio, Andrea.
No Comment