Cos'è l'underfitting?
Scopri come evitare l'underfitting, in modo da poter generalizzare accuratamente i dati all'esterno del tuo modello
sfondo nero e blu
Cos'è l'underfitting?

L'underfitting è uno scenario nella data science in cui un modello di dati non è in grado di cogliere la relazione tra le variabili di input e di output in modo accurato, generando un elevato tasso di errore sia sul set di addestramento che sui dati non visti. Si verifica quando un modello è troppo semplice, che può essere il risultato di un modello che ha bisogno di più tempo di addestramento, più caratteristiche di input e meno regolarizzazione. Come succede per l'overfitting, un modello soggetto ad underfitting non può stabilire la tendenza dominante all'interno dei dati, da cui ne conseguono errori di addestramento e scarse prestazioni del modello. Se non è in grado di eseguire bene la generalizzazione sui nuovi dati, un modello non può essere sfruttato per le attività di classificazione o previsione. La generalizzazione di un modello sui nuovi dati è in definitiva ciò che ci consente di utilizzare gli algoritmi di machine learning ogni giorno per fare delle previsioni e classificare i dati.

Un'elevata distorsione e una bassa varianza sono buoni indicatori di underfitting. Poiché questo comportamento può essere osservato mentre si utilizza il dataset di addestramento, i modelli soggetti ad underfitting sono di norma più facili da identificare di quelli soggetti a overfitting.

Prodotti in evidenza

Watson Studio

IBM Cloud Pak for Data

Confronto tra underfitting e overfitting

In parole semplici, l'overfitting è il contrario dell'underfitting, e si verifica quando il modello è stato addestrato in misura eccessiva o quando contiene troppa complessità, da cui ne conseguono elevati tassi di errore sui dati di test. Per un modello è più comune la condizione di overfitting che quella di underfitting, e quest'ultimo si verifica di norma quando si tenta di evitare l'overfitting mediante un processo denominato "arresto anticipato".

Se un addestramento insufficiente o una carenza di complessità causa una condizione di underfitting, una strategia di prevenzione logica consisterebbe nell'aumentare la durata dell'addestramento o nell'aggiungere più input pertinenti. Tuttavia, se addestri troppo il modello o se vi aggiungi troppe caratteristiche, potresti causare un overfitting del tuo modello, da cui deriverebbe una bassa distorsione ma un'elevata varianza (parliamo cioè del compromesso distorsione-varianza). In questo scenario, il modello statistico si adatta troppo strettamente ai suoi dati di addestramento, rendendolo incapace di eseguire bene la generalizzazione sui nuovi punti di dati. È importante notare che alcuni tipi di modelli possono essere più inclini all'overfitting rispetto ad altri, come gli alberi decisionali o il KNN.  

L'overfitting può essere più difficile da identificare dell'underfitting perché, a differenza di quest'ultimo, le prestazioni dei dati di addestramento in un modello soggetto a overfitting sono altamente accurate. Per valutare l'accuratezza di un algoritmo, si utilizza di norma una tecnica denominata convalida incrociata k-fold.

Nella convalida incrociata k-fold, i dati vengono suddivisi in k sottoinsiemi di pari dimensioni, detti anche "fold". Uno dei k-fold fungerà da set di test, noto anche come set di holdout o set di validazione, e i restanti fold addestreranno il modello. Questo processo si ripete finché ciascuno dei fold non avrà funto da fold di holdout. Dopo ogni valutazione, ne viene conservato un punteggio e, una volta completate tutte le iterazioni, viene calcolata una media di tali punteggi per valutare le prestazioni del modello complessivo.

Lo scenario ideale, quando si esegue l'adattamento di un modello, consiste nel trovare il punto di equilibrio tra overfitting e underfitting. Identificare il punto ottimale tra i due consente ai modelli di machine learning di fare previsioni in modo accurato.

Come evitare l'underfitting

Poiché possiamo rilevare l'underfitting in base al set di addestramento, possiamo aiutare meglio a stabilire la relazione dominante tra le variabili di input e output dal principio. Mantenendo un'adeguata complessità del modello, possiamo evitare l'underfitting e fare previsioni più accurate. Qui di seguito sono descritte alcune tecniche che possono essere utilizzate per ridurre l'underfitting:

Diminuire la regolarizzazione

La regolarizzazione viene di norma utilizzata per ridurre la varianza con un modello applicando una penalità ai parametri di input con i coefficienti maggiori. Esistono diversi metodi, come la regolarizzazione L1, la regolarizzazione LASSO, il dropout ecc, che aiutano a ridurre il rumore e i valori anomali (outlier) all'interno di un modello. Tuttavia, se le caratteristiche dei dati diventano troppo uniformi, il modello non è in grado di identificare la tendenza dominante, portando a una condizione di underfitting. Diminuendo la quantità di regolarizzazione, si introducono nel modello maggiore complessità e variazione, consentendone un corretto addestramento.

Aumentare la durata dell'addestramento

Come accennato in precedenza, arrestare l'addestramento troppo presto può anche causare una condizione di underfitting del modello. Pertanto, tale condizione può essere evitata estendendo la durata dell'addestramento. È tuttavia importante essere coscienti di un eccessivo addestramento e della condizione di overfitting che ne deriverebbe. Trovare il punto di equilibrio tra i due scenari sarà fondamentale.

Selezione delle caratteristiche

Con qualsiasi modello, vengono utilizzate delle caratteristiche specifiche per determinare un dato risultato. Se non sono presenti abbastanza caratteristiche predittive, è necessario introdurre ulteriori caratteristiche oppure caratteristiche di maggiore importanza. Ad esempio, in una rete neurale, potresti aggiungere più neuroni nascosti oppure, in una foresta casuale, potresti aggiungere più alberi. Questo processo inserirà nel modello una maggiore complessità, producendo migliori risultati di addestramento.

Soluzioni correlate
IBM Watson® Studio

Sviluppa, esegui e gestisci i modelli AI. Prepara i dati e crea modelli su qualsiasi cloud utilizzando la modellazione visiva o il codice open source. Prevedi e ottimizza i risultati.

Esplora IBM® Watson Studio
IBM Cloud Pak® for Data

IBM Cloud Pak for Data è una piattaforma di dati aperta ed estensibile che fornisce una struttura per rendere tutti i dati disponibili per AI e analytics, su qualsiasi cloud.

Esplora Cloud Pak for Data
Risorse IBM è stata nominata leader in The Forrester Wave™: Multimodal Predictive Analytics and Machine Learning, terzo trimestre 2020

Scopri perché Watson Studio è "il fiore all'occhiello di Cloud Pak for Data".

Passa alla fase successiva

IBM Watson Studio è una piattaforma di dati aperta che consente ai data scientist di creare, eseguire, testare e ottimizzare i modelli di AI su vasta scala su qualsiasi cloud. IBM Watson Studio ti consente di rendere operativa l'AI ovunque come parte di IBM® Cloud Pak for Data. Unisci i team, semplifica la gestione del ciclo di vita dell'AI e accelera il time-to-value con dei framework open source come PyTorch, TensorFlow e scikit-learn e linguaggi ampiamente utilizzati come Python, R e Scala.

Prova IBM® Watson Studio oggi stesso