Condividi tramite


Impedire l'overfitting e lo sbilanciamento dei dati con ML automatizzato

L'overfitting e lo sbilanciamento dei dati sono ostacoli comuni quando si creano modelli di Machine Learning. Per impostazione predefinita, la funzionalità Machine Learning automatizzato in Azure Machine Learning fornisce grafici e metriche che facilitano l’identificazione di questi rischi. Questo articolo descrive come implementare le procedure consigliate in Machine Learning automatizzato per attenuare i problemi comuni.

Identificare l'overfitting

L'overfitting nell'apprendimento automatico si verifica quando un modello si adatta troppo bene ai dati di training. Di conseguenza, non è in grado di eseguire stime accurate sui dati di test non visualizzati. Il modello ha memorizzato modelli e disturbi specifici nei dati di training e non è sufficientemente flessibile per eseguire stime sui dati reali.

Esaminare i seguenti modelli sottoposti a training e le relative precisioni di training e di test:

Modello Accuratezza di training Accuratezza di test
Un 99,9% 95%
G 87% 87%
A 99,9% 45%
  • Modello A: il test per questo modello produce un'accuratezza leggermente inferiore rispetto al training del modello. In base a un malinteso comune, se l'accuratezza del test dei dati non visualizzati è inferiore all'accuratezza di training, si parla di overfitting. Tuttavia, l'accuratezza del test deve essere sempre inferiore all’accuratezza del training. La distinzione tra overfitting e adattamento appropriato dei dati dipende dalla misurazione della misura del minor grado di accuratezza.

  • Confronto tra i modelli A e B: il modello A è un modello migliore perché l’accuratezza del test è più elevata. Anche se l'accuratezza del test è leggermente inferiore al 95%, la differenza non è così significativa da suggerisce un overfitting. Il modello B non è consigliabile perché l’accuratezza del training e quella del test sono simili.

  • Modello C: questo modello rappresenta un caso evidente di overfitting. L'accuratezza del training è elevata e l'accuratezza del test è bassa. Questa distinzione è soggettiva, ma deriva dalla conoscenza del problema e dei dati e dalle grandezze di errore accettabili.

Impedire l'overfitting

Nei casi più evidenti, un modello con overfitting presuppone che le combinazioni di valori di funzionalità visualizzate durante il training determinino sempre lo stesso output per la destinazione. Per prevenire l'overfitting dei dati, è consigliabile seguire le procedure consigliate di Machine Learning. Sono disponibili diversi metodi che è possibile configurare nell'implementazione del modello. Per impostazione predefinita, Machine Learning automatizzato offre anche altre opzioni per prevenire l'overfitting.

La tabella seguente riepiloga le procedure consigliate comuni:

Procedura consigliata Implementazione Machine Learning automatizzato
Usare più dati di training ed eliminare la distorsione statistica X
Prevenire la perdita di destinazione X
Incorporare un minor numero di funzionalità X
Supportare la regolarizzazione e l’ottimizzazione degli iperparametri X
Applicare limitazioni alla complessità del modello X
Usare la convalida incrociata X

Applicare le procedure consigliate per prevenire l'overfitting

Le sezioni seguenti descrivono le procedure consigliate che è possibile usare nell'implementazione del modello di Machine Learning per prevenire l'overfitting.

Usare più dati

L'uso di un numero maggiore di dati è il modo migliore e più semplice per prevenire l'overfitting e consente in genere di aumentare l'accuratezza. Quando si usano più dati, diventa più difficile per il modello memorizzare modelli esatti. Il modello è costretto a trovare soluzioni più flessibili per soddisfare più condizioni. È anche importante riconoscere la distorsione statistica per garantire che i dati di training non includano modelli isolati che non esistono nei dati di stima reali. Questo scenario può essere difficile da risolvere, perché l’overfitting potrebbe riferirsi ai dati di test in tempo reale.

Prevenire la perdita di destinazione

La perdita di destinazione è un problema simile. È possibile che non si noti overfitting tra i set di training e di test, ma che il problema di perdita si verifichi in fase di previsione. La perdita di destinazione si verifica quando il modello "bara" durante la fase di training accedendo a dati a cui non dovrebbe normalmente avere accesso al momento della previsione. Un esempio potrebbe essere quello di un modello che stima il lunedì che il prezzo delle materie prime si riferisca a venerdì. Se le funzionalità includono accidentalmente i dati di giovedì, il modello ha accesso a dati non disponibili in fase di previsione perché non è in grado di visualizzare dati futuri. La perdita di destinazione è un errore che è facile lasciarsi sfuggire. È spesso visibile nei casi in cui si rilevi un'accuratezza anomala per il problema. Se si tenta di stimare il prezzo azionario ed è stato eseguito il training di un modello con un'accuratezza del 95%, è probabile che si verifichi una perdita di destinazione in alcune delle funzionalità.

Incorporare un minor numero di funzionalità

La rimozione di funzionalità può anche contribuire a risolvere i problemi di overfitting evitando che il modello disponga di troppi campi da usare per memorizzare modelli specifici, determinando in tal modo una maggiore flessibilità. Può essere difficile effettuare misurazioni quantitative. Se si riesce a rimuovere le funzionalità e mantenere la stessa accuratezza, il modello può risultare più flessibile e il rischio di overfitting è minore.

Esaminare le funzionalità di Machine Learning automatizzato per prevenire l'overfitting

Le sezioni seguenti descrivono le procedure consigliate fornite per impostazione predefinita in Machine Learning automatizzato per prevenire l'overfitting.

Supportare la regolarizzazione e l’ottimizzazione degli iperparametri

