Sobes.tech
Middle — Senior

Qu'est-ce que le décalage de distribution et comment le détecter (test KS, PSI) ?

sobes.tech IA

Réponse de l'IA

Le décalage de distribution — c'est un changement dans la distribution des données au fil du temps, ce qui peut entraîner une dégradation de la qualité du modèle d'apprentissage automatique, car le modèle est entraîné sur une distribution, alors que les données en production proviennent d'une autre.

Pour détecter le décalage de distribution, on utilise souvent des tests statistiques et des métriques :

  • Test KS (test de Kolmogorov-Smirnov) — un test non paramétrique qui compare deux échantillons et vérifie à quel point leurs distributions diffèrent. Si la valeur p du test est faible, cela signifie que les distributions diffèrent de manière significative.

  • PSI (Indice de stabilité de la population) — une métrique qui mesure le changement de distribution d'une variable entre deux périodes. Le PSI est calculé à partir des bins de distribution et indique le degré de décalage. En général :

    • PSI < 0.1 — décalage insignifiant
    • 0.1 < PSI < 0.25 — décalage modéré
    • PSI > 0.25 — décalage important

Exemple d'utilisation du test KS en Python :

from scipy.stats import ks_2samp

reference_data = [...]  # données de l'échantillon d'entraînement
current_data = [...]    # nouvelles données

statistic, p_value = ks_2samp(reference_data, current_data)
if p_value < 0.05:
    print("Détection d'un décalage de distribution")
else:
    print("Les distributions sont similaires")

Ainsi, la surveillance régulière des distributions à l'aide du test KS et du PSI permet de détecter rapidement le décalage et de prendre des mesures (par exemple, réentraîner le modèle).