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.
| Modello | Accuratezza Addestramento | Accuratezza Test |
|---|---|---|
| Modello A | 50% | 48% |
| Modello B | 95% | 85% |
| Modello C | 99% | 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.