Target leakage

Fuga di dato · Data leakage

L'errore per cui un modello previsionale usa una variabile che al momento della previsione non sarebbe ancora disponibile, o che contiene già l'esito. Il modello sembra accuratissimo e in produzione non serve a nulla.

tscrittura(Xj)tdecisione
t_scrittura(X_j) ≤ t_decisione
t scrittura di Xjmomento in cui la variabile riceve il proprio valoreXjsingola variabile candidata del modellojindice della variabile consideratat decisionemomento in cui la decisione deve essere presa
Una variabile è ammissibile solo se il suo valore è già scritto nel momento in cui devi prendere la decisione: se viene compilata dopo, il modello sta guardando il futuro e in produzione quel futuro non ci sarà.

Che cos’è

Il target leakage è il modo più elegante di ingannare se stessi con i dati. Si costruisce un modello per prevedere qualcosa — le cancellazioni, i no-show, la conversione — lo si addestra sullo storico, si misura l’accuratezza e viene un numero splendido. Poi lo si mette in produzione e non funziona. Il motivo, quasi sempre, è che fra le colonne usate ce n’era almeno una che nella realtà viene compilata dopo l’evento che si vuole prevedere.

Il caso più chiaro è pubblico e verificabile. Il dataset alberghiero di Antonio, de Almeida e Nunes del 2019 raccoglie 119.390 prenotazioni di due hotel portoghesi, uno resort e uno cittadino, ed è diventato il riferimento per chiunque studi le cancellazioni. Tre delle sue colonne sembrano predittori eccezionali e sono invece trappole.

Colonna Tasso di cancellazione Righe Perché è una trappola
Posto auto assegnato 0,0% 7.416 Il posto auto si assegna al check-in: se il campo è pieno, l’ospite è già arrivato
Camera assegnata diversa da quella prenotata 5,4% L’assegnazione avviene all’arrivo; chi ha cancellato non ha mai ricevuto una camera
Deposito non rimborsabile 99,4% 14.587 Convenzione del gestionale: marca i mancati arrivi già addebitati, non una tariffa che respinge

Sul confronto della seconda riga vale la pena fermarsi: le prenotazioni con camera diversa da quella richiesta cancellano al 5,4 per cento, quelle senza differenza al 41,6. Chiunque legga questo scarto senza conoscere il processo conclude che spostare l’ospite di camera riduce le cancellazioni di otto volte. È esattamente il contrario: sono le prenotazioni non cancellate a poter ricevere una camera diversa, perché per riceverla bisogna presentarsi.

La terza è la più istruttiva perché sembra economia e invece è amministrazione. Un non rimborsabile che cancella nel 99,4 per cento dei casi non è una tariffa che seleziona male i clienti: è il modo in cui quel gestionale registra i mancati arrivi già addebitati. Il campo dice che cosa è successo alla fine, non che cosa era stato scelto all’inizio.

Come si calcola

Non c’è una statistica che scovi la fuga: c’è una regola sul tempo. Per ogni colonna candidata si stabilisce l’istante in cui viene scritta nel sistema di origine e lo si confronta con l’istante in cui il modello dovrà decidere. Se la scrittura è successiva, la colonna esce.

tscrittura(Xj)tdecisione
t_scrittura(X_j) ≤ t_decisione
t scritturaquando il campo riceve il suo valore definitivot decisionequando serve la previsione
Condizione di ammissibilità di una variabile

Lo stesso modello, con e senza le tre colonne

Prenotazioni nel dataset
119.390
Tasso di cancellazione complessivo
circa 37%
Accuratezza con posto auto, camera assegnata e deposito
oltre 95%
Accuratezza con sole variabili note alla prenotazione
fra 78 e 84%
Il primo modello prevede il passato e in produzione vale zero
Il secondo è meno brillante sulla carta e produce decisioni utilizzabili

Come si usa

Prima di addestrare qualunque cosa, si compila una tabella con tre colonne: nome del campo, momento in cui viene scritto, chi lo scrive. Un pomeriggio con il capo ricevimento basta per riempirla, e vale più di qualunque tecnica di selezione automatica delle variabili.

Il secondo controllo è il sospetto sull’accuratezza alta. Se un modello di cancellazioni supera il 92 per cento di accuratezza, la spiegazione più probabile non è che sia bravo, è che stia leggendo il futuro. Ordina le variabili per importanza, prendi le prime tre e chiediti per ognuna in che momento nasce quel valore. Nove volte su dieci la fuga è lì.

C’è anche una versione lenta dello stesso errore, che si vede negli hotel senza modelli: costruire il forecast con dati che a quella distanza dall’arrivo non avresti. Se stimi la domanda di luglio usando il consuntivo di luglio dell’anno prima integrato con informazioni raccolte in agosto, stai facendo la stessa cosa con un foglio di calcolo.

Il fornitore che mostra il 97 per cento di accuratezza

Quando un venditore di soluzioni predittive presenta un’accuratezza superiore al 95 per cento sulle cancellazioni, la domanda da fare è una sola: quali variabili usa il modello e in quale momento del ciclo di prenotazione ciascuna riceve il suo valore. Se nell’elenco compaiono camera assegnata, posto auto, stato del deposito, esito del check-in o qualunque campo compilato dal ricevimento all’arrivo, quel numero non misura la capacità di prevedere, misura la capacità di ricordare. Un modello onesto sulle cancellazioni alberghiere sta fra il 75 e l’85 per cento di accuratezza, e va valutato sul guadagno economico che produce, non sulla percentuale.

Da non confondere con

Il target leakage non è overfitting. L’overfitting è un modello che impara il rumore dei dati di addestramento e va male su dati nuovi: si vede subito confrontando le due misure. La fuga di dato invece regge anche sui dati di prova, perché la colonna avvelenata è presente anche lì. Il crollo arriva solo in produzione, dove quella colonna al momento della decisione è vuota. È per questo che è tanto più pericolosa: nessuna validazione tecnica la intercetta, la intercetta solo chi conosce il processo di lavoro dell’albergo.

Non va confusa nemmeno con la scarsa igiene del dato. Lì il valore è sbagliato; qui il valore è perfettamente corretto e semplicemente arriva troppo tardi. Sono due controlli distinti e vanno fatti tutti e due, in quest’ordine: prima si verifica che il dato sia vero, poi si verifica quando nasce.

Torna al glossario