Overfitting: quando la misura di accuratezza va male
Come già detto, l’obiettivo principale delle previsioni è costruire modelli che siano accurati sui dati che non possiedi. Eppure, a prima vista, sembra un’altra idea da matematico folle: sia strana che completamente poco pratica.
Ma, secondo la nostra esperienza, misurare la vera accuratezza delle previsioni è un vero problema aziendale. Fallire in questo costa soldi. In realtà, più l’azienda è grande, maggiore è il costo.
Ancora confuso sul vero errore di previsione?
Dai un’occhiata al nostro ultimo slidecast di 9 minuti (gli script sono riportati qui sotto).
Script dello slidecast:
Overfitting: le tue previsioni potrebbero non essere buone quanto indicato dalla misura
L’accuratezza delle previsioni è fondamentale per molte industrie come il retail, la produzione o i servizi. Se sovrastimi la domanda dei tuoi clienti, i tuoi costi si gonfiano a causa di personale e inventario in eccesso. Ma se sottostimi la domanda, i tuoi clienti si arrabbiano perché non riescono ad acquistare il tuo prodotto o perché devono aspettare troppo a lungo per essere serviti.
In questo slidecast, introdurrò un problema poco noto nelle previsioni chiamato overfitting.
Questo problema è poco conosciuto per due ragioni. Innanzitutto, è un problema sottile - non ovvio e controintuitivo in molti aspetti. In secondo luogo, è un problema che ha messo in difficoltà i matematici sin dal XIX secolo. È solo alla fine degli anni Novanta, poco più di 10 anni fa, che la comunità scientifica ha iniziato a comprendere davvero questo problema sia a livello teorico che pratico.
Prima di procedere oltre, permettetemi di arrivare subito alla conclusione. L’overfitting ha un impatto molto forte sulle vostre previsioni. L’overfitting può farvi credere di avere un errore di previsione del 10% mentre il vostro vero errore di previsione è del 20%, e ciò non sarebbe uno scenario migliore.
L’overfitting è un problema aziendale molto reale. L’overfitting costa soldi.
Inoltre, non esiste una soluzione alternativa all’overfitting. Le teorie statistiche moderne sono costruite su questo stesso concetto. L’overfitting gioca un ruolo centrale in queste teorie, indipendentemente dall’approccio utilizzato in statistica, l’overfitting è qui per restare.
La questione fondamentale è definire cosa significhi veramente l’accuratezza delle previsioni.
Intuitivamente, il modo più semplice per misurare l’accuratezza delle previsioni consiste nel fare una previsione e aspettare che l’evento previsto si verifichi, in modo da poter confrontare la previsione con il risultato corrispondente.
Tuttavia, questo metodo ha un grande svantaggio: ti informa solo sull’accuratezza delle previsioni passate. Dal punto di vista aziendale, poco importa sapere se le previsioni passate erano buone o cattive, dato che non puoi cambiarle comunque. Quello che conta davvero è assicurarsi che le previsioni future siano veramente accurate.
Poi, c’è un altro problema: a meno che il metodo utilizzato per produrre le previsioni non sia rigorosamente identico da una previsione all’altra, non c’è motivo di credere che l’accuratezza passata possa essere utilizzata come un affidabile indicatore per l’accuratezza futura.
Dal XVIII secolo, i matematici hanno introdotto la nozione di modello statistico. L’aspetto primario dei modelli statistici non è, contrariamente a quanto si crede, fornire previsioni buone o cattive, ma fornire previsioni ripetibili.
Con un modello statistico, ottieni un processo che automatizza la produzione di previsioni. Non garantisce che le previsioni saranno buone, ma almeno, se le previsioni sono scarse, puoi analizzare ulteriormente il modello.
Consideriamo la seguente serie temporale. Illustreremo il problema dell’overfitting considerando modelli statistici successivi.
Iniziamo con un semplice modello lineare. Come puoi vedere, la linea non si adatta davvero bene ai punti della serie temporale. Di conseguenza, abbiamo un errore elevato, superiore al 50%. Questo modello non si adatta veramente ai dati.
Poi, possiamo aumentare la complessità del modello. Ora abbiamo un modello che segue approssimativamente quella che sembra essere la media locale della serie temporale. Questo nuovo modello appare molto meglio del precedente e, infatti, l’errore è stato ridotto di un fattore 5, arrivando ora al 10%.
Abbiamo un buon modello qui, ma possiamo ancora ridurre ulteriormente l’errore? Beh, la risposta è semplice: sì, possiamo produrre un modello che raggiunge un errore inferiore all'1%.
Come puoi vedere, è piuttosto semplice; dobbiamo solo progettare un modello che attraversi quasi tutti i punti della serie temporale.
Ma possiamo veramente fidarci di questo modello per essere accurato all'1% nelle previsioni future? Ovviamente, non possiamo! Questo modello sta solo micro-ottimizzando piccole fluttuazioni del passato che non sono altro che variazioni casuali. Intuitivamente, non possiamo prevedere il vero caso; possiamo solo prevedere schemi come il trend, la stagionalità, ecc.
Ora, se confrontiamo gli ultimi due modelli, abbiamo un problema evidente: secondo la nostra misura dell’errore, il modello a destra - quello con l’errore dell'1% - è dieci volte migliore rispetto al modello a sinistra.
Sebbene sia ovvio che il modello migliore è quello a sinistra, in quanto esso attenua le fluttuazioni casuali della serie temporale.
Pertanto, c’è qualcosa che non va nel modo in cui misuriamo l’errore. Questo errore, come illustrato nei grafici precedenti, è noto come errore empirico. È l’errore che si ottiene misurando i dati storici.
Tuttavia, ciò che ci interessa davvero è conosciuto come il vero errore. Il vero errore è definito come l’errore del tuo modello di previsione sui dati che non possiedi, cioè sui dati futuri.
Anche se questa definizione sembra un completo paradosso: come puoi misurare qualcosa se, precisamente, non hai i dati!
Dal XIX secolo, gli statistici hanno affrontato questo problema attraverso un approccio noto come compromesso bias-varianza.
Se osserviamo i tre modelli che abbiamo, possiamo dire che il modello lineare ha un alto bias: indipendentemente dal modello lineare che scegliamo, non riuscirà mai ad adattarsi realmente ai dati, a meno che, ovviamente, i dati stessi siano distribuiti linearmente; ma nella maggior parte delle situazioni, il modello lineare approssimerà semplicemente la distribuzione dei dati.
Poi, il modello lineare ha una bassa varianza: intuitivamente, aggiungere o rimuovere un punto nella serie temporale non influirà molto sul modello risultante. Questo modello è piuttosto stabile.
All’altro estremità, il modello a destra ha un bias molto basso: adatta, anzi sovradatta, la maggior parte dei punti della serie temporale. Tuttavia, la varianza è molto alta: aggiungere o rimuovere un singolo punto probabilmente causerà cambiamenti significativi in questo modello. Non c’è affatto stabilità.
Al centro, abbiamo un modello che equilibra sia il bias che la varianza; ed è esattamente questo l’approccio giusto.
Tuttavia, il problema principale dell’approccio bias versus varianza è che non abbiamo ancora alcuna idea di cosa stia realmente accadendo con il vero errore, cioè l’errore sui dati che non possediamo.
Questo compromesso è spesso più un’euristica che un vero criterio statistico.
Dalla fine degli anni Novanta, il campo dell’apprendimento statistico, una teoria più ampia che comprende la previsione statistica, ha compiuto un significativo balzo in avanti sia a livello teorico che pratico.
Questa teoria è complessa, ma una semplice equazione ci offre importanti intuizioni sui risultati. Essa ci dice che il vero errore è limitato superiormente dalla somma dell’errore empirico e di un altro valore chiamato rischio strutturale.
Come abbiamo visto in precedenza, l’errore empirico è semplicemente l’errore misurato sui dati storici.
Il rischio strutturale è un criterio teorico che può essere calcolato esplicitamente per certe classi di modelli e stimato per la maggior parte delle altre classi.
Tornando al nostro esempio iniziale, possiamo vedere che il rischio strutturale aumenta con la complessità del modello.
Ora, se quantifichiamo tali rischi strutturali, otteniamo la seguente visione.
Non conosciamo ancora il vero errore - quel valore non può essere misurato direttamente comunque - ma vediamo che il modello centrale ha il limite superiore più basso sul vero errore.
La teoria dell’apprendimento statistico non ci fornisce il valore del vero errore, ma ci offre invece un limite superiore; e l’obiettivo è scegliere il modello che ottiene il limite superiore più basso.
Questo limite superiore funge da valore massimo per il vero errore.
Rispetto al compromesso bias-varianza, vediamo che la teoria dell’apprendimento statistico ci fornisce una stima quantitativa del vero errore.
Il rischio strutturale è difficile da stimare in pratica. Tuttavia, al momento, è ancora la soluzione migliore conosciuta per evitare l’overfitting.
Abbiamo visto in precedenza che un modo ovvio per incorrere in problemi di overfitting era aumentare la complessità del modello.
Ma esiste anche un altro modo, più sottile, di incorrere in problemi di overfitting: questo può accadere aumentando la complessità dei dati.
Aggiungere punti extra ai dati tipicamente riduce i problemi di overfitting, ma se inizi ad aggiungere dimensioni extra ai dati, è probabile che tu finisca per avere problemi di overfitting anche se i modelli rimangono invariati.
Nella nostra esperienza in Lokad, questa situazione è frequentemente riscontrata in organizzazioni che perfezionano, anno dopo anno, i propri modelli di previsione con input di dati in continua crescita, senza prendersi esplicitamente cura del rischio strutturale che si nasconde nei loro modelli.
In alte dimensioni, anche i modelli lineari sono soggetti a problemi di overfitting.
Questo conclude questa breve presentazione sull’overfitting. Se dovete ricordare una cosa, ricordate che senza tenere conto del rischio strutturale, la vostra misura dell’errore di previsione è destinata a essere altamente ingannevole; e più grande è la vostra azienda, più soldi vi costerà.
Grazie mille per l’interesse. Saremo lieti di rispondere alle vostre domande nei nostri forum.
Commenti dei lettori (9)
Interessante presentazione
Mark (3 anni fa)
Wow, che bel video, grazie per avermi aiutato a capire l’overfitting.
Melford McRae (4 anni fa)
A proposito, ho provato a visualizzare la presentazione su diversi browser e non sono riuscito a vederla. Sembra non caricarsi mai. Qualcuno di Lokad può verificare e vedere qual è il problema?
Shaun Snapp (4 anni fa)
Ho appena postato un video rinnovato che funziona.
Joannes Vermorel (4 anni fa)
Sembra che SlideShare non abbia mantenuto il loro materiale nel corso degli anni :-( Qui ci sono il file audio https://media.lokad.com/videos/2009-04-21-overfitting/overfitting.mp3 e il file PowerPoint https://media.lokad.com/videos/2009-04-21-overfitting/overfitting.pptx. Rimergerò i due in un video su YouTube.
Joannes Vermorel (4 anni fa)
Questo è un problema piuttosto complicato. Non c’è altro modo di valutare un modello di previsione se non controllandone le prestazioni storiche, ma esiste la tendenza a sovradattare per ottenere “la migliore accuratezza”. Tutto ciò sarebbe un problema ancora più grande se una percentuale maggiore di aziende usasse effettivamente la loro procedura di best fit nei sistemi di previsione acquistati o perfezionasse veramente i modelli. Mi interesserebbe una discussione su come prevenire l’overfitting quando si utilizza una procedura di best fit.
Shaun Snapp (4 anni fa)
Ho pubblicato una risposta di approfondimento su https://blog.lokad.com/journal/2014/5/20/how-to-mitigate-overfitting-when-forecasting-demand. Spero sia d’aiuto!
Joannes Vermorel (4 anni fa)
Grazie per la presentazione. Mi ha aiutato a capire l’overfitting, senza entrare nei dettagli matematici.
Shyam Prasad Murarka (8 anni fa)
Grazie per la presentazione.
Abhishek (8 anni fa)