Il nostro video sull’overfitting ha ricevuto la sua giusta attenzione da quando è stato pubblicato 5 anni fa, cioè, mezzo secolo fa per una startup come Lokad. Anni dopo, abbiamo fatto molti progressi, ma l’overfitting rimane una questione difficile.

In breve, l’overfitting rappresenta il rischio che il tuo modello previsionale sia accurato solo nel prevedere il passato, e non nel prevedere il futuro. Un buon modello previsionale dovrebbe essere capace di prevedere i dati che ancora non possiedi.

Un errore comune è ritenere che non esista alcun altro modo per valutare un modello se non confrontandone le prestazioni con i dati storici. È vero, i dati storici devono essere sfruttati; tuttavia, se c’è un’insegnamento da trarre dalla teoria Vapnik-Chervonenkis, è che non tutti i modelli nascono uguali: alcuni comportano un rischio strutturale molto maggiore — un concetto che fa parte della teoria — rispetto ad altri. Intere classi di modelli possono essere considerate sicure o non sicure, da una prospettiva puramente teorica, il che si traduce in reali miglioramenti di accuratezza.

Le problematiche di overfitting non possono essere evitate del tutto, ma possono comunque essere mitigate.

Esistono diversi modi per mitigare l’overfitting. Innanzitutto, la regola da non infrangere mai è: un modello previsionale non dovrebbe mai essere valutato sui dati utilizzati per il suo addestramento. Molti toolkit adattano i modelli all’intera storia per stimare in seguito il fit complessivo. Beh, come suggerisce il nome, tale processo ti fornisce il fit ma nient’altro. In particolare, il fit non dovrebbe essere interpretato come una sorta di accuratezza attesa, non lo è. Di solito, il fit è molto inferiore all’accuratezza reale.

In secondo luogo, un modo semplice per mitigare l’overfitting è eseguire un back-testing esteso. In pratica, ciò significa che il tuo processo deve suddividere il dataset di input in dozzine — se non centinaia — di soglie temporali incrementali, riaddestrare tutti i modelli previsionali e rivalutarli ogni volta. Il back-testing richiede molta potenza di calcolo. Essere in grado di allocare la massiccia potenza di calcolo necessaria per eseguire un back-testing esteso è stato, in effetti, uno dei motivi principali per cui Lokad è migrata verso il cloud computing in primo luogo.

In terzo luogo, anche il back-testing più esteso vale poco se le tue serie temporali sono scarse in primo luogo, cioè, se le serie temporali rappresentano articoli a basso volume di vendite. Infatti, poiché la maggior parte dei punti dei dati delle serie temporali è pari a zero, il processo di back-testing apprende ben poco iterando sui valori zero. Sfortunatamente per il commercio, circa il 90% degli articoli venduti o serviti ha una storia di domanda che è considerata scarsa da un punto di vista statistico. Per affrontare questo problema, le prestazioni del modello dovrebbero essere valutate con una visione basata su più serie temporali. Non è la prestazione del modello su una singola serie temporale a contare, bensì la sua performance su cluster ben definiti di serie temporali. In questo modo, si tratta di trovare un equilibrio tra l’accuratezza empirica locale e quella globale nella scelta del modello migliore.

Qualche domanda? Non esitare a pubblicarle come commenti.


Commenti dei lettori (2)

Shaun, Il back-testing è uno strumento estremamente fondamentale in statistica. È stato utilizzato per decenni in quasi tutti i settori: finanza, meteorologia, trasporti, energia, … Il back-testing non richiede “fiducia”, è praticamente l’unica metodologia solida conosciuta per valutare l’accuratezza di un processo predittivo, e c’è una montagna di letteratura sull’argomento. Per una gentile introduzione, dovresti davvero iniziare a leggere “Elements of statistical learning” Joannes Vermorel (4 years ago)


Joannes, Questo è estremamente interessante. Tuttavia, mi fa rabbrividire come lo spiegherò ai clienti. Quindi, se ho capito bene, è possibile eseguire il back-testing in Lokad, tuttavia, se il back-testing — che, a giudicare dalla lettura, è una forma di machine learning — non comporta una sfida significativa nel dover spiegare quanto realizzato? Se diventa un algoritmo avanzato, allora non si è fondamentalmente costretti a fidarsi del fatto che funzioni? Ovviamente, questo è uno dei principali punti focali per Lokad, per cui tutti voi ci avete riflettuto a lungo. Tuttavia, penso che esista un pubblico aziendale limitato in grado di comprendere i dettagli specifici del suo funzionamento. Quindi, Lokad si basa sui risultati delle ricerche che ha condotto su aziende precedenti, mostrando il beneficio netto di questo back-testing? Quindi, Lokad si basa sui risultati delle ricerche condotte su aziende precedenti, mostrando il beneficio netto di questo back-testing? Shaun Snapp (4 years ago)