La regolarizzazione è il processo che consente di ridurre una funzione di costo per penalizzare i modelli complessi e quelli con overfitting. Esistono diversi tipi di funzioni di regolarizzazione. In generale, tutte le funzioni penalizzano le dimensioni, la varianza e la complessità del coefficiente del modello. ML automatizzato usa L1 (Lasso), L2 (Ridge) ed ElasticNet (L1 e L2 simultaneamente) in combinazioni diverse con impostazioni di iperparametri del modello differenti che controllano l'overfitting. Machine Learning automatizzato varia il grado di regolarizzazione del modello e sceglie il risultato migliore.

Applicare limitazioni alla complessità del modello

ML automatizzato implementa anche limitazioni di complessità del modello per evitare l'overfitting. Nella maggior parte dei casi, questa implementazione è specificamente pensata per gli algoritmi dell'albero delle decisioni o della foresta. La profondità massima del singolo albero è limitata e il numero totale di alberi usati nelle tecniche della foresta o ensemble è limitato.

Usare la convalida incrociata

La convalida incrociata è il processo di acquisizione di molti subset di dati di training completi e di esecuzione del training di un modello su ogni subset. Il concetto è che un modello potrebbe essere "fortunato" e ottenere una buona accuratezza per un subset. Tuttavia, se usa molti subset non riuscirà a ottenere questa accuratezza elevata ogni volta. Quando si esegue la convalida incrociata, si fornisce un set di dati di controllo della convalida, si specifica il numero di subset della convalida e Machine Learning automatizzato consente di eseguire il training del modello e di ottimizzare gli iperparametri per ridurre gli errori nel set di convalida. Un certo numero di subset della convalida incrociata può presentare overfitting, ma se si usa un numero elevato di subset si riduce la probabilità che il modello finale sia caratterizzato da overfitting. Lo svantaggio è che la convalida incrociata comporta tempi di training più lunghi e un costo maggiore, perché il training viene eseguito una volta per ogni n dei subset di convalida incrociata.

Nota

Per impostazione predefinita, la convalida incrociata non è abilitata. Questa funzionalità deve essere configurata nelle impostazioni di Machine Learning automatizzato. Tuttavia, dopo la configurazione della convalida incrociata e dopo che stato specificato un set di dati di convalida,il processo viene automatizzato.

Identificare i modelli con sbilanciamento dei dati

Lo sbilanciamento dei dati è comunemente presente nei dati per gli scenari di classificazione di apprendimento automatico e si riferiscono a dati che contengono un rapporto sproporzionato delle osservazioni in ogni classe. Questo squilibrio può comportare un effetto percepito erroneamente come positivo dell'accuratezza di un modello, perché i dati di input presentano una distorsione verso una classe, che determina che il modello sottoposto a training simuli tale distorsione.

Inoltre, i processi di ML automatizzato generano automaticamente i grafici seguenti. Questi grafici consentono di comprendere la correttezza delle classificazioni del modello e di identificare i modelli potenzialmente interessati dallo sbilanciamento dei dati.

Grafico Descrizione
Matrice di confusione Valuta le etichette classificate correttamente rispetto alle etichette effettive dei dati.
Precisione-richiamo Valuta il rapporto tra le etichette corrette rispetto al rapporto tra le istanze di etichette dei dati individuate.
Curve ROC Valuta il rapporto tra le etichette corrette rispetto al rapporto tra le etichette falso positive.

Gestire lo sbilanciamento dei dati

Nell'ambito dell'obiettivo di semplificare il flusso di lavoro di Machine Learning, Machine Learning automatizzato offre funzionalità predefinite per gestire i dati sbilanciati:

  • Machine Learning automatizzato crea una colonna ponderata come input, causando la ponderazione verso l'alto o verso il basso delle righe nei dati. Ciò può essere usato per rendere una classe più o meno "importante".

  • Gli algoritmi usati da Machine Learning automatizzato rilevano uno sbilanciamento quando il numero di esempi nella classe di minoranza è uguale o inferiore al 20% del numero di esempi nella classe di maggioranza. La classe di minoranza si riferisce a quella con il minor numero di esempi mentre la classe di maggioranza si riferisce a quella con la maggior parte degli esempi. Successivamente, Machine Learning automatizzato esegue un esperimento con dati sottocampionati per verificare se l'uso dei pesi della classe possa risolvere il problema e migliorare le prestazioni. Se l’esperimento dimostra che le prestazioni sono migliori, applica il rimedio.

  • Uso di una metrica delle prestazioni più adatta allo sbilanciamento dei dati. Ad esempio, AUC_weighted è una metrica primaria che calcola il contributo di ogni classe in base al numero relativo di esempi che rappresentano tale classe. Questa metrica è più affidabile per prevenire lo sbilanciamento.

Le tecniche seguenti sono opzioni aggiuntive che consentono di gestire lo sbilanciamento dei dati al di fuori di Machine Learning automatizzato:

  • Ripetere il campionamento per pareggiare lo sbilanciamento della classe. È possibile eseguire l'up-sample per le classi più piccole o il down-sample per quelle più grandi. Tali metodi richiedono competenze per eseguire l'elaborazione e l'analisi.

  • Esaminare le metriche delle prestazioni per lo sbilanciamento dei dati. Ad esempio, il punteggio F1 è la media armonica di precisione e richiamo. La precisione misura l'accuratezza di un classificatore, in cui una precisione più elevata indica un minor numero di falsi positivi. Il richiamo misura la completezza di un classificatore in quanto un richiamo più elevato indica un minor numero di falsi negativi.

Passaggio successivo