Quando si gestiscono progetti di machine learning e intelligenza artificiale, il rischio di complicazioni e malfunzionamenti maggiore è lui: l’overfitting. Si tratta di un sovradattamento che si manifesta durante il processo di apprendimento induttivo.
Tale sovradattamento avviene quando l’algoritmo si adatta eccessivamente ai dati di training, non risultando più efficace nel momento in cui viene applicato a dati generici. Questo fenomeno si riscontra sia in statistica che in informatica.
Esiste un modo per evitare l’overfitting? Quali sono le principali cause e come risolvere il problema? Scopriamo di più riguardo questa problematica strettamente connessa al machine learning.
Indice dei contenuti
Cosa si intende per overfitting
È bene chiarire, innanzitutto, cosa si intende per overfitting. Con questo termine si identifica un preciso comportamento di machine learning, del tutto indesiderato. Tale comportamento viene riscontrato nel momento in cui il modello di machine learning fornisce previsioni credibili per i dati di addestramento, ma non può garantire previsioni accurate per dati di nuova implementazione.
Ogni data scientist deve conoscere questo possibile scenario per poter proteggere i propri progetti dal rischio di overfitting. I data scientist utilizzano i modelli di machine learning per generare previsioni, addestrando il modello sulla base di un set di dati fornito. Queste informazioni vengono utilizzate per creare un modello in grado di produrre previsioni anche per i set di dati implementati successivamente.
L’overfitting impedisce al modello di fornire una previsione accurata, riducendo il buon funzionamento del sistema e diminuendo la credibilità delle previsioni generate sulla base di nuovi dati. La macchina non potrà, quindi, operare seguendo un albero decisionale logico e adeguato al contesto: l’albero decisionale risulterà, infatti, compromesso o parziale.
Perché succede l’overfitting
L’overfitting si verifica nel momento in cui il modello di machine learning non può essere generalizzato: questo modello, abitualmente in grado di adattarsi a tutti i set di dati del dominio collegato, in caso di overfitting si adatta eccessivamente al set di dati con il quale è stato addestrato.
Il rischio di overfitting è alto quando il numero degli attributi da considerare è troppo elevato. Se il numero degli attributi è elevato, aumenta parallelamente il rischio di riscontrare un attributo non rilevante che inquina i dati, mediante un pattern fasullo.
Come capire se è presente l’overfitting
Rilevare l’overfitting è indispensabile per poter utilizzare adeguatamente il modello di machine learning. Una metodologia semplice e piuttosto affidabile per rilevare il fenomeno dell’overfitting è analizzare il comportamento del modello di machine learning. Mettendo alla prova il modello e proponendogli diversi dati (differenti nella natura, nei valori e negli input) è possibile verificare la reazione del modello stesso.
In genere, i dati di addestramento (o una parte degli stessi) vengono utilizzati per analizzare il comportamento del modello e individuare i casi di overfitting. Quando vengono riscontrati alti tassi di errore, è probabile che si verificherà l’overfitting.
Un metodo efficace per individuare l’overfitting è la convalida incrociata K-fold. I data scientist che utilizzano questa metodologia suddividono i set di addestramento in K sottoinsiemi, o in un numero di set campione dalle dimensioni identiche (denominati “fold”). La verifica presuppone un processo di addestramento suddiviso in una serie di iterazioni, tra cui:
- conservare un sottoinsieme da utilizzare come dati di convalida, addestrando quindi il modello di machine learning attraverso l’applicazione di tutti i sottoinsiemi K-1;
- analizzare il comportamento del modello sul campione di convalida;
- valutare la qualità dei dati output per comprendere la qualità delle prestazioni.
Il modello deve essere testato su tutti i set campione e, infine, in base ai risultati occorre calcolare le performance del modello in riferimento alle singole iterazioni.
Esempio pratico
Per maggiore chiarezza, esaminiamo un esempio pratico di overfitting. Immaginiamo un modello di machine learning impegnato ad analizzare dati di training contenenti delle fotografie.
Il compito del modello è identificare le foto che contengono delle rose. Se molte delle fotografie raffiguranti delle rose contengono anche uno scenario comune, ad esempio un prato o un vaso, il modello potrebbe non riconoscere più la rosa ma imparare a usare il prato o il vaso per classificare i dati. In questo caso, l’albero decisionale è stato inquinato e reso inutilizzabile da un errore nella classificazione del dato.
Cause più frequenti
Generalmente, l’overfitting avviene a causa di:
- una scarsa dimensione dei dati di addestramento. Qualora il set di addestramento non contenga sufficienti campioni utili a rappresentare tutte le variabili e i possibili input, potrebbe verificarsi l’overfitting;
- una grande quantità di informazioni non rilevanti contenuta nei dati di addestramento. Trattasi dei cosiddetti “dati rumorosi”;
- un addestramento temporalmente troppo duraturo, orientato solo su un set di dati campione. Il modello si focalizza eccessivamente su quel determinato set e non riesce quindi ad adattarsi a dati differenti;
- un modello troppo complesso. In questi casi, il modello stesso interpreta i dati di addestramento individuando i “rumori” (anche qualora non ve ne fossero).
Si può evitare l’overfitting?
Per ridurre il rischio di overfitting, occorre trovare il giusto equilibrio diversificando e dimensionando il set di dati di training. In alternativa è possibile utilizzare tecniche di data science, tra cui:
- eliminazione delle caratteristiche meno influenti per la previsione finale. I parametri non rilevanti devono essere selezionati e rimossi;
- arresto anticipato della fase di addestramento, che deve avvenire prima che il modello di machine learning possa riconoscere il “rumore” dei dati di training. Bisogna prestare attenzione, però, alle tempistiche, evitando di arrestare il processo prima che il modello sia pronto a fornire risultati accurati;
- ensembling, una tecnica che prevede la combinazione di diversi algoritmi di modelli di machine learning differenti. I learner (modelli) deboli risultano imprecisi. Con l’ensemble si combinano tutti i learner per ottimizzare le performance dell’analisi;
- aumento dei dati, modificando leggermente i dati di training ogni qualvolta il modello intervenga per elaborarli. Il modello non potrà sovradattarsi ai dati di input, se modificati moderatamente mediante, ad esempio, una conversione, rotazione o capovolgimento;
- regolarizzazione. Ovvero, si raccolgono le tecniche di addestramento per ridurre il fenomeno dell’overfitting, nel tentativo di eliminare i fattori non influenti e che potrebbero comportare previsioni imprecise.
Come risolverlo
Quando si verifica l’overfitting, esiste un metodo generale per risolverlo. Eliminare qualche caratteristica dal set di dati di training risulta indispensabile. Ma questo sforzo deve essere accompagnato da una successiva elaborazione di un nuovo modello predittivo.
Overfitting in machine learning
Una delle principali cause di insuccesso per un modello di machine learning è il fenomeno dell’overfitting. Come abbiamo detto, questo fenomeno si verifica nel momento in cui il modello di machine learning viene addestrato mediante dati di training troppo accurati.
In questo caso, il modello risulta utile solo per l’analisi dei dati contenuti nel set di addestramento. Il modello di machine learning non saprà adattarsi a nuovi set di dati, non risultando più funzionale ed efficace.
Underfitting VS overfitting
Quando il modello non riesce a mettere in relazione i dati di input con quelli di output, si verifica un altro tipo di errore: l’underfitting. Questo fenomeno è frequente nei casi in cui i modelli non vengono addestrati per un periodo di tempo adeguato. Il modello non può quindi apprendere e fare esperienza di un numero sufficiente di dati.
L’algoritmo di apprendimento presenta errori di bias elevati in caso di underfitting, offrendo un risultato impreciso sia in caso di dati di training che per i set successivi di analisi.
Dall’altra parte, il modello con overfitting può garantire un risultato accurato sui dati di training, ma non sui dati successivi di set. Addestrando adeguatamente il modello è possibile ridurre la percentuale di errori di bias, ma bisogna prestare attenzione a trovare il giusto compromesso tra underfitting e overfitting.
Desideri parlare con un nostro esperto? Contattaci
Ultime News Analytics
-
-
Differenze tra overfitting e underfitting
5 Gennaio 2024 -
OLAP: Cos’è, Come funziona, Caratteristiche e Tipologie
27 Novembre 2023 -
ETL vs ELT: differenze chiave e il migliore
25 Settembre 2023 -
Data lake vs data warehouse: 10 differenze chiave
13 Agosto 2023 -
Data mart: cos’è, tipologie e struttura
2 Agosto 2023 -
ETL (Extract, Transform, Load): Cos’è e come funziona
28 Luglio 2023