Cose che i principianti dovrebbero sapere sull’overfitting
Cosa significa overfitting in termini semplici
L’overfitting si verifica quando un modello o un insieme di regole si adatta così strettamente ai dettagli di un dataset specifico da imparare il rumore (randomness) invece della relazione sottostante e ripetibile.
Un modo semplice per capirlo: se l’approccio funziona bene sui dati usati per costruirlo, ma peggiora in modo evidente su dati mai visti prima, potresti trovarsi di fronte a un caso di overfitting.
Il meccanismo: perché risultati buoni possono essere fuorvianti
L’overfitting si presenta di solito quando si combinano tre fattori:
- Alta flessibilità: il modello può usare molti parametri, condizioni o gradi di libertà.
- Dati limitati o non rappresentativi: il periodo di addestramento non cattura la variazione futura.
- Ottimizzazione sul passato: vengono apportate ripetute modifiche per migliorare i risultati storici.
In questa situazione, il modello può “memorizzare” schemi unici al campione. Quando le condizioni cambiano, quegli schemi memorizzati smettono di funzionare.
Meccaniche stabili vs. condizioni variabili
Fai attenzione a distinguere ciò che è generalmente vero da ciò che dipende da input variabili.
- Meccaniche stabili: la discrepanza statistica tra dati di addestramento e nuovi dati è il problema principale.
- Condizioni variabili: i risultati reali dipendono da regimi di mercato in evoluzione, qualità dei dati, differenze di esecuzione e costi.
Poiché queste condizioni variabili raramente corrispondono esattamente a quelle storiche, anche un modello ben calibrato potrebbe non generalizzare.
Evidenza ed esempio (con ipotesi dichiarate)
Immagina di avere dati storici su un processo e di provare molte versioni via via più complesse di una regola di previsione.
Ipotesi per questo esempio:
- Valuti le versioni solo sullo stesso periodo storico usato per ottimizzarle.
- Scegli la versione con le migliori performance storiche.
Cosa può accadere:
- La versione selezionata ha probabilmente beneficiato da anomalie casuali e di breve durata in quel periodo.
- Quando la testi su un intervallo temporale diverso (non usato per l’ottimizzazione), le performance potrebbero calare.
Questo schema è un segnale pratico comune di overfitting: successo sui dati “noti” che diventa instabile quando i dati cambiano.
Limiti e rischi: come l’overfitting fallisce nella pratica
Un limite significativo è che il backtesting o la valutazione possono dare una falsa sensazione di sicurezza.
I modi più comuni di fallimento includono:
- Bias di look-ahead: viene accidentalmente usata informazione che non sarebbe stata disponibile in tempo reale.
- Data leakage: segnali o passaggi di preprocessing incorporano involontariamente informazioni future.
- Cambiamenti di regime: la relazione statistica cambia, quindi lo schema appreso non è più valido.
- Ipotesi nascoste sui costi: piccole differenze nei costi di transazione o nell’esecuzione possono annullare i guadagni passati.
Anche se un metodo sembra coerente, i risultati possono variare su periodi diversi perché la relazione storica potrebbe non essere stabile.
Come verificare (senza assumere certezze future)
Per verificare se un risultato è robusto, usa passaggi di verifica che riducano la probabilità di scambiare il rumore per segnale:
- Usa test fuori campione: metti da parte dati non usati per l’ottimizzazione.
- Testa su più finestre temporali: cerca stabilità, non solo un singolo periodo ottimale.
- Varia le ipotesi: modifica impostazioni ragionevoli (come le finestre di valutazione o le ipotesi sui costi) e verifica se le conclusioni rimangono valide.
Punto di controllo: se le performance dipendono fortemente da una specifica fetta di storia o da ripetute ottimizzazioni sui risultati passati, è un campanello d’allarme.
Ricorda: le relazioni storiche non garantiscono risultati futuri. Tratta ogni ottimo adattamento passato come un’ipotesi che deve resistere a nuovi dati non visti e a condizioni in cambiamento.