Vai al contenuto principale

Capire il data drift e il model drift: rilevamento del drift in Python

Affronta i rischi del model drift ed esplora la nostra guida pratica al monitoraggio del data drift.
Aggiornato 25 mag 2026  · 9 min leggi

"Drift" è un termine usato nel machine learning per descrivere come le prestazioni di un modello in produzione peggiorano lentamente nel tempo. Questo può succedere per vari motivi, ad esempio cambiamenti nella distribuzione dei dati in ingresso nel tempo o modifiche nella relazione tra l’input (x) e il target desiderato (y). 

Il drift può essere un grosso problema quando usiamo il machine learning nel mondo reale, dove i dati sono spesso dinamici e in continuo cambiamento. Questo articolo approfondisce perché i modelli vanno in drift, i diversi tipi di drift, gli algoritmi per rilevarli e, infine, si chiude con un’implementazione open-source del rilevamento del drift in Python.

Che cos’è il drift?

I modelli di machine learning vengono addestrati con dati storici, ma una volta usati nel mondo reale possono diventare obsoleti e perdere accuratezza nel tempo a causa di un fenomeno chiamato drift. Il drift è il cambiamento nel tempo delle proprietà statistiche dei dati usati per addestrare un modello di machine learning. Questo può far sì che il modello diventi meno accurato o si comporti in modo diverso da come era stato progettato. 

In altre parole, il "drift" è il calo della capacità di un modello di fare previsioni accurate a causa di cambiamenti nell’ambiente in cui viene usato.

Perché i modelli di machine learning vanno in drift?

Ci sono diverse ragioni per cui i modelli di machine learning possono andare in drift nel tempo. 

Un motivo comune è semplicemente che i dati su cui il modello è stato addestrato diventano obsoleti o non rappresentano più le condizioni attuali. 

Per esempio, considera un modello di machine learning addestrato a prevedere il prezzo di un’azione basandosi su dati storici. Se addestriamo il modello con dati di un mercato stabile, all’inizio potrebbe funzionare bene. Tuttavia, se il mercato diventa più volatile nel tempo, il modello potrebbe non riuscire più a prevedere accuratamente il prezzo dell’azione perché le proprietà statistiche dei dati sono cambiate.

Un’altra ragione del model drift è che il modello non è stato progettato per gestire cambiamenti nei dati. Alcuni modelli di machine learning gestiscono i cambiamenti nei dati meglio di altri, ma nessun modello può evitare completamente il drift. 

Tipi di drift

Vediamo i due diversi tipi di drift da considerare:

1. Concept drift

Il concept drift, noto anche come model drift, si verifica quando il compito per cui il modello è stato progettato cambia nel tempo. Per esempio, immagina un modello di machine learning addestrato a rilevare le email di spam in base al contenuto. Se i tipi di email di spam che le persone ricevono cambiano in modo significativo, il modello potrebbe non riuscire più a rilevare accuratamente lo spam.

Il concept drift può essere ulteriormente suddiviso in quattro categorie (Learning under Concept Drift: A Review, Jie Lu et al.):

  • Drift improvviso
  • Drift graduale
  • Drift incrementale
  • Concetti ricorrenti

Concept Drift

Fonte: https://arxiv.org/pdf/2004.05785.pdf

2. Data drift

Il data drift, noto anche come covariate shift, si verifica quando la distribuzione dei dati in ingresso cambia nel tempo. Per esempio, considera un modello addestrato a prevedere la probabilità che un cliente acquisti un prodotto in base alla sua età e al suo reddito. Se la distribuzione delle età e dei redditi dei clienti cambia in modo significativo nel tempo, il modello potrebbe non riuscire più a prevedere accuratamente la probabilità di acquisto.

È importante essere consapevoli sia del concept drift sia del data drift e adottare misure per prevenirne o mitigarne gli effetti. Alcune strategie per affrontare il drift includono il monitoraggio e la valutazione continua delle prestazioni di un modello, l’aggiornamento del modello con nuovi dati e l’uso di modelli di machine learning più robusti al drift.

Puoi approfondire la data science post-deployment, come il drift, in un episodio del nostro podcast DataFramed. 

3. Drift negli LLM e negli embedding

Gli LLM introducono un tipo di drift per cui i metodi sopra non erano stati progettati. I dati non sono righe in una tabella — sono testo libero — e ciò che cambia nel tempo è di solito il significato di ciò che gli utenti chiedono. Oggi si ritiene che ci siano tre forme di drift degli LLM da monitorare.

Embedding drift

L’embedding drift si verifica quando cambia il significato del testo che gli utenti inviano a un modello, anche se il testo in superficie sembra lo stesso. Gli LLM convertono il testo in lunghe liste di numeri chiamate embedding, e il drift può emergere in quei numeri senza emergere in nulla che di solito misureresti.

Immagina un chatbot di supporto clienti che inizialmente gestiva soprattutto domande su setup e onboarding. Poi, sei mesi dopo, il volume dei messaggi e la loro lunghezza media non cambiano, ma gli utenti ora chiedono soprattutto informazioni su fatturazione e cancellazioni. Le statistiche testuali sembrano stabili, ma la distribuzione degli embedding è cambiata. Per rilevarlo, i team confrontano batch di embedding recenti con un batch di riferimento usando una misura di distanza statistica.

Drift di prompt o input

Il prompt drift è la stessa idea dell’embedding drift, ma tracciata a un livello superiore. Invece di confrontare gli embedding grezzi, raggruppi le query in arrivo in categorie — usando un classificatore o un altro LLM — e osservi gli spostamenti nel mix.

Immagina un assistente interno per il coding lanciato per gli ingegneri backend che inizi gradualmente a ricevere traffico da data scientist con domande su pandas. L’assistente potrebbe rispondere ancora in modo competente, ma la popolazione che sta servendo non è più quella su cui è stato testato e, nel tempo, il system prompt o l’indice di retrieval potrebbero smettere di essere una soluzione ottimale.

Rubric drift

Il rubric drift è un cambiamento nel tempo nei punteggi di qualità che un valutatore automatico assegna agli output di un modello. Molti team di produzione ora usano un LLM come giudice, attribuendo a ogni risposta punteggi su aspetti come utilità, accuratezza o tono. Quando questi punteggi iniziano a calare per gli stessi tipi di input, di solito qualcosa è cambiato — il modello dietro un’API, i documenti recuperati o il mix di utenti.

Ciò che rende il rubric drift particolarmente utile è che fornisce un segnale di qualità senza bisogno di etichette ground truth, che raramente sono disponibili in tempo reale per output generativi.

Come si rileva il drift?

Ci sono due modi per rilevare il drift:

1. Approccio basato su modelli di machine learning: approccio basato su modello per verificare se i dati in ingresso in arrivo sono andati in drift oppure no.

2. Test statistici: esistono molti test statistici per rilevare il data drift. Si dividono principalmente in tre categorie: 

    • Metodi di analisi sequenziale 
    • Un modello personalizzato per rilevare il drift 
    • Metodo della distribuzione temporale, molto comune. 

I metodi basati sulla distribuzione nel tempo usano tecniche statistiche per calcolare la differenza tra due distribuzioni di probabilità al fine di rilevare il drift. Questi metodi includono il Population Stability Index, la divergenza KL, la divergenza JS, il test KS e la metrica di Wasserstein. 

Algoritmi per rilevare il data drift

Test di Kolmogorov-Smirnov (K-S)

Il test di Kolmogorov-Smirnov (K-S) è un test statistico non parametrico usato per determinare se due insiemi di dati provengono dalla stessa distribuzione. Spesso si usa per verificare se un campione di dati proviene da una specifica popolazione o per confrontare due campioni e capire se appartengono alla stessa popolazione.

L’ipotesi nulla in questo test è che le distribuzioni siano uguali. Se questa ipotesi viene rifiutata, suggerisce che ci sia drift nel modello.

Il test K-S è uno strumento utile per confrontare dataset e determinare se provengono dalla stessa distribuzione.

Population Stability Index

Il Population Stability Index (PSI) è una misura statistica usata per confrontare la distribuzione di una variabile categoriale in due diversi dataset. 

Il Population Stability Index (PSI) è uno strumento usato per misurare quanto la distribuzione di una variabile sia cambiata tra due campioni o nel tempo. È comunemente usato per monitorare i cambiamenti nelle caratteristiche di una popolazione e per individuare potenziali problemi nelle prestazioni di un modello di machine learning.

Il PSI è stato originariamente sviluppato per monitorare i cambiamenti nella distribuzione di un punteggio nelle scorecard di rischio, ma oggi si usa per esaminare gli spostamenti di distribuzione per tutti gli attributi legati al modello, incluse sia le variabili dipendenti sia quelle indipendenti. 

Un valore di PSI elevato indica una differenza significativa tra le distribuzioni della variabile nei due dataset, il che può suggerire la presenza di drift nel modello. 

Se la distribuzione di una variabile è cambiata in modo significativo, o se diverse variabili sono cambiate in una certa misura, potrebbe essere necessario ricalibrare o ricostruire il modello per migliorarne le prestazioni.

Metodo di Page-Hinkley

Il metodo di Page-Hinkley è una tecnica statistica usata per rilevare cambiamenti nella media di una serie di dati nel tempo. È comunemente impiegato per monitorare le prestazioni dei modelli di machine learning e rilevare cambiamenti nella distribuzione dei dati che possono indicare model drift.

Per usare il metodo di Page-Hinkley, il primo passo è definire un valore di soglia e una funzione decisionale. La soglia è un valore oltre il quale un cambiamento della media è considerato significativo, e la funzione decisionale restituisce 1 se è stato rilevato un cambiamento e 0 se non è stato rilevato alcun cambiamento.

Successivamente, si calcola la media della serie di dati a ogni istante temporale e si applica la funzione decisionale ai dati per determinare se si è verificato un cambiamento. Se la funzione decisionale restituisce 1, indica che è stato rilevato un cambiamento e che il modello potrebbe essere in drift.

Il metodo di Page-Hinkley è un modo semplice ed efficace per rilevare cambiamenti nella media di una serie di dati nel tempo. È particolarmente utile per individuare piccoli cambiamenti nella media che potrebbero non essere immediatamente evidenti osservando i dati. Tuttavia, è importante selezionare con attenzione il valore di soglia e la funzione decisionale per garantire che il metodo sia sufficientemente sensibile da rilevare i cambiamenti nei dati, ma non così sensibile da generare falsi allarmi.

Implementazione del rilevamento del drift in Python

In questa sezione useremo Evidently per rilevare il drift. Evidently è una libreria Python open-source pensata per data scientist e ingegneri che lavorano con il machine learning. Li aiuta a testare, valutare e tenere traccia di come funzionano i loro modelli, dalla validazione alla produzione.

Importa le librerie

import pandas as pd
import numpy as np
from sklearn import datasets

from evidently import Report
from evidently.presets import DataDriftPreset

Importa il dataset e crea le partizioni di riferimento e target

# create ref and cur dataset for drift detection
adult_data = datasets.fetch_openml(name='adult', version=2, as_frame=True)
adult = adult_data.frame

adult_ref = adult[~adult.education.isin(['Some-college', 'HS-grad', 'Bachelors'])].copy()
adult_cur = adult[adult.education.isin(['Some-college', 'HS-grad', 'Bachelors'])].copy()

adult_cur.iloc[:2000, 3:5] = np.nan

Genera il report di drift

#dataset-level metrics
report = Report([DataDriftPreset()], include_tests=True)
my_eval = report.run(current_data=adult_cur, reference_data=adult_ref)
my_eval

Dashboard di rilevamento del drift

Dashboard di rilevamento del drift - creata con EvidentlyAI

Esporta il report di drift in formato JSON

#report in a JSON format
my_eval.json()

Guarda il Notebook completo di Datacamp qui.

Conclusione

Il data e il model drift possono rappresentare sfide significative per i sistemi di machine learning in produzione. Capendo cause ed effetti del drift e implementando pratiche efficaci di monitoraggio, puoi garantire che i tuoi modelli di machine learning rimangano accurati e affidabili nel tempo. 

Monitorare le prestazioni dei modelli, usare un modello di rilevamento del drift e riaddestrare regolarmente sui dati aggiornati sono solo alcune delle buone pratiche che puoi seguire per mitigare i rischi del drift. Essendo proattivo nel monitoraggio del drift, puoi assicurarti che il tuo sistema di machine learning continui a generare valore per la tua organizzazione.

Monitorare i modelli di machine learning per il drift è solo un aspetto di un campo più ampio chiamato MLOps. Capire i concetti di MLOps è essenziale per qualsiasi data scientist, ingegnere o leader che voglia portare i modelli di machine learning da un notebook locale a un modello funzionante in produzione. 

Se vuoi approfondire i concetti di MLOps e capire come possono aiutarti nella tua carriera, dai un’occhiata al nostro corso MLOps Concepts. Qui imparerai cos’è MLOps, capirai le diverse fasi dei processi MLOps e identificherai i diversi livelli di maturità MLOps. Dopo aver appreso i concetti essenziali, sarai ben attrezzato per implementare il machine learning in modo continuo, affidabile ed efficiente.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Data Scientist, fondatore e creatore di PyCaret

Domande frequenti sul rilevamento del drift

Che cos’è il model drift nel machine learning?

Il model drift nel machine learning è quando le prestazioni di un modello su nuovi dati sono diverse da quelle ottenute sui dati di addestramento su cui è stato costruito. Questo può accadere per vari motivi, tra cui cambiamenti nella distribuzione dei dati nel tempo, l’aggiunta di nuovi dati che non rispettano le assunzioni originali del modello o l’incapacità del modello di adattarsi a condizioni che cambiano.

Perché il model drift è un problema?

Il model drift può influenzare in modo significativo le prestazioni e l’accuratezza di un modello di machine learning. Man mano che le previsioni del modello diventano meno affidabili, può portare a decisioni o azioni errate con conseguenze negative. Per esempio, in ambito sanitario, il drift potrebbe portare a diagnosi o raccomandazioni di trattamento sbagliate, mentre in ambito finanziario potrebbe tradursi in scelte d’investimento poco efficaci.

Come si rileva il model drift?

Ci sono diversi modi per determinare se un modello è in drift, come test statistici, algoritmi di rilevamento del drift e l’analisi delle prestazioni del modello. Alcuni di questi metodi sono pensati per rilevare il drift in tempo reale, mentre altri sono più adatti a verifiche periodiche o batch. È importante scegliere la tecnica giusta per l’applicazione e l’ambiente dati specifici.

Come si previene il model drift?

Prevenire il model drift richiede una combinazione di attenta selezione del modello, monitoraggio e test regolari e interventi proattivi. Questo può comportare l’uso di algoritmi più robusti al drift, il riaddestramento regolare dei modelli su nuovi dati o l’implementazione di strategie per affrontare attivamente il drift quando viene rilevato. È anche importante avere una chiara comprensione dei fattori che possono causarlo, in modo da poter adottare misure preventive.

In che modo la distribuzione dei dati influisce sul model drift?

La distribuzione dei dati può influenzare in modo significativo le prestazioni di un modello di machine learning. Se la distribuzione dei dati cambia nel tempo, può portare al model drift, poiché il modello potrebbe non riuscire più a prevedere accuratamente nuovi dati che non corrispondono alle sue assunzioni originali. Questo può avvenire in vari modi, ad esempio tramite variazioni naturali nei dati, l’aggiunta di nuove fonti dati o cambiamenti nei processi o sistemi sottostanti che generano i dati.

Il model drift è reversibile?

In alcuni casi, il model drift può essere reversibile riaddestrando il modello su nuovi dati o regolando i suoi parametri. Tuttavia, non è sempre possibile, soprattutto se la distribuzione dei dati è cambiata in modo significativo o se il modello è diventato eccessivamente complesso o specializzato. In queste situazioni, potrebbe essere necessario ripartire con un nuovo modello.

È possibile eliminare completamente il model drift?

Eliminare completamente il model drift è difficile, se non impossibile. Anche i modelli di machine learning più robusti e ben progettati possono essere influenzati da cambiamenti nei dati o nei processi che li generano. L’approccio migliore è gestire e mitigare l’impatto del model drift tramite monitoraggio, test e interventi regolari.

In che modo il model drift influisce sulle prestazioni del modello?

Il model drift può avere un impatto significativo sulle prestazioni di un modello di machine learning. Man mano che le previsioni del modello diventano meno accurate, può determinare un calo delle metriche importanti come accuratezza, precisione, richiamo ed efficacia complessiva. In alcuni casi, il drift può persino causare il fallimento completo del modello, con previsioni errate o inaffidabili.

In che modo il model drift influisce sull’accuratezza del modello?

Il model drift può avere un impatto negativo sull’accuratezza di un modello di machine learning. Man mano che le previsioni del modello diventano meno accurate, può portare a decisioni o azioni sbagliate, con conseguenze negative nelle applicazioni reali. Per esempio, in ambito sanitario, il drift potrebbe portare a diagnosi o raccomandazioni di trattamento errate, mentre in finanza potrebbe tradursi in scelte d’investimento poco efficaci. È importante monitorare e testare regolarmente il model drift per mantenere l’accuratezza del modello.

Argomenti

Corsi MLOps

Corso

Concetti di MLOps

2 h
42.4K
Scopri come MLOps porta i modelli di machine learning da notebook locali a modelli funzionanti in produzione con reale valore aziendale.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altroMostra altro