Sobes.tech
Middle — Senior

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).