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