Presque tous les modèles de Machine Learning en production voient leurs performances se dégrader progressivement à cause du Covariate Shift (ou décalage de covariables).

La distribution des données change au fil du temps
Le Covariate Shift se produit lorsque la distribution des features change au fil du temps, alors que la véritable relation entre l'entrée et la sortie reste la même.

La distribution des échantillons de test diffère de celle des données d'entraînement
C'est un problème sérieux : nous avons entraîné le modèle sur une certaine distribution, mais il est utilisé pour faire des prédictions sur une distribution différente en production.
Il est donc critique de détecter ce décalage tôt pour que les modèles continuent de bien fonctionner.
L'une des méthodes les plus courantes et intuitives pour détecter le Covariate Shift consiste simplement à comparer la distribution des features entre les données d'entraînement et celles de production.

Cela peut se faire de plusieurs manières, par exemple :
Comparer les statistiques sommaires (moyenne, médiane, etc.).
Inspecter visuellement via des graphiques de distribution.
Effectuer des tests d'hypothèse.
Mesurer les distances entre les distributions (entraînement vs production) en utilisant la distance de Bhattacharyya, le test KS, etc.
Bien que ces approches soient souvent efficaces, leur problème majeur est qu'elles fonctionnent sur une seule feature à la fois.
Or, dans la vraie vie, nous pouvons aussi observer un Covariate Shift Multivarié.
Le Covariate Shift Multivarié se produit lorsque :
La distribution des variables individuelles reste la même :
P(X1)etP(X2)restent individuellement identiques.
Mais leur distribution conjointe change :
P(X1, X2)change.
C'est flagrant sur l'image ci-dessous :

Bleu : données d’entraînement — Rouge : données de production
Les courbes KDE (en haut et à droite) montrent que les distributions marginales sont quasi identiques.
Pourtant, le nuage de points (scatter plot) révèle que la distribution conjointe en entraînement (Bleu) diffère totalement de celle en production (Rouge).
Il est facile de deviner que les méthodes de détection univariées mentionnées plus haut donneront des résultats trompeurs ici.
Par exemple, comme démontré ci-dessous, mesurer la distance de Bhattacharyya entre une feature d'entraînement et de production donne une valeur très basse, indiquant une forte similarité :

En réalité, même si la distribution individuelle des features est la même, nous pouvons confirmer expérimentalement que cela entraînera une chute de performance du modèle.
Disons que la vraie sortie est y = 2∗Feature_A + 3∗Feature_B + bruit.

Note : Dans la plupart des cas, les vraies prédictions sur les données de production ne sont pas disponibles immédiatement. Dans la démonstration ci-dessus, supposons que nous ayons réussi à obtenir les vraies valeurs).
Comme illustré ci-dessus, la performance du modèle chute de 20% en production, ce qui est énorme.
Ici, nous pourrions complètement écarter la possibilité d'un Covariate Shift si nous partons du principe que ce décalage ne peut jamais être de nature multivariée.
Bien sûr, dans la figure précédente, il était facile d'identifier le changement multivarié car nous ne regardions que deux features.

Mais le Covariate Shift multivarié peut aussi survenir avec bien plus de deux features.
Contrairement au cas bivarié ci-dessus, l'inspection visuelle devient impossible dans des dimensions plus élevées.
Maintenant, tu connais le problème.
Alors, comment pouvons-nous détecter cela ?
Aujourd'hui, au lieu de te donner la solution tout de suite, je veux te laisser réfléchir à ce problème.
Plus spécifiquement, pose-toi la question :
Comment pouvons-nous détecter de manière fiable le Covariate Shift multivarié ?
Nous continuerons cette discussion semaine prochaine, mais d'ici là, j'aimerais avoir ton avis :)
Le Covariate Shift multivarié est un problème fréquent dont souffrent de nombreux modèles ML dans le monde réel.
Il est donc critique de le détecter tôt pour garantir que les modèles fonctionnent comme prévu.
Envie d'aller plus loin ? DataXp t'attend : formations et parcours pour progresser en data science, machine learning et IA.

