Partager via


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.object
DataDriftDetector

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
str

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

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
str

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 feature_list n’est pas spécifié. La liste de caractéristiques peut contenir des caractères, des chiffres, des tirets et des espaces. La longueur de la liste doit être inférieure à 200.

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
int

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
str

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

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
str

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 feature_list n’est pas spécifié. La liste de caractéristiques peut contenir des caractères, des chiffres, des tirets et des espaces. La longueur de la liste doit être inférieure à 200.

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
int

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 workspace, on obtient tous les objets DataDriftDetector définis dans l'espace de travail.

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 None, sinon elles reprennent par défaut leurs valeurs existantes.

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

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
Run

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
str

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

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
str

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 feature_list n’est pas spécifié. La liste de caractéristiques peut contenir des caractères, des chiffres, des tirets et des espaces. La longueur de la liste doit être inférieure à 200.

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
int

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
str

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 », start_time est de 10 jours. Si la fréquence est définie sur « semaine », start_time est de 10 semaines.

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 une start_time et/ou end_time spécifique (inclusivement) tout en laissant run_id sur la valeur None.

  • Si run_id, start_time et end_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

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
Run

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

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
str

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
str

Chaîne « jour », « semaine » ou « mois »

interval

Obtient l’intervalle de planification de l’objet DataDriftDetector.

Retours

Type Description
int

Valeur entière de l’unité de temps.

latency

Obtient la latence des tâches de planification DataDriftDetector (en heures).

Retours

Type Description
int

Nombre d’heures représentant la latence.

name

Obtient le nom de l’objet DataDriftDetector.

Retours

Type Description
str

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
str

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