Blog.

Precision vs Accuracy: Precisione e accuratezza


Autore
Andrea Provino
Data
Tempo di lettura
4 minuti
Categoria
Data Science

data-science-machine-learning-precisione-vs-acuratezza-precision-vs-accuracy-italiano-guida-speigazione-deep-learning

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.

Taggeddata sciencedata scientistteoria


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum