Cos'è il drift di distribuzione e come rilevarlo (test KS, PSI)?
sobes.tech AI
Risposta dell'AI
Lo spostamento di distribuzione è un cambiamento nella distribuzione dei dati nel tempo, che può portare a una diminuzione della qualità del modello di apprendimento automatico, poiché il modello è stato addestrato su una distribuzione, mentre in produzione i dati provengono da un'altra.
Per rilevare lo spostamento di distribuzione, si utilizzano spesso test statistici e metriche:
-
Test KS (test di Kolmogorov-Smirnov) — un test non parametrico che confronta due campioni e verifica quanto le loro distribuzioni differiscono. Se il p-value del test è basso, significa che le distribuzioni differiscono significativamente.
-
PSI (Indice di Stabilità della Popolazione) — una metrica che misura il cambiamento nella distribuzione di una variabile tra due periodi. Il PSI viene calcolato tramite i bin di distribuzione e mostra il grado di spostamento. In generale:
- PSI < 0.1 — spostamento insignificante
- 0.1 < PSI < 0.25 — spostamento moderato
- PSI > 0.25 — spostamento significativo
Esempio di utilizzo del test KS in Python:
from scipy.stats import ks_2samp
reference_data = [...] # dati del campione di addestramento
current_data = [...] # nuovi dati
statistic, p_value = ks_2samp(reference_data, current_data)
if p_value < 0.05:
print("Rilevato uno spostamento di distribuzione")
else:
print("Le distribuzioni sono simili")
In questo modo, il monitoraggio regolare delle distribuzioni tramite il test KS e il PSI aiuta a individuare tempestivamente lo spostamento e adottare le misure necessarie (ad esempio, riaddestrare il modello).