DataDriftDetector Clase

Define un monitor de desfase de datos que se puede usar para ejecutar trabajos de desfase de datos en Azure Machine Learning.

La clase DataDriftDetector permite identificar el desfase entre una base de referencia determinada y un conjunto de datos de destino. Un objeto DataDriftDetector se crea en un área de trabajo especificando directamente la base de referencia y el conjunto de datos de destino. Para obtener más información, vea https://aka.ms/datadrift.

Constructor datadriftdetector.

El constructor DataDriftDetector se usa para recuperar una representación en la nube de un objeto DataDriftDetector asociado al área de trabajo proporcionada.

Herencia
builtins.object
DataDriftDetector

Constructor

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)

Parámetros

workspace
Workspace
Requerido

Área de trabajo en la que se va a crear el objeto DataDriftDetector.

name
str
valor predeterminado: None

Nombre único del objeto DataDriftDetector.

baseline_dataset
TabularDataset
valor predeterminado: None

Conjunto de datos con el que se compara el conjunto de datos de destino.

target_dataset
TabularDataset
valor predeterminado: None

Conjunto de datos para el que se ejecutan trabajos de DataDrift programados o adhoc. Debe ser una serie temporal.

compute_target
ComputeTarget o str
valor predeterminado: None

ComputeTarget o nombre de ComputeTarget de Azure Machine Learning opcionales. DataDriftDetector creará un destino de proceso si no se especifica uno.

frequency
str
valor predeterminado: None

Frecuencia opcional que indica cada cuánto se ejecuta la canalización. Admite "Day", "Week" o "Month".

feature_list
list[str]
valor predeterminado: None

Características opcionales en la lista permitida en las que se va a ejecutar la detección del desfase de datos. Los trabajos de DataDriftDetector se ejecutarán en todas las características si feature_list no se especifica. La lista de características puede contener caracteres, números, guiones y espacios en blanco. La longitud de la lista debe ser inferior a 200.

alert_config
AlertConfiguration
valor predeterminado: None

Objeto de configuración opcional para las alertas de DataDriftDetector.

drift_threshold
float
valor predeterminado: None

Umbral opcional para habilitar las alertas de DataDriftDetector. El valor debe estar entre 0 y 1. Se usa un valor de 0,2 cuando se especifica None (valor predeterminado).

latency
int
valor predeterminado: None

Retraso en horas para que los datos aparezcan en el conjunto de datos.

workspace
Workspace
Requerido

Área de trabajo en la que se va a crear el objeto DataDriftDetector.

name
str
Requerido

Nombre único del objeto DataDriftDetector.

baseline_dataset
TabularDataset
Requerido

Conjunto de datos con el que se compara el conjunto de datos de destino.

target_dataset
TabularDataset
Requerido

Conjunto de datos para el que se ejecutan trabajos de DataDrift programados o adhoc. Debe ser una serie temporal.

compute_target
ComputeTarget o str
Requerido

ComputeTarget o nombre de ComputeTarget de Azure Machine Learning opcionales. DataDriftDetector creará un destino de proceso si no se especifica uno.

frequency
str
Requerido

Frecuencia opcional que indica cada cuánto se ejecuta la canalización. Admite "Day", "Week" o "Month".

feature_list
list[str]
Requerido

Características opcionales en la lista permitida en las que se va a ejecutar la detección del desfase de datos. Los trabajos de DataDriftDetector se ejecutarán en todas las características si feature_list no se especifica. La lista de características puede contener caracteres, números, guiones y espacios en blanco. La longitud de la lista debe ser inferior a 200.

alert_config
AlertConfiguration
Requerido

Objeto de configuración opcional para las alertas de DataDriftDetector.

drift_threshold
float
Requerido

Umbral opcional para habilitar las alertas de DataDriftDetector. El valor debe estar entre 0 y 1. Se usa un valor de 0,2 cuando se especifica None (valor predeterminado).

latency
int
Requerido

Retraso en horas para que los datos aparezcan en el conjunto de datos.

Comentarios

Un objeto DataDriftDetector representa una definición de trabajo de desfase de datos que se puede usar para ejecutar tres tipos de ejecución de trabajo:

  • Una ejecución adhoc para analizar los datos de un día específico; consulte el método run.

  • Una ejecución programada en una canalización; consulte el método enable_schedule.

  • una ejecución de reposición para ver cómo cambian los datos con el tiempo; consulte el método backfill.

El patrón típico para crear un objeto DataDriftDetector es:

El siguiente ejemplo muestra cómo crear un objeto DataDriftDetector basado en un conjunto de datos.


   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

El ejemplo completo está disponible en https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/datadrift-tutorial/datadrift-tutorial.ipynb.

El constructor de DataDriftDetector recupera un objeto de desfase de datos existente asociado al área de trabajo.

Métodos

backfill

Ejecuta un trabajo de reposición durante una fecha de inicio y finalización especificadas.

Consulte https://aka.ms/datadrift para obtener más información sobre las ejecuciones de reposición de desfase de datos.

NOTA: La reposición solo se admite en objetos DataDriftDetector basados en conjuntos de datos.

create_from_datasets

Crea un nuevo objeto DataDriftDetector a partir de un conjunto de datos tabular de línea de base y un conjunto de datos de serie temporal de destino.

delete

Elimina la programación del objeto DataDriftDetector.

disable_schedule

Deshabilita la programación del objeto DataDriftDetector.

enable_schedule

Crea una programación para ejecutar el trabajo DataDriftDetector basado en el conjunto de datos.

get_by_name

Recupera un objeto DataDriftDetector único para un área de trabajo y un nombre determinados.

get_output

Obtiene una tupla de los resultados de desfase y las métricas de un objeto DataDriftDetector específico durante un período de tiempo determinado.

list

Obtiene una lista de objetos DataDriftDetector para el área de trabajo especificada y el conjunto de datos opcional.

NOTA: Pasar solo el parámetro workspace devolverá todos los objetos DataDriftDetector, definidos en el área de trabajo.

run

Ejecuta un único análisis de desfase de datos a un momento dado.

show

Muestra la tendencia de desviación de datos en un intervalo de tiempo determinado.

De manera predeterminada, este método muestra los 10 ciclos más recientes. Por ejemplo, si la frecuencia es de días, serán los 10 días más recientes. Por ejemplo, si la frecuencia está en semana, serán las 10 semanas más recientes.

update

Actualice la programación asociada al objeto DataDriftDetector.

Los valores de parámetro opcionales se pueden establecer en None; de lo contrario, tienen como valor predeterminado sus valores existentes.

backfill

Ejecuta un trabajo de reposición durante una fecha de inicio y finalización especificadas.

Consulte https://aka.ms/datadrift para obtener más información sobre las ejecuciones de reposición de desfase de datos.

NOTA: La reposición solo se admite en objetos DataDriftDetector basados en conjuntos de datos.

backfill(start_date, end_date, compute_target=None, create_compute_target=False)

Parámetros

start_date
datetime
Requerido

Fecha de inicio del trabajo de reposición.

end_date
datetime
Requerido

Fecha de finalización del trabajo de reposición, inclusive.

compute_target
ComputeTarget o str
valor predeterminado: None

ComputeTarget o nombre de ComputeTarget de Azure Machine Learning opcionales. DataDriftDetector creará un destino de proceso si no se especifica ninguno.

create_compute_target
bool
valor predeterminado: False

Indica si se crea un destino de proceso de Azure Machine Learning de forma automática.

Devoluciones

Una ejecución de DataDriftDetector.

Tipo de valor devuelto

Run

create_from_datasets

Crea un nuevo objeto DataDriftDetector a partir de un conjunto de datos tabular de línea de base y un conjunto de datos de serie temporal de destino.

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)

Parámetros

workspace
Workspace
Requerido

Área de trabajo en la que se creará el objeto DataDriftDetector.

name
str
Requerido

Nombre único del objeto DataDriftDetector.

baseline_dataset
TabularDataset
Requerido

Conjunto de datos con el que se compara el conjunto de datos de destino.

target_dataset
TabularDataset
Requerido

Conjunto de datos para el que se ejecutan trabajos de DataDrift programados o adhoc. Debe ser una serie temporal.

compute_target
ComputeTarget o str
valor predeterminado: None

ComputeTarget o nombre de ComputeTarget de Azure Machine Learning opcionales. DataDriftDetector creará un destino de proceso si no se especifica uno.

frequency
str
valor predeterminado: None

Frecuencia opcional que indica cada cuánto se ejecuta la canalización. Admite "Day", "Week" o "Month".

feature_list
list[str]
valor predeterminado: None

Características opcionales en la lista permitida en las que se va a ejecutar la detección del desfase de datos. Los trabajos de DataDriftDetector se ejecutarán en todas las características si feature_list no se especifica. La lista de características puede contener caracteres, números, guiones y espacios en blanco. La longitud de la lista debe ser inferior a 200.

alert_config
AlertConfiguration
valor predeterminado: None

Objeto de configuración opcional para las alertas de DataDriftDetector.

drift_threshold
float
valor predeterminado: None

Umbral opcional para habilitar las alertas de DataDriftDetector. El valor debe estar entre 0 y 1. Se usa un valor de 0,2 cuando se especifica None (valor predeterminado).

latency
int
valor predeterminado: None

Retraso en horas para que los datos aparezcan en el conjunto de datos.

Devoluciones

Objeto DataDriftDetector.

Tipo de valor devuelto

Excepciones

<xref:KeyError>, <xref:TypeError>, <xref:ValueError>

Comentarios

Los objetos DataDriftDetector basados en conjuntos de datos permiten calcular el desfase de datos entre un conjunto de datos de línea de base, que deben ser TabularDataset, y un conjunto de datos de destino, que debe ser un conjunto de datos de serie temporal. Un conjunto de datos de serie temporal es simplemente TabularDataset con la propiedad fine_grain_timestamp. DataDriftDetector puede ejecutar trabajos programados o adhoc para determinar si el conjunto de datos de destino se ha desfasado del conjunto de datos de línea de base.


   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

Elimina la programación del objeto DataDriftDetector.

delete(wait_for_completion=True)

Parámetros

wait_for_completion
bool
valor predeterminado: True

Si se debe esperar a que se complete la operación de eliminación.

disable_schedule

Deshabilita la programación del objeto DataDriftDetector.

disable_schedule(wait_for_completion=True)

Parámetros

wait_for_completion
bool
valor predeterminado: True

Si se debe esperar a que se complete la operación de deshabilitación.

enable_schedule

Crea una programación para ejecutar el trabajo DataDriftDetector basado en el conjunto de datos.

enable_schedule(create_compute_target=False, wait_for_completion=True)

Parámetros

create_compute_target
bool
valor predeterminado: False

Indica si se crea un destino de proceso de Azure Machine Learning de forma automática.

wait_for_completion
bool
valor predeterminado: True

Si se debe esperar a que se complete la operación de habilitación.

get_by_name

Recupera un objeto DataDriftDetector único para un área de trabajo y un nombre determinados.

static get_by_name(workspace, name)

Parámetros

workspace
Workspace
Requerido

Área de trabajo donde se creó DataDriftDetector.

name
str
Requerido

Nombre del objeto DataDriftDetector que se va a devolver.

Devoluciones

Objeto DataDriftDetector.

Tipo de valor devuelto

get_output

Obtiene una tupla de los resultados de desfase y las métricas de un objeto DataDriftDetector específico durante un período de tiempo determinado.

get_output(start_time=None, end_time=None, run_id=None)

Parámetros

start_time
datetime, <xref:optional>
valor predeterminado: None

Hora de inicio de la ventana de resultados, en UTC. Si se especifica None (valor predeterminado), los resultados del 10.º ciclo más reciente se usan como hora de inicio. Por ejemplo, si la frecuencia de la programación del desfase de datos es en días, entonces start_time es de 10 días. Si la frecuencia es en semanas, entonces start_time es 10 semanas.

end_time
datetime, <xref:optional>
valor predeterminado: None

Hora de finalización de la ventana de resultados, en UTC. Si se especifica None (valor predeterminado), se usa la hora UTC del día actual como hora de finalización.

run_id
int, <xref:optional>
valor predeterminado: None

Un identificador de ejecución específico.

Devoluciones

Una tupla de una lista de resultados de desfase y una lista de métricas de conjuntos de datos individuales y columnas.

Tipo de valor devuelto

Comentarios

Este método devuelve una tupla de resultados de desfase y métricas para un período de tiempo o un identificador de ejecución en función del tipo de ejecución: una ejecución adhoc, una ejecución programada y una ejecución de reposición.

  • Para recuperar los resultados de la ejecución adhoc, solo hay una manera: run_id debe ser un GUID válido.

  • Para recuperar las ejecuciones programadas y los resultados de la ejecución de reposición, hay dos maneras diferentes: asignar un GUID válido a run_id, o asignar un start_time específico o end_time (inclusivo) mientras se mantiene run_id como None.

  • Si run_id, start_time y end_time no son None en la misma llamada de método, se produce una excepción de validación de parámetros.

NOTA: Especifique los parámetros start_time y end_time o el parámetro run_id, pero no ambos.

Es posible que haya varios resultados para la misma fecha de destino (la fecha de destino significa la fecha de inicio del conjunto de datos de destino para el desfase basado en el conjunto de datos). Por lo tanto, es necesario identificar y controlar los resultados duplicados. En el caso del desfase basado en el conjunto de datos, si los resultados son para la misma fecha de destino, son resultados duplicados. El método get_output desduplicará los resultados duplicados por una regla: siempre recoge los resultados generados más recientes.

El método get_output se puede usar para recuperar todas las salidas o las salidas parciales de ejecuciones programadas en un intervalo de tiempo específico entre start_time y end_time (límite incluido). También puede limitar los resultados de una ejecución adhoc individual si especifica run_id.

Use las siguientes directrices para ayudar a interpretar los resultados devueltos desde el método get_output:

  • El principio de filtrado es la "superposición": siempre que haya una superposición entre la hora del resultado real (basada en el conjunto de datos: conjunto de datos de destino [fecha de inicio, fecha de finalización]) y el [start_time, end_time] especificado, se seleccionará el resultado.

  • Si hay varias salidas para una fecha de destino porque el cálculo de desviación se ejecutó varias veces en ese día, solo se seleccionará la salida más reciente de forma predeterminada.

  • Dado que hay varios tipos de una instancia de desfase de datos, el contenido del resultado podría ser diverso.

Para los resultados basados en el conjunto de datos, la salida tendrá el siguiente aspecto:


   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

Obtiene una lista de objetos DataDriftDetector para el área de trabajo especificada y el conjunto de datos opcional.

NOTA: Pasar solo el parámetro workspace devolverá todos los objetos DataDriftDetector, definidos en el área de trabajo.

static list(workspace, baseline_dataset=None, target_dataset=None)

Parámetros

workspace
Workspace
Requerido

Área de trabajo donde se crearon los objetos DataDriftDetector.

baseline_dataset
TabularDataset
valor predeterminado: None

Conjunto de datos de línea de base para filtrar la lista de valores devueltos.

target_dataset
TabularDataset
valor predeterminado: None

Conjunto de datos de destino para filtrar la lista devuelta.

Devoluciones

Lista de objetos DataDriftDetector.

Tipo de valor devuelto

run

Ejecuta un único análisis de desfase de datos a un momento dado.

run(target_date, compute_target=None, create_compute_target=False, feature_list=None, drift_threshold=None)

Parámetros

target_date
datetime
Requerido

Fecha de destino de los datos de puntuación en UTC.

compute_target
ComputeTarget o str
valor predeterminado: None

ComputeTarget o nombre de ComputeTarget de Azure Machine Learning opcionales. Si no se especifica, se crea automáticamente un destino de proceso.

create_compute_target
bool
valor predeterminado: False

Indica si se crea un destino de proceso de Azure Machine Learning de forma automática.

feature_list
list[str]
valor predeterminado: None

Características opcionales en la lista permitida en las que se va a ejecutar la detección del desfase de datos.

drift_threshold
float
valor predeterminado: None

Umbral opcional para habilitar las alertas de DataDriftDetector.

Devoluciones

Una ejecución de DataDriftDetector.

Tipo de valor devuelto

Run

show

Muestra la tendencia de desviación de datos en un intervalo de tiempo determinado.

De manera predeterminada, este método muestra los 10 ciclos más recientes. Por ejemplo, si la frecuencia es de días, serán los 10 días más recientes. Por ejemplo, si la frecuencia está en semana, serán las 10 semanas más recientes.

show(start_time=None, end_time=None)

Parámetros

start_time
datetime, <xref:optional>
valor predeterminado: None

Inicio de la ventana de tiempo de presentación, en UTC. El valor predeterminado None significa que se recogen los resultados del 10º ciclo más reciente.

end_time
datetime, <xref:optional>
valor predeterminado: None

Final de la ventana de tiempo de datos de presentación, en UTC. El valor predeterminado None implica el día actual.

Devoluciones

Un diccionario de todas las cifras. La clave es service_name.

Tipo de valor devuelto

dict()

update

Actualice la programación asociada al objeto DataDriftDetector.

Los valores de parámetro opcionales se pueden establecer en None; de lo contrario, tienen como valor predeterminado sus valores existentes.

update(compute_target=Ellipsis, feature_list=Ellipsis, schedule_start=Ellipsis, alert_config=Ellipsis, drift_threshold=Ellipsis, wait_for_completion=True)

Parámetros

compute_target
ComputeTarget o str
valor predeterminado: Ellipsis

Nombre de ComputeTarget o ComputeTarget de Azure Machine Learning opcional. DataDriftDetector creará un destino de proceso si no se especifica este parámetro.

feature_list
list[str]
valor predeterminado: Ellipsis

Características en la lista permitida en las que ejecutar la detección de desfase de datos.

schedule_start
datetime
valor predeterminado: Ellipsis

Hora de inicio de la programación de desfase de datos, en UTC.

alert_config
AlertConfiguration
valor predeterminado: Ellipsis

Objeto de configuración opcional para las alertas de DataDriftDetector.

drift_threshold
float
valor predeterminado: Ellipsis

Umbral para habilitar las alertas de DataDriftDetector.

wait_for_completion
bool
valor predeterminado: True

Si se debe esperar a que se completen las operaciones de habilitación, deshabilitación o eliminación.

Devoluciones

self

Tipo de valor devuelto

Atributos

alert_config

Obtiene la configuración de alertas para el objeto DataDriftDetector.

Devoluciones

Objeto AlertConfiguration.

Tipo de valor devuelto

baseline_dataset

Obtiene el conjunto de datos de línea de base asociado al objeto DataDriftDetector.

Devoluciones

Tipo de conjunto de datos del conjunto de datos de línea de base.

Tipo de valor devuelto

compute_target

Obtiene el destino de proceso asociado al objeto DataDriftDetector.

Devoluciones

El destino de proceso.

Tipo de valor devuelto

drift_threshold

Obtiene el umbral de desfase del objeto DataDriftDetector.

Devoluciones

Umbral de desfase.

Tipo de valor devuelto

drift_type

Obtiene el tipo de DataDriftDetector, "DatasetBased" es el único valor admitido por ahora.

Devoluciones

Tipo de objeto DataDriftDetector.

Tipo de valor devuelto

str

enabled

Obtiene el valor booleano que indica si el objeto DataDriftDetector está habilitado.

Devoluciones

Valor booleano; True para habilitado.

Tipo de valor devuelto

feature_list

Obtiene la lista de características de la lista permitida para el objeto DataDriftDetector.

Devoluciones

Lista de nombres de características.

Tipo de valor devuelto

frequency

Obtiene la frecuencia de la programación de DataDriftDetector.

Devoluciones

Cadena de "Day", "Week" o "Month".

Tipo de valor devuelto

str

interval

Obtiene el intervalo de la programación DataDriftDetector.

Devoluciones

Valor entero de la unidad de tiempo.

Tipo de valor devuelto

int

latency

Obtiene la latencia de los trabajos de programación de DataDriftDetector (en horas).

Devoluciones

Número de horas que representan la latencia.

Tipo de valor devuelto

int

name

Obtiene el nombre del objeto DataDriftDetector.

Devoluciones

Nombre de DataDriftDetector.

Tipo de valor devuelto

str

schedule_start

Obtiene la hora de inicio de la programación.

Devoluciones

Objeto datetime de la hora de inicio de la programación en UTC.

Tipo de valor devuelto

state

Denota el estado de la programación de DataDriftDetector.

Devoluciones

Uno de los elementos "Disabled", "Enabled", "Deleted", "Disabling", "Enabling", "Deleting", "Failed", "DisableFailed", "EnableFailed", "DeleteFailed".

Tipo de valor devuelto

str

target_dataset

Obtiene el conjunto de datos de destino asociado al objeto DataDriftDetector.

Devoluciones

Tipo de conjunto de datos del conjunto de datos de línea de base.

Tipo de valor devuelto

workspace

Obtiene el área de trabajo del objeto DataDriftDetector.

Devoluciones

Área de trabajo en la que se creó el objeto DataDriftDetector.

Tipo de valor devuelto