cours
Comprendre la dérive des données et la dérive des modèles : Détection de dérives en Python
La "dérive" est un terme utilisé dans l'apprentissage automatique pour décrire la façon dont les performances d'un modèle d'apprentissage automatique en production se dégradent lentement au fil du temps. Cela peut se produire pour un certain nombre de raisons, telles que des changements dans la distribution des données d'entrée au fil du temps ou la modification de la relation entre les données d'entrée (x) et la cible souhaitée (y).
La dérive peut être un problème majeur lorsque nous utilisons l'apprentissage automatique dans le monde réel, où les données sont souvent dynamiques et en constante évolution. Cet article se penche sur les raisons pour lesquelles les modèles dérivent, les différents types de dérives, les algorithmes permettant de les détecter, et enfin, il se termine par une implémentation open-source de la détection de dérives en Python.
Renforcer les compétences en matière d'apprentissage automatique
Améliorez vos compétences en matière d'apprentissage automatique au niveau de la production.
Qu'est-ce que la dérive ?
Les modèles d'apprentissage automatique sont formés à partir de données historiques, mais une fois qu'ils sont utilisés dans le monde réel, ils peuvent devenir obsolètes et perdre leur précision au fil du temps en raison d'un phénomène appelé "dérive". La dérive est le changement dans le temps des propriétés statistiques des données qui ont été utilisées pour former un modèle d'apprentissage automatique. Le modèle peut alors perdre en précision ou fonctionner différemment de ce pour quoi il a été conçu.
En d'autres termes, la "dérive" est la diminution de la capacité d'un modèle à faire des prédictions précises en raison de changements dans l'environnement dans lequel il est utilisé.
Pourquoi les modèles d'apprentissage automatique dérivent-ils ?
Il existe plusieurs raisons pour lesquelles les modèles d'apprentissage automatique peuvent dériver au fil du temps.
L'une des raisons les plus courantes est que les données sur lesquelles le modèle a été formé sont obsolètes ou ne représentent plus les conditions actuelles.
Prenons l'exemple d'un modèle d'apprentissage automatique formé pour prédire le cours de l'action d'une entreprise sur la base de données historiques. Si nous entraînons le modèle avec des données provenant d'un marché stable, il peut donner de bons résultats dans un premier temps. Toutefois, si le marché devient plus volatil au fil du temps, le modèle pourrait ne plus être en mesure de prédire avec précision le prix de l'action, car les propriétés statistiques des données ont changé.
Une autre raison de la dérive du modèle est que le modèle n'a pas été conçu pour gérer les changements dans les données. Certains modèles d'apprentissage automatique peuvent mieux gérer les changements dans les données que d'autres, mais aucun modèle ne peut éviter complètement la dérive.
Types de dérives
Examinons les deux types de dérives à envisager :
1. Concept Drift
La dérive des concepts, également appelée dérive des modèles, se produit lorsque la tâche pour laquelle le modèle a été conçu change au fil du temps. Imaginez, par exemple, qu'un modèle d'apprentissage automatique ait été formé pour détecter les courriels non sollicités sur la base de leur contenu. Si les types de courriels non sollicités que les gens reçoivent changent de manière significative, le modèle peut ne plus être en mesure de détecter le spam avec précision.
La dérive conceptuelle peut être divisée en quatre catégories (Apprendre sous la dérive conceptuelle : A Review, Jie Lu et al.) :
- Dérive soudaine
- Dérive progressive
- Dérive incrémentale
- Concepts récurrents
Source: https://arxiv.org/pdf/2004.05785.pdf
2. Dérive des données
La dérive des données, également connue sous le nom de déplacement des covariables, se produit lorsque la distribution des données d'entrée change au fil du temps. Prenons l'exemple d'un modèle d'apprentissage automatique formé pour prédire la probabilité qu'un client achète un produit en fonction de son âge et de son revenu. Si la répartition des âges et des revenus des clients change de manière significative au fil du temps, le modèle peut ne plus être en mesure de prédire avec précision la probabilité d'un achat.
Il est important d'être conscient de la dérive des concepts et de la dérive des données et de prendre des mesures pour prévenir ou atténuer leurs effets. Parmi les stratégies permettant de remédier à la dérive, citons le contrôle et l'évaluation continus des performances d'un modèle, la mise à jour du modèle à l'aide de nouvelles données et l'utilisation de modèles d'apprentissage automatique plus résistants à la dérive.
Vous pouvez en savoir plus sur la science des données post-déploiement, comme la dérive, dans notre épisode du podcast DataFrame.
Comment détecter la dérive ?
Il y a deux façons de détecter la dérive :
1. Approche basée sur un modèle d'apprentissage automatique: Approche basée sur un modèle pour détecter si les données d'entrée entrantes ont dérivé ou non.
2. Tests statistiques: Il existe de nombreux tests statistiques permettant de détecter la dérive des données. Ils se répartissent principalement en trois catégories :
-
- Méthodes d'analyse séquentielle
- Modèle personnalisé pour détecter les dérives
- La méthode de répartition du temps, qui est très courante.
Les méthodes basées sur la distribution temporelle utilisent des méthodes statistiques pour calculer la différence entre deux distributions de probabilité afin de détecter la dérive. Ces méthodes comprennent l'indice de stabilité de la population, la divergence KL, la divergence JS, le test KS et la métrique de Wasserstein.
Algorithmes de détection de la dérive des données
Test de Kolmogorov-Smirnov (K-S)
Le test de Kolmogorov-Smirnov (K-S) est un test statistique non paramétrique utilisé pour déterminer si deux ensembles de données proviennent de la même distribution. Elle est souvent utilisée pour vérifier si un échantillon de données provient d'une population spécifique ou pour comparer deux échantillons afin de déterminer s'ils proviennent de la même population.
L'hypothèse nulle de ce test est que les distributions sont identiques. Si cette hypothèse est rejetée, cela suggère qu'il y a une dérive dans le modèle.
Le test K-S est un outil utile pour comparer des ensembles de données et déterminer s'ils proviennent de la même distribution.
Indice de stabilité de la population
L'indice de stabilité de la population (ISP) est une mesure statistique utilisée pour comparer la distribution d'une variable catégorielle dans deux ensembles de données différents.
L'indice de stabilité de la population (ISP) est un outil utilisé pour mesurer l'évolution de la distribution d'une variable entre deux échantillons ou au fil du temps. Elle est couramment utilisée pour surveiller les changements dans les caractéristiques d'une population et pour identifier les problèmes potentiels liés à la performance d'un modèle d'apprentissage automatique.
L'ISP a été développé à l'origine pour surveiller les changements dans la distribution d'un score dans les tableaux de bord des risques, mais il est maintenant utilisé pour examiner les changements de distribution pour tous les attributs liés au modèle, y compris les variables dépendantes et indépendantes.
Une valeur élevée de l'ISP indique qu'il existe une différence significative entre les distributions de la variable dans les deux ensembles de données, ce qui peut suggérer une dérive dans le modèle.
Si la distribution d'une variable a changé de manière significative, ou si plusieurs variables ont changé dans une certaine mesure, il peut être nécessaire de recalibrer ou de reconstruire le modèle pour améliorer ses performances.
Méthode Page-Hinkley
La méthode Page-Hinkley est une méthode statistique utilisée pour détecter les changements de la moyenne d'une série de données dans le temps. Il est couramment utilisé pour surveiller les performances des modèles d'apprentissage automatique et détecter les changements dans la distribution des données qui peuvent indiquer une dérive du modèle.
Pour utiliser la méthode Page-Hinkley, la première étape consiste à définir une valeur seuil et une fonction de décision. La valeur seuil est une valeur au-dessus de laquelle un changement de la moyenne est considéré comme significatif, et la fonction de décision est une fonction qui renvoie une valeur de 1 si un changement a été détecté et une valeur de 0 si aucun changement n'a été détecté.
Ensuite, la moyenne de la série de données est calculée à chaque pas de temps et la fonction de décision est appliquée aux données pour déterminer si un changement s'est produit. Si la fonction de décision renvoie une valeur de 1, cela indique qu'un changement a été détecté et que le modèle peut dériver.
La méthode Page-Hinkley est un moyen simple et efficace de détecter les changements de la moyenne d'une série de données au fil du temps. Elle est particulièrement utile pour détecter de petites variations de la moyenne qui peuvent ne pas être immédiatement apparentes lorsque l'on examine les données. Toutefois, il est important de sélectionner avec soin la valeur seuil et la fonction de décision afin de s'assurer que la méthode est suffisamment sensible pour détecter les changements dans les données, mais pas au point de générer de fausses alertes.
Mise en œuvre de la détection de dérive en Python
Dans cette section, nous utiliserons Evidently pour détecter les dérives. Evidently est une bibliothèque Python open-source faite pour les data scientists et les ingénieurs qui travaillent avec l'apprentissage automatique. Il les aide à tester, évaluer et suivre le fonctionnement de leurs modèles, de la validation à la production.
Importer des bibliothèques
```
# import libraries
import pandas as pd
import numpy as np
from sklearn import datasets
from evidently.report import Report
from evidently.metrics import DataDriftTable
from evidently.metrics import DatasetDriftMetric
```
Importer un jeu de données et créer des partitions de référence et des partitions cibles
```
# create ref and cur dataset for drift detection
adult_data = datasets.fetch_openml(name='adult', version=2, as_frame='auto')
adult = adult_data.frame
adult_ref = adult[~adult.education.isin(['Some-college', 'HS-grad', 'Bachelors'])]
adult_cur = adult[adult.education.isin(['Some-college', 'HS-grad', 'Bachelors'])]
adult_cur.iloc[:2000, 3:5] = np.nan
```
Générer un rapport de dérive
```
#dataset-level metrics
data_drift_dataset_report = Report(metrics=[
DatasetDriftMetric(),
DataDriftTable(),
])
data_drift_dataset_report.run(reference_data=adult_ref, current_data=adult_cur)
data_drift_dataset_report
```
Tableau de bord de détection des dérives - créé avec EvidentlyAI
Exporter le rapport de dérive au format JSON
```
#report in a JSON format
data_drift_dataset_report.json()
```
Consultez le carnet de notes complet du DataCamp ici.
Conclusion
La dérive des données et des modèles peut poser des problèmes importants aux systèmes d'apprentissage automatique en production. En comprenant les causes et les effets de la dérive et en mettant en œuvre des pratiques efficaces de surveillance de la dérive, vous pouvez vous assurer que vos modèles d'apprentissage automatique restent précis et fiables au fil du temps.
Le suivi des performances de vos modèles, l'utilisation d'un modèle de détection des dérives et le recyclage régulier sur la base de données actualisées ne sont que quelques-unes des meilleures pratiques que vous pouvez suivre pour atténuer les risques de dérives. En étant proactif en matière de surveillance des dérives, vous pouvez vous assurer que votre système d'apprentissage automatique continue d'apporter de la valeur à votre organisation.
Le contrôle de la dérive des modèles d'apprentissage automatique n'est qu'un aspect d'un domaine plus vaste appelé MLOps. La compréhension des concepts MLOps est essentielle pour tout scientifique, ingénieur ou dirigeant de données afin de faire passer les modèles d'apprentissage automatique d'un bloc-notes local à un modèle fonctionnel en production.
Si vous souhaitez approfondir votre compréhension du MLOps et de la manière dont il peut vous être utile dans votre carrière, consultez notre cours sur les concepts du MLOps. Vous apprendrez ici ce qu'est le MLOps, vous comprendrez les différentes phases des processus MLOps et vous identifierez les différents niveaux de maturité du MLOps. Après avoir découvert les concepts essentiels de MLOps, vous serez bien équipé pour mettre en œuvre l'apprentissage automatique de manière continue, fiable et efficace.
FAQ sur la détection de la dérive
Qu'est-ce que la dérive des modèles d'apprentissage automatique ?
On parle de dérive d'un modèle d'apprentissage automatique lorsque les performances d'un modèle sur de nouvelles données sont différentes de celles qu'il a obtenues sur les données d'apprentissage sur lesquelles il a été construit. Cela peut se produire pour diverses raisons, notamment des changements dans la distribution des données au fil du temps, l'ajout de nouvelles données qui ne correspondent pas aux hypothèses du modèle original, ou l'incapacité du modèle à s'adapter à des conditions changeantes.
Pourquoi la dérive des modèles pose-t-elle problème ?
La dérive du modèle peut avoir un impact significatif sur les performances et la précision d'un modèle d'apprentissage automatique. Lorsque les prévisions du modèle deviennent moins fiables, elles peuvent conduire à des décisions ou à des actions incorrectes qui peuvent avoir des conséquences négatives. Par exemple, dans le domaine de la santé, la dérive des modèles peut conduire à des diagnostics ou à des recommandations de traitement erronés, tandis que dans le domaine financier, elle peut entraîner de mauvaises décisions d'investissement.
Comment détecter une dérive du modèle ?
Il existe plusieurs moyens de déterminer si un modèle dérive, tels que les tests statistiques, les algorithmes de détection de la dérive et l'examen de l'efficacité du modèle. Certaines de ces méthodes sont conçues pour détecter les dérives en temps réel, tandis que d'autres se prêtent mieux à des tests à heures fixes ou en groupe. Il est important de choisir la bonne technique pour l'application spécifique et l'environnement de données.
Comment prévenir la dérive des modèles ?
La prévention de la dérive des modèles nécessite une combinaison de sélection minutieuse des modèles, de contrôle et de test réguliers, et d'intervention proactive. Il peut s'agir d'utiliser des algorithmes plus résistants à la dérive, de recycler régulièrement les modèles sur la base de nouvelles données ou de mettre en œuvre des stratégies pour lutter activement contre la dérive lorsqu'elle est détectée. Il est également important de bien comprendre les facteurs qui peuvent provoquer des dérives afin de pouvoir prendre des mesures pour les éviter.
Comment la distribution des données affecte-t-elle la dérive du modèle ?
La distribution des données peut affecter de manière significative les performances d'un modèle d'apprentissage automatique. Si la distribution des données change au fil du temps, cela peut entraîner une dérive du modèle, car le modèle peut ne plus être en mesure de prédire avec précision les nouvelles données qui ne correspondent pas à ses hypothèses initiales. Cela peut se produire de différentes manières, par exemple par des variations naturelles des données, l'ajout de nouvelles sources de données ou des changements dans les processus ou systèmes sous-jacents qui génèrent les données.
La dérive des modèles est-elle réversible ?
Dans certains cas, la dérive du modèle peut être réversible en entraînant à nouveau le modèle sur de nouvelles données ou en ajustant ses paramètres. Cependant, cela n'est pas toujours possible, en particulier si la distribution des données a changé de manière significative ou si le modèle est devenu trop complexe ou spécialisé. Dans ces situations, il peut être nécessaire de recommencer avec un nouveau modèle.
Est-il possible d'éliminer complètement la dérive du modèle ?
Il est difficile, voire impossible, d'éliminer complètement la dérive des modèles. Même les modèles d'apprentissage automatique les plus robustes et les mieux conçus peuvent être affectés par des changements dans les données ou les processus sous-jacents qui les génèrent. La meilleure approche consiste à gérer et à atténuer l'impact de la dérive du modèle par un suivi régulier, des tests et des interventions.
Quel est l'impact de la dérive du modèle sur les performances du modèle ?
La dérive du modèle peut avoir un impact significatif sur les performances d'un modèle d'apprentissage automatique. Au fur et à mesure que les prédictions du modèle perdent de leur précision, elles peuvent entraîner une baisse des performances sur des paramètres importants tels que l'exactitude, la précision, le rappel et l'efficacité globale du modèle. Dans certains cas, la dérive du modèle peut même entraîner l'échec complet d'un modèle, ce qui se traduit par des prévisions incorrectes ou peu fiables.
Comment la dérive du modèle affecte-t-elle la précision du modèle ?
La dérive du modèle peut avoir un impact négatif sur la précision d'un modèle d'apprentissage automatique. Au fur et à mesure que les prédictions du modèle deviennent moins précises, elles peuvent conduire à des décisions ou des actions incorrectes, ce qui peut avoir des conséquences négatives dans les applications du monde réel. Par exemple, dans le domaine de la santé, la dérive des modèles peut conduire à des diagnostics ou à des recommandations de traitement erronés, tandis que dans le domaine financier, elle peut entraîner de mauvaises décisions d'investissement. Il est important de contrôler et de tester régulièrement la dérive du modèle afin d'en préserver la précision.
Obtenez une certification de haut niveau en matière d'IA
Cours MLOps
cours
Déploiement des MLOps et cycle de vie
cours