In statistica e in informatica, si parla di overfitting (in italiano: eccessivo adattamento) quando un modello statistico molto complesso si adatta ai dati osservati (il campione) perché ha un numero eccessivo di parametri rispetto al numero di osservazioni.

Una serie di dati all'incirca lineare (ma affetta da rumore), approssimabile sia da una funzione lineare sia da una interpolazione polinomiale. Nonostante quella polinomiale si adatti in modo perfetto ai dati, ci si aspetta che la versione lineare debba rappresentare una migliore generalizzazione: quindi, in un'estrapolazione al di fuori dei dati conosciuti la funzione lineare fornirebbe migliori predizioni.
La curva blu mostra l'andamento dell'errore nel classificare i dati di training, mentre la curva rossa mostra l'errore nel classificare i dati di test o validazione. Una situazione in cui il secondo aumenta mentre il primo diminuisce è indice della possibile presenza di un caso di overfitting.

Un modello assurdo e sbagliato può adattarsi perfettamente se è abbastanza complesso rispetto alla quantità di dati disponibili. Spesso si sostiene che l'overfitting sia una violazione del principio del Rasoio di Occam.

Apprendimento automatico e data mining

Il concetto di overfitting è molto importante anche nell'apprendimento automatico e nel data mining. Di solito un algoritmo di apprendimento viene allenato usando un certo insieme di esempi (il training set appunto), ad esempio situazioni tipo di cui è già noto il risultato che interessa prevedere (output). Si assume che l'algoritmo di apprendimento (il learner) raggiungerà uno stato in cui sarà in grado di predire gli output per tutti gli altri esempi che ancora non ha visionato, cioè si assume che il modello di apprendimento sarà in grado di generalizzare. Tuttavia, soprattutto nei casi in cui l'apprendimento è stato effettuato troppo a lungo o dove c'era uno scarso numero di esempi di allenamento, il modello potrebbe adattarsi a caratteristiche che sono specifiche solo del training set, ma che non hanno riscontro nel resto dei casi; perciò, in presenza di overfitting, le prestazioni (cioè la capacità di adattarsi/prevedere) sui dati di allenamento aumenteranno, mentre le prestazioni sui dati non visionati saranno peggiori.

Contromisure Efficaci

Sia nella statistica sia nel machine learning, per prevenire ed evitare l'overfitting è necessario mettere in atto particolari accorgimenti tecnici, come la cross-validation e l'arresto anticipato, che indicano quando un ulteriore allenamento non porterebbe a una migliore generalizzazione.

Nel treatment learning si evita l'overfitting utilizzando il valore di supporto migliore e minimale.