Overfitting vs Underfitting

L’underfitting e l’overfitting sono due concetti fondamentali nell’ambito del Machine Learning e si riferiscono al comportamento del modello durante il processo di apprendimento. Entrambi riguardano la capacità del modello di generalizzare correttamente i dati, ossia di fare previsioni accurate su nuovi dati non visti.


Underfitting

L’underfitting si verifica quando un modello è troppo semplice per rappresentare i dati correttamente. In altre parole, non ha abbastanza capacità per catturare le relazioni significative tra le variabili nei dati di addestramento. Questo porta il modello a commettere errori sia nei dati di addestramento che nei dati di test, e generalmente ha una bassa accuratezza.

Cause dell’underfitting:

  • Il modello è troppo semplice (ad esempio, un modello lineare applicato a dati non lineari).
  • Non ci sono abbastanza caratteristiche (feature) rilevanti.
  • Il numero di parametri del modello è troppo piccolo.
  • Il tempo di addestramento è troppo breve.

Esempio visivo:

Immagina di voler approssimare i dati distribuiti in una curva complessa (non lineare) con una semplice retta. Il modello non riuscirà a catturare le variazioni dei dati, e la retta sarà una rappresentazione inadeguata.

Conseguenze:

  • Il modello ha un’alta varianza sugli errori, ossia commette molti errori perché non riesce a modellare correttamente i dati.
  • Scarso rendimento sia sui dati di addestramento che sui dati di test.

Soluzione:

  • Utilizzare un modello più complesso.
  • Aggiungere più caratteristiche rilevanti (feature engineering).
  • Aumentare il tempo di addestramento o migliorare l’algoritmo di apprendimento.

Overfitting

L’overfitting si verifica quando un modello è troppo complesso e si adatta troppo bene ai dati di addestramento, catturando anche il rumore e le caratteristiche specifiche dei dati che non sono generalizzabili a nuovi dati. Questo porta il modello a performare bene sui dati di addestramento, ma male sui dati di test, poiché ha “imparato” dettagli non rilevanti che non si ripresenteranno in nuovi dati.

Cause dell’overfitting:

  • Il modello ha troppi parametri rispetto ai dati (ad esempio, un modello polinomiale di grado molto alto).
  • Il modello è stato addestrato troppo a lungo sui dati di addestramento.
  • I dati di addestramento contengono troppo rumore o outlier, e il modello cerca di adattarsi a essi.
  • Troppi dettagli sono stati inclusi nelle caratteristiche del modello.

Esempio visivo:

Immagina di voler approssimare i dati distribuiti in una curva semplice (ad esempio, una linea o una curva regolare), ma utilizzi un modello che si adatta esattamente a tutti i punti (inclusi gli outlier). Otterrai una funzione molto complessa e tortuosa, che si adatta perfettamente ai dati di addestramento ma fallisce miseramente quando incontra nuovi dati.

Conseguenze:

  • Il modello ha una bassa generalizzazione e performa male su nuovi dati, pur avendo un’ottima accuratezza sui dati di addestramento.
  • Performante sui dati di addestramento, ma scadente sui dati di test.

Soluzione:

  • Ridurre la complessità del modello (ad esempio, utilizzando meno parametri o un grado polinomiale più basso).
  • Utilizzare tecniche di regolarizzazione (come L1 o L2) per penalizzare la complessità del modello.
  • Aumentare la dimensione del set di dati di addestramento.
  • Early stopping: interrompere l’addestramento prima che il modello si adatti troppo ai dati di addestramento.
  • Applicare tecniche di cross-validation per valutare meglio le prestazioni del modello su set di dati diversi.

Relazione tra Underfitting, Overfitting e Complessità del Modello

L’underfitting e l’overfitting possono essere visualizzati come due estremi opposti lungo un continuum di complessità del modello:

  • Modelli semplici (come i modelli lineari per dati complessi) rischiano di underfittare perché non riescono a catturare le caratteristiche complesse dei dati.
  • Modelli complessi (come le reti neurali molto profonde o i modelli polinomiali di alto grado) rischiano di overfittare, perché si adattano troppo bene ai dettagli specifici dei dati di addestramento, incluso il rumore.

Il grafico seguente potrebbe illustrare la relazione:

|--------------|--------------|--------------|
  Underfitting   Modello Ideale   Overfitting

Il modello ideale si trova nel mezzo, dove il modello è abbastanza complesso da catturare le relazioni nei dati, ma non troppo complesso da adattarsi al rumore.


Come individuare underfitting e overfitting

Per determinare se un modello soffre di underfitting o overfitting, si può confrontare l’accuratezza o l’errore sui dati di addestramento e sui dati di test:

  • Underfitting: scarsi risultati sia sui dati di addestramento che sui dati di test.
  • Overfitting: buoni risultati sui dati di addestramento, ma scarsi sui dati di test.

Esempio pratico:

Immaginiamo di costruire un modello di classificazione su un dataset.

ModelloAccuratezza AddestramentoAccuratezza Test
Modello A50%48%
Modello B95%85%
Modello C99%60%

Conclusione

  • Underfitting: il modello non ha appreso a sufficienza dai dati e ha prestazioni scarse sia sui dati di addestramento che sui dati di test.
  • Overfitting: il modello ha imparato troppo dai dati di addestramento, adattandosi anche al rumore, e performa bene sui dati di addestramento ma male su nuovi dati.
  • La chiave per un buon modello di Machine Learning è trovare il giusto equilibrio tra complessità e capacità di generalizzazione, evitando sia l’underfitting che l’overfitting.