DataDriftDetector Classe
Définit une analyse de dérive de données qui peut être utilisée pour exécuter des tâches de dérive de données dans Azure Machine Learning.
La classe DataDriftDetector vous permet d’identifier la dérive d’une référence et d’un jeu de données cible donné. Pour créer un objet DataDriftDetector dans un espace de travail, spécifiez directement les jeux de données de référence et cible. Pour plus d’informations, consultez https://aka.ms/datadrift.
Constructeur Datadriftdetector.
Le constructeur DataDriftDetector est utilisé pour récupérer une représentation cloud d’un objet DataDriftDetector associé à l’espace de travail fourni.
- Héritage
-
builtins.objectDataDriftDetector
Constructeur
DataDriftDetector(workspace, name=None, baseline_dataset=None, target_dataset=None, compute_target=None, frequency=None, feature_list=None, alert_config=None, drift_threshold=None, latency=None)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Espace de travail dans lequel créer l’objet DataDriftDetector. |
name
|
Nom unique de l’objet DataDriftDetector. Valeur par défaut: None
|
baseline_dataset
|
Jeu de données auquel comparer le jeu de données cible. Valeur par défaut: None
|
target_dataset
|
Jeu de données pour lequel exécuter des tâches DataDrift adhoc ou planifiées. Doit être une série chronologique. Valeur par défaut: None
|
compute_target
|
ComputeTarget ou
str
Facultatif : nom d’Azure Machine Learning ComputeTarget ou de ComputeTarget. DataDriftDetector créera une cible de calcul si aucune n’est spécifiée. Valeur par défaut: None
|
frequency
|
Fréquence facultative indiquant la fréquence d’exécution du pipeline. Prend en charge « jour », « semaine » ou « mois ». Valeur par défaut: None
|
feature_list
|
Fonctionnalités facultatives autorisées pour exécuter la détection de la dérive de données. Les tâches DataDriftDetector s’exécutent sur toutes les fonctionnalités si Valeur par défaut: None
|
alert_config
|
Facultatif : objet de configuration pour les alertes DataDriftDetector. Valeur par défaut: None
|
drift_threshold
|
Facultatif : seuil d’activation des alertes DataDriftDetector. Elle doit être comprise entre 0 et 1. La valeur 0,2 est utilisée quand None est spécifié (valeur par défaut). Valeur par défaut: None
|
latency
|
Délai d’affichage des données dans le jeu de données en heures. Valeur par défaut: None
|
workspace
Obligatoire
|
Espace de travail dans lequel créer l’objet DataDriftDetector. |
name
Obligatoire
|
Nom unique de l’objet DataDriftDetector. |
baseline_dataset
Obligatoire
|
Jeu de données auquel comparer le jeu de données cible. |
target_dataset
Obligatoire
|
Jeu de données pour lequel exécuter des tâches DataDrift adhoc ou planifiées. Doit être une série chronologique. |
compute_target
Obligatoire
|
ComputeTarget ou
str
Facultatif : nom d’Azure Machine Learning ComputeTarget ou de ComputeTarget. DataDriftDetector créera une cible de calcul si aucune n’est spécifiée. |
frequency
Obligatoire
|
Fréquence facultative indiquant la fréquence d’exécution du pipeline. Prend en charge « jour », « semaine » ou « mois ». |
feature_list
Obligatoire
|
Fonctionnalités facultatives autorisées pour exécuter la détection de la dérive de données. Les tâches DataDriftDetector s’exécutent sur toutes les fonctionnalités si |
alert_config
Obligatoire
|
Facultatif : objet de configuration pour les alertes DataDriftDetector. |
drift_threshold
Obligatoire
|
Facultatif : seuil d’activation des alertes DataDriftDetector. Elle doit être comprise entre 0 et 1. La valeur 0,2 est utilisée quand None est spécifié (valeur par défaut). |
latency
Obligatoire
|
Délai d’affichage des données dans le jeu de données en heures. |
Remarques
Un objet DataDriftDetector représente une définition de tâche de dérive de données qui peut être utilisée pour exécuter trois types d’exécutions de travaux :
une exécution ad hoc pour analyser les données d’une journée spécifique (consultez la méthode run) ;
une exécution planifiée dans un pipeline (consultez la méthode enable_schedule) ;
une exécution de renvoi pour observer l’évolution des données dans le temps (consultez la méthode backfill).
Le modèle classique de création d’un objet DataDriftDetector est le suivant :
- Pour créer un objet DataDriftDetector basé sur un jeu de données, utilisez create_from_datasets
L’exemple suivant explique comment créer un objet DataDriftDetector basé sur un jeu de données.
from azureml.datadrift import DataDriftDetector, AlertConfiguration
alert_config = AlertConfiguration(['user@contoso.com']) # replace with your email to recieve alerts from the scheduled pipeline after enabling
monitor = DataDriftDetector.create_from_datasets(ws, 'weather-monitor', baseline, target,
compute_target='cpu-cluster', # compute target for scheduled pipeline and backfills
frequency='Week', # how often to analyze target data
feature_list=None, # list of features to detect drift on
drift_threshold=None, # threshold from 0 to 1 for email alerting
latency=0, # SLA in hours for target data to arrive in the dataset
alert_config=alert_config) # email addresses to send alert
Un exemple complet est disponible sur https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/datadrift-tutorial/datadrift-tutorial.ipynb
Le constructeur DataDriftDetector récupère un objet de dérive de données existant associé à l’espace de travail.
Méthodes
backfill |
Exécute une tâche de renvoi sur une date de début et de fin spécifiée. Pour plus d’informations sur les exécutions de renvoi de dérive de données, consultez https://aka.ms/datadrift. REMARQUE : le renvoi est pris en charge uniquement sur les objets DataDriftDetector basés sur des jeux de données. |
create_from_datasets |
Crée un nouvel objet DataDriftDetector à partir d’un jeu de données tabulaire de référence et d’un jeu de données de série chronologique cible. |
delete |
Supprime la planification de l’objet DataDriftDetector. |
disable_schedule |
Désactive la planification de l’objet DataDriftDetector. |
enable_schedule |
Crée une planification pour exécuter le travail DataDriftDetector basé sur un jeu de données. |
get_by_name |
Récupère un objet DataDriftDetector unique pour un espace de travail et un nom donnés. |
get_output |
Obtient un tuple des résultats de dérive et des métriques pour un objet DataDriftDetector spécifique sur une période donnée. |
list |
Obtient une liste des objets DataDriftDetector pour l’espace de travail spécifié, ainsi que le jeu de données facultatif.
REMARQUE : en transmettant uniquement le paramètre |
run |
Exécute une analyse de la dérive de données à un moment unique dans le temps. |
show |
Affiche la tendance de la dérive de données dans l’intervalle de temps donné. Par défaut, cette méthode affiche les 10 cycles les plus récents. Par exemple, si la fréquence est définie sur « jour », il s’agit des 10 derniers jours. Si la fréquence est définie sur « semaine », il s’agit des 10 dernières semaines. |
update |
Met à jour la planification associée à l’objet DataDriftDetector. Les valeurs des paramètres facultatifs peuvent être définies sur |
backfill
Exécute une tâche de renvoi sur une date de début et de fin spécifiée.
Pour plus d’informations sur les exécutions de renvoi de dérive de données, consultez https://aka.ms/datadrift.
REMARQUE : le renvoi est pris en charge uniquement sur les objets DataDriftDetector basés sur des jeux de données.
backfill(start_date, end_date, compute_target=None, create_compute_target=False)
Paramètres
Nom | Description |
---|---|
start_date
Obligatoire
|
Date de début de la tâche de renvoi. |
end_date
Obligatoire
|
Date de fin de la tâche de renvoi, incluse. |
compute_target
|
ComputeTarget ou
str
Facultatif : nom d’Azure Machine Learning ComputeTarget ou de ComputeTarget. DataDriftDetector créera une cible de calcul si None est spécifié. Valeur par défaut: None
|
create_compute_target
|
Indique si une cible de calcul Azure Machine Learning est automatiquement créée. Valeur par défaut: False
|
Retours
Type | Description |
---|---|
Exécution DataDriftDetector. |
create_from_datasets
Crée un nouvel objet DataDriftDetector à partir d’un jeu de données tabulaire de référence et d’un jeu de données de série chronologique cible.
static create_from_datasets(workspace, name, baseline_dataset, target_dataset, compute_target=None, frequency=None, feature_list=None, alert_config=None, drift_threshold=None, latency=None)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Espace de travail dans lequel créer l’objet DataDriftDetector. |
name
Obligatoire
|
Nom unique de l’objet DataDriftDetector. |
baseline_dataset
Obligatoire
|
Jeu de données auquel comparer le jeu de données cible. |
target_dataset
Obligatoire
|
Jeu de données pour lequel exécuter des tâches DataDrift adhoc ou planifiées. Doit être une série chronologique. |
compute_target
|
ComputeTarget ou
str
Facultatif : nom d’Azure Machine Learning ComputeTarget ou de ComputeTarget. DataDriftDetector créera une cible de calcul si aucune n’est spécifiée. Valeur par défaut: None
|
frequency
|
Fréquence facultative indiquant la fréquence d’exécution du pipeline. Prend en charge « jour », « semaine » ou « mois ». Valeur par défaut: None
|
feature_list
|
Fonctionnalités facultatives autorisées pour exécuter la détection de la dérive de données. Les tâches DataDriftDetector s’exécutent sur toutes les fonctionnalités si Valeur par défaut: None
|
alert_config
|
Facultatif : objet de configuration pour les alertes DataDriftDetector. Valeur par défaut: None
|
drift_threshold
|
Facultatif : seuil d’activation des alertes DataDriftDetector. Elle doit être comprise entre 0 et 1. La valeur 0,2 est utilisée quand None est spécifié (valeur par défaut). Valeur par défaut: None
|
latency
|
Délai d’affichage des données dans le jeu de données en heures. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Objet DataDriftDetector. |
Exceptions
Type | Description |
---|---|
<xref:KeyError>, <xref:TypeError>, <xref:ValueError>
|
Remarques
Les objets DataDriftDetector basés sur des jeux de données vous permettent de calculer la dérive de données entre un jeu de données de référence, qui doit être un TabularDataset, et un jeu de données cible, qui doit être un jeu de données de série chronologique. Un jeu de données de série chronologique est simplement un TabularDataset avec la propriété fine_grain_timestamp. L’objet DataDriftDetector peut ensuite exécuter des tâches ad hoc ou planifiées pour déterminer si le jeu de données cible a été dérivé du jeu de données de référence.
from azureml.core import Workspace, Dataset
from azureml.datadrift import DataDriftDetector
ws = Workspace.from_config()
baseline = Dataset.get_by_name(ws, 'my_baseline_dataset')
target = Dataset.get_by_name(ws, 'my_target_dataset')
detector = DataDriftDetector.create_from_datasets(workspace=ws,
name="my_unique_detector_name",
baseline_dataset=baseline,
target_dataset=target,
compute_target_name='my_compute_target',
frequency="Day",
feature_list=['my_feature_1', 'my_feature_2'],
alert_config=AlertConfiguration(email_addresses=['user@contoso.com']),
drift_threshold=0.3,
latency=1)
delete
Supprime la planification de l’objet DataDriftDetector.
delete(wait_for_completion=True)
Paramètres
Nom | Description |
---|---|
wait_for_completion
|
Indique s’il est nécessaire d’attendre la fin de l’opération de suppression. Valeur par défaut: True
|
disable_schedule
Désactive la planification de l’objet DataDriftDetector.
disable_schedule(wait_for_completion=True)
Paramètres
Nom | Description |
---|---|
wait_for_completion
|
Indique s’il est nécessaire d’attendre la fin de l’opération de désactivation. Valeur par défaut: True
|
enable_schedule
Crée une planification pour exécuter le travail DataDriftDetector basé sur un jeu de données.
enable_schedule(create_compute_target=False, wait_for_completion=True)
Paramètres
Nom | Description |
---|---|
create_compute_target
|
Indique si une cible de calcul Azure Machine Learning est créée automatiquement. Valeur par défaut: False
|
wait_for_completion
|
Indique s’il est nécessaire d’attendre la fin de l’opération d’activation. Valeur par défaut: True
|
get_by_name
Récupère un objet DataDriftDetector unique pour un espace de travail et un nom donnés.
static get_by_name(workspace, name)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Espace de travail dans lequel l’objet DataDriftDetector a été créé. |
name
Obligatoire
|
Nom de l’objet DataDriftDetector à retourner. |
Retours
Type | Description |
---|---|
Objet DataDriftDetector. |
get_output
Obtient un tuple des résultats de dérive et des métriques pour un objet DataDriftDetector spécifique sur une période donnée.
get_output(start_time=None, end_time=None, run_id=None)
Paramètres
Nom | Description |
---|---|
start_time
|
datetime, <xref:optional>
Heure de début de la fenêtre de résultats au format UTC. Si None (valeur par défaut) est spécifié, les résultats les plus récents du dixième cycle sont utilisés comme heure de début. Par exemple, si la fréquence de dérive des données est définie sur « jour », Valeur par défaut: None
|
end_time
|
datetime, <xref:optional>
Heure de fin de la fenêtre de résultats au format UTC. Si None (valeur par défaut) est spécifié, l’heure actuelle au format UTC est utilisée comme heure de fin. Valeur par défaut: None
|
run_id
|
int, <xref:optional>
ID d’exécution spécifique. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Un tuple d’une liste de résultats de dérive et une liste de jeux de données individuels et de métriques en colonnes. |
Remarques
Cette méthode retourne un tuple de résultats et de métriques de dérive pour une période ou un ID d’exécution en fonction du type d’exécution : une exécution ad hoc, une exécution planifiée et une exécution de renvoi.
Vous pouvez récupérer les résultats de l’exécution ad hoc d’une seule manière :
run_id
doit être un GUID valide.Vous pouvez récupérer les résultats des exécutions planifiées et des exécutions de renvoi de deux manières différentes : attribuer un GUID valide à un
run_id
ou attribuer unestart_time
et/ouend_time
spécifique (inclusivement) tout en laissantrun_id
sur la valeur None.Si
run_id
,start_time
etend_time
ne sont pas définis sur None dans le même appel de méthode, une exception de validation de paramètre est levée.
REMARQUE : spécifiez les paramètres start_time
et end_time
ou le paramètre run_id
, mais pas les deux.
Il peut y avoir plusieurs résultats pour la même date cible (la date cible correspond à la date de début du jeu de données cible pour la dérive basée sur un jeu de données). Il est donc nécessaire d’identifier et de gérer les résultats dupliqués.
Pour la dérive basée sur un jeu de données, si les résultats concernent la même date cible, il s’agit de résultats dupliqués.
La méthode get_output
supprimera les résultats dupliqués selon une règle : toujours récupérer les résultats générés les plus récents.
La méthode get_output
peut être utilisée pour récupérer toutes les sorties ou sorties partielles des exécutions planifiées dans une intervalle de temps spécifique compris entre start_time
et end_time
(limite incluse). Vous pouvez également limiter les résultats d’une requête ad hoc individuelle en spécifiant run_id
.
Utilisez les instructions suivantes pour interpréter les résultats retournés par la méthode get_output
:
Le principe de filtrage est le « chevauchement » : tant qu’il y a un chevauchement entre l’heure réelle du résultat (basée sur un jeu de données : jeu de données cible [date de début, date de fin]) et l’heure [
start_time
,end_time
] donnée, le résultat est récupéré.S’il existe plusieurs sorties pour une date cible parce que le calcul de la dérive a été exécuté plusieurs fois le même jour, seule la dernière sortie est récupérée par défaut.
Étant donné qu’il existe plusieurs types d’une instance de dérive de données, le contenu des résultats peut être différent.
Pour les résultats basés sur un jeu de données, la sortie se présente comme suit :
results : [{'drift_type': 'DatasetBased',
'result':[{'has_drift': True, 'drift_threshold': 0.3,
'start_date': '2019-04-03', 'end_date': '2019-04-04',
'base_dataset_id': '4ac144ef-c86d-4c81-b7e5-ea6bbcd2dc7d',
'target_dataset_id': '13445141-aaaa-bbbb-cccc-ea23542bcaf9'}]}]
metrics : [{'drift_type': 'DatasetBased',
'metrics': [{'schema_version': '0.1',
'start_date': '2019-04-03', 'end_date': '2019-04-04',
'baseline_dataset_id': '4ac144ef-c86d-4c81-b7e5-ea6bbcd2dc7d',
'target_dataset_id': '13445141-aaaa-bbbb-cccc-ea23542bcaf9'
'dataset_metrics': [{'name': 'datadrift_coefficient', 'value': 0.53459}],
'column_metrics': [{'feature1': [{'name': 'datadrift_contribution',
'value': 288.0},
{'name': 'wasserstein_distance',
'value': 4.858040000000001},
{'name': 'energy_distance',
'value': 2.7204799576545313}]}]}]}]
list
Obtient une liste des objets DataDriftDetector pour l’espace de travail spécifié, ainsi que le jeu de données facultatif.
REMARQUE : en transmettant uniquement le paramètre workspace
, on obtient tous les objets DataDriftDetector définis dans l'espace de travail.
static list(workspace, baseline_dataset=None, target_dataset=None)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Espace de travail dans lequel les objets DataDriftDetector ont été créés. |
baseline_dataset
|
Jeu de données de référence pour filtrer la liste de retour. Valeur par défaut: None
|
target_dataset
|
Jeu de données cible pour filtrer la liste de retour. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Liste des objets DataDriftDetector. |
run
Exécute une analyse de la dérive de données à un moment unique dans le temps.
run(target_date, compute_target=None, create_compute_target=False, feature_list=None, drift_threshold=None)
Paramètres
Nom | Description |
---|---|
target_date
Obligatoire
|
Date cible du scoring des données, au format UTC. |
compute_target
|
ComputeTarget ou
str
Facultatif : nom d’Azure Machine Learning ComputeTarget ou de ComputeTarget. Si rien n’est spécifié, une cible de calcul est créée automatiquement. Valeur par défaut: None
|
create_compute_target
|
Indique si une cible de calcul Azure Machine Learning est créée automatiquement. Valeur par défaut: False
|
feature_list
|
Fonctionnalités facultatives autorisées pour exécuter la détection de la dérive de données. Valeur par défaut: None
|
drift_threshold
|
Facultatif : seuil d’activation des alertes DataDriftDetector. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Exécution DataDriftDetector. |
show
Affiche la tendance de la dérive de données dans l’intervalle de temps donné.
Par défaut, cette méthode affiche les 10 cycles les plus récents. Par exemple, si la fréquence est définie sur « jour », il s’agit des 10 derniers jours. Si la fréquence est définie sur « semaine », il s’agit des 10 dernières semaines.
show(start_time=None, end_time=None)
Paramètres
Nom | Description |
---|---|
start_time
|
datetime, <xref:optional>
Début de la période de présentation, au format UTC. La valeur par défaut None signifie que les résultats les plus récents du dixième cycle sont sélectionnés. Valeur par défaut: None
|
end_time
|
datetime, <xref:optional>
Fin de la période de présentation, au format UTC. Par défaut, None correspond à la date du jour. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
dict()
|
Dictionnaire de toutes les figures. La clé est service_name. |
update
Met à jour la planification associée à l’objet DataDriftDetector.
Les valeurs des paramètres facultatifs peuvent être définies sur None
, sinon elles reprennent par défaut leurs valeurs existantes.
update(compute_target=Ellipsis, feature_list=Ellipsis, schedule_start=Ellipsis, alert_config=Ellipsis, drift_threshold=Ellipsis, wait_for_completion=True)
Paramètres
Nom | Description |
---|---|
compute_target
|
ComputeTarget ou
str
Facultatif : nom d’Azure Machine Learning ComputeTarget ou de ComputeTarget. DataDriftDetector crée une cible de calcul si ce paramètre n’est pas spécifié. Valeur par défaut: Ellipsis
|
feature_list
|
Fonctionnalités autorisées pour exécuter la détection de la dérive de données. Valeur par défaut: Ellipsis
|
schedule_start
|
Heure de début de la planification de la dérive de données au format UTC. Valeur par défaut: Ellipsis
|
alert_config
|
Facultatif : objet de configuration pour les alertes DataDriftDetector. Valeur par défaut: Ellipsis
|
drift_threshold
|
Seuil d’activation des alertes DataDriftDetector. Valeur par défaut: Ellipsis
|
wait_for_completion
|
Indique s’il est nécessaire d’attendre que les opérations d’activation/de désactivation/de suppression se terminent. Valeur par défaut: True
|
Retours
Type | Description |
---|---|
self |
Attributs
alert_config
Obtient la configuration d’alertes pour l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Objet AlertConfiguration. |
baseline_dataset
Obtient le jeu de données de référence associé à l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Type de jeu de données du jeu de données de référence. |
compute_target
Obtient la cible de calcul associée à l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
La cible de calcul. |
drift_threshold
Obtient le seuil de dérive associé à l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Seuil de dérive. |
drift_type
Obtient le type de l’objet DataDriftDetector. « DatasetBased » est la seule valeur prise en charge pour le moment.
Retours
Type | Description |
---|---|
Type de l’objet DataDriftDetector. |
enabled
Obtient la valeur booléenne indiquant si l’objet DataDriftDetector est activé.
Retours
Type | Description |
---|---|
Valeur booléenne ; True si activé. |
feature_list
Obtient la liste des fonctionnalités autorisées pour l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Liste des noms des fonctionnalités. |
frequency
Obtient la fréquence de planification de l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Chaîne « jour », « semaine » ou « mois » |
interval
Obtient l’intervalle de planification de l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Valeur entière de l’unité de temps. |
latency
Obtient la latence des tâches de planification DataDriftDetector (en heures).
Retours
Type | Description |
---|---|
Nombre d’heures représentant la latence. |
name
Obtient le nom de l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Nom de l’objet DataDriftDetector. |
schedule_start
Obtient l’heure de début de la planification.
Retours
Type | Description |
---|---|
Objet DateTime de l’heure de début de la planification en heure au format UTC. |
state
Indique l’état de la planification DataDriftDetector.
Retours
Type | Description |
---|---|
Soit « Disabled », « Enabled », « Deleted », « Disabling », « Enabling », « Deleting », « Failed », « DisableFailed », « EnableFailed » ou « DeleteFailed ». |
target_dataset
Obtient le jeu de données cible associé à l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Type de jeu de données du jeu de données de référence. |
workspace
Obtient l’espace de travail de l’objet DataDriftDetector.
Retours
Type | Description |
---|---|
Espace de travail dans lequel l’objet DataDriftDetector a été créé. |