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

workspace
Workspace
Obligatoire

Espace de travail dans lequel créer l’objet DataDriftDetector.

name
str
valeur par défaut: None

Nom unique de l’objet DataDriftDetector.

baseline_dataset
TabularDataset
valeur par défaut: None

Jeu de données auquel comparer le jeu de données cible.

target_dataset
TabularDataset
valeur par défaut: None

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
valeur par défaut: None

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
str
valeur par défaut: None

Fréquence facultative indiquant la fréquence d’exécution du pipeline. Prend en charge « jour », « semaine » ou « mois ».

feature_list
list[str]
valeur par défaut: None

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
AlertConfiguration
valeur par défaut: None

Facultatif : objet de configuration pour les alertes DataDriftDetector.

drift_threshold
float
valeur par défaut: None

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
int
valeur par défaut: None

Délai d’affichage des données dans le jeu de données en heures.

workspace
Workspace
Obligatoire

Espace de travail dans lequel créer l’objet DataDriftDetector.

name
str
Obligatoire

Nom unique de l’objet DataDriftDetector.

baseline_dataset
TabularDataset
Obligatoire

Jeu de données auquel comparer le jeu de données cible.

target_dataset
TabularDataset
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
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
str
Obligatoire

Fréquence facultative indiquant la fréquence d’exécution du pipeline. Prend en charge « jour », « semaine » ou « mois ».

feature_list
list[str]
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
AlertConfiguration
Obligatoire

Facultatif : objet de configuration pour les alertes DataDriftDetector.

drift_threshold
float
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
int
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 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

start_date
datetime
Obligatoire

Date de début de la tâche de renvoi.

end_date
datetime
Obligatoire

Date de fin de la tâche de renvoi, incluse.

compute_target
ComputeTarget ou str
valeur par défaut: None

Facultatif : nom d’Azure Machine Learning ComputeTarget ou de ComputeTarget. DataDriftDetector créera une cible de calcul si None est spécifié.

create_compute_target
bool
valeur par défaut: False

Indique si une cible de calcul Azure Machine Learning est automatiquement créée.

Retours

Exécution DataDriftDetector.

Type de retour

Run

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

workspace
Workspace
Obligatoire

Espace de travail dans lequel créer l’objet DataDriftDetector.

name
str
Obligatoire

Nom unique de l’objet DataDriftDetector.

baseline_dataset
TabularDataset
Obligatoire

Jeu de données auquel comparer le jeu de données cible.

target_dataset
TabularDataset
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
valeur par défaut: None

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
str
valeur par défaut: None

Fréquence facultative indiquant la fréquence d’exécution du pipeline. Prend en charge « jour », « semaine » ou « mois ».

feature_list
list[str]
valeur par défaut: None

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
AlertConfiguration
valeur par défaut: None

Facultatif : objet de configuration pour les alertes DataDriftDetector.

drift_threshold
float
valeur par défaut: None

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
int
valeur par défaut: None

Délai d’affichage des données dans le jeu de données en heures.

Retours

Objet DataDriftDetector.

Type de retour

Exceptions

<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

wait_for_completion
bool
valeur par défaut: True

Indique s’il est nécessaire d’attendre la fin de l’opération de suppression.

disable_schedule

Désactive la planification de l’objet DataDriftDetector.

disable_schedule(wait_for_completion=True)

Paramètres

wait_for_completion
bool
valeur par défaut: True

Indique s’il est nécessaire d’attendre la fin de l’opération de désactivation.

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

create_compute_target
bool
valeur par défaut: False

Indique si une cible de calcul Azure Machine Learning est créée automatiquement.

wait_for_completion
bool
valeur par défaut: True

Indique s’il est nécessaire d’attendre la fin de l’opération d’activation.

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

workspace
Workspace
Obligatoire

Espace de travail dans lequel l’objet DataDriftDetector a été créé.

name
str
Obligatoire

Nom de l’objet DataDriftDetector à retourner.

Retours

Objet DataDriftDetector.

Type de retour

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

start_time
datetime, <xref:optional>
valeur par défaut: None

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.

end_time
datetime, <xref:optional>
valeur par défaut: None

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.

run_id
int, <xref:optional>
valeur par défaut: None

ID d’exécution spécifique.

Retours

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.

Type de retour

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

workspace
Workspace
Obligatoire

Espace de travail dans lequel les objets DataDriftDetector ont été créés.

baseline_dataset
TabularDataset
valeur par défaut: None

Jeu de données de référence pour filtrer la liste de retour.

target_dataset
TabularDataset
valeur par défaut: None

Jeu de données cible pour filtrer la liste de retour.

Retours

Liste des objets DataDriftDetector.

Type de retour

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

target_date
datetime
Obligatoire

Date cible du scoring des données, au format UTC.

compute_target
ComputeTarget ou str
valeur par défaut: None

Facultatif : nom d’Azure Machine Learning ComputeTarget ou de ComputeTarget. Si rien n’est spécifié, une cible de calcul est créée automatiquement.

create_compute_target
bool
valeur par défaut: False

Indique si une cible de calcul Azure Machine Learning est créée automatiquement.

feature_list
list[str]
valeur par défaut: None

Fonctionnalités facultatives autorisées pour exécuter la détection de la dérive de données.

drift_threshold
float
valeur par défaut: None

Facultatif : seuil d’activation des alertes DataDriftDetector.

Retours

Exécution DataDriftDetector.

Type de retour

Run

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

start_time
datetime, <xref:optional>
valeur par défaut: None

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.

end_time
datetime, <xref:optional>
valeur par défaut: None

Fin de la période de présentation, au format UTC. Par défaut, None correspond à la date du jour.

Retours

Dictionnaire de toutes les figures. La clé est service_name.

Type de retour

dict()

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

compute_target
ComputeTarget ou str
valeur par défaut: Ellipsis

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

feature_list
list[str]
valeur par défaut: Ellipsis

Fonctionnalités autorisées pour exécuter la détection de la dérive de données.

schedule_start
datetime
valeur par défaut: Ellipsis

Heure de début de la planification de la dérive de données au format UTC.

alert_config
AlertConfiguration
valeur par défaut: Ellipsis

Facultatif : objet de configuration pour les alertes DataDriftDetector.

drift_threshold
float
valeur par défaut: Ellipsis

Seuil d’activation des alertes DataDriftDetector.

wait_for_completion
bool
valeur par défaut: True

Indique s’il est nécessaire d’attendre que les opérations d’activation/de désactivation/de suppression se terminent.

Retours

self

Type de retour

Attributs

alert_config

Obtient la configuration d’alertes pour l’objet DataDriftDetector.

Retours

Objet AlertConfiguration.

Type de retour

baseline_dataset

Obtient le jeu de données de référence associé à l’objet DataDriftDetector.

Retours

Type de jeu de données du jeu de données de référence.

Type de retour

compute_target

Obtient la cible de calcul associée à l’objet DataDriftDetector.

Retours

La cible de calcul.

Type de retour

drift_threshold

Obtient le seuil de dérive associé à l’objet DataDriftDetector.

Retours

Seuil de dérive.

Type de retour

drift_type

Obtient le type de l’objet DataDriftDetector. « DatasetBased » est la seule valeur prise en charge pour le moment.

Retours

Type de l’objet DataDriftDetector.

Type de retour

str

enabled

Obtient la valeur booléenne indiquant si l’objet DataDriftDetector est activé.

Retours

Valeur booléenne ; True si activé.

Type de retour

feature_list

Obtient la liste des fonctionnalités autorisées pour l’objet DataDriftDetector.

Retours

Liste des noms des fonctionnalités.

Type de retour

frequency

Obtient la fréquence de planification de l’objet DataDriftDetector.

Retours

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

Type de retour

str

interval

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

Retours

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

Type de retour

int

latency

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

Retours

Nombre d’heures représentant la latence.

Type de retour

int

name

Obtient le nom de l’objet DataDriftDetector.

Retours

Nom de l’objet DataDriftDetector.

Type de retour

str

schedule_start

Obtient l’heure de début de la planification.

Retours

Objet DateTime de l’heure de début de la planification en heure au format UTC.

Type de retour

state

Indique l’état de la planification DataDriftDetector.

Retours

Soit « Disabled », « Enabled », « Deleted », « Disabling », « Enabling », « Deleting », « Failed », « DisableFailed », « EnableFailed » ou « DeleteFailed ».

Type de retour

str

target_dataset

Obtient le jeu de données cible associé à l’objet DataDriftDetector.

Retours

Type de jeu de données du jeu de données de référence.

Type de retour

workspace

Obtient l’espace de travail de l’objet DataDriftDetector.

Retours

Espace de travail dans lequel l’objet DataDriftDetector a été créé.

Type de retour