Blog.

Overfitting: spiegazione in italiano | Towards Machine Learning


Autore
Andrea Provino
Data
Tempo di lettura
3 minuti
Categoria
machine-learning

noise-accuracy-tradeoff-differential-privacy-randomized-response-plausible-deniability

Il termine overfitting si usa per indicare, in modo generale, che un modello statistico di una certa realtà risulta eccessivamente performante nel descrivere i dati di allenamento o training, e pecca però in situazioni nuove; tipiamente quando usato per predirre i dati partendo dal dataset di testing.

Long story short…

Andrea Provino – Uomo saggio del 21esimo secolo

Ad esempio, se in fase di training un modello di machine learning predice al 98% il contenuto di un’immagine, e in testing lo stesso modello ha un’accuratezza del 60%, o comunque di molto inferiore, possiamo parlare di overfitting.

L’overfitting, una metafora per fare tuo il concetto

Tradotto per i profani e riportando a galla i bei momenti liceali, l’interrogazione è una buona metafora.

Fin quando la professoressa chiede domande riguardo l’argomento di studio tutto fila liscio, e possiamo vantare un grado di accuratezza nel rispondere del 98%.

Ecco il bello.

Nel momento in cui la domanda a noi rivolta cade su qualcosa di nuovo, che non abbiamo direttamente studiato, e per rispondere è necessaria un’elaborazione delle nozioni apprese si aprono due alternative:

a) rispondiamo correttamente; significa che abbiamo fatto nostre le nozioni studiate, le abbiamo comprese e imparate;

b) rispondiamo erroneamente; il che implica aver studiato a memoria gli argomenti dell’interrogazione o peggio, non aver compreso nulla.

Nella seconda opzione, siamo stati troppo bravi ad imparare ciò che avevamo sotto gli occhi, entrando nel dettaglio abbiamo perso di vista il quadro generale: possiamo rispondere in modo perfetto alle domande di quell’argomento ma falliamo quando veniamo interrogati su altri argomenti.

Il nostro modello, generato dallo studio, si dice che “è troppo aderente”, in inglese “overfitting“.

Overfitting Machine Learning: perchè?

In Machine Learning l’overfitting è causato da una serie di fattori:

  • il modello che si desidera creare contiene troppi parametri da individuare, ergo è troppo complesso
  • i dati di training sono pochi, o di cattiva qualità.

Riassumendo, quando il rapporto tra la complessità del modello e la dimensione del dataset di training è alto, possiamo incorrere nel fenomeno di overfitting.

Soluzioni al problema

Dunque l’overfitting si verifica quando il modello è troppo complesso relativamente all’ammontare di rumore presente nei dati di training.

Per ovviare a questo problema:

  • semplificazione del modello: optare per uno con meno parametri, ridurre il numero di attributi del dataset, o limitare l’apprendimento del modello (regularization)
  • nuova raccolta dati: aumentare la dimensione del dataset di training
  • riduzione rumore: correggere errori di struttura e gestire gli outliers

Per un approfondimento che spero di riprendere il prima possibile, ti rimando a questa risposta (ovviamente in inglese) su Quora che include anche il concetto opposto: l’underfitting

Mi piace molto la storia usata per spiegare il concetto, la farò mia!

Leggi questa fonte, per ulteriori chiarimenti e se vuoi davvero entrare nel merito dell’argomento non puoi non leggere questo.

E dato che oggi sono incline a fornirti parecchi link esterni, e non solo perché SEO mi dava semaforo rosso ovunque e mi sono ricordato di fare questa buona cosa che troppo spesso dimentico, ecco questo. Boom.!

Un caldo abbraccio, alla prossima!

Andrea

TaggedAIdata science


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