Поделиться через


DataDriftDetector Класс

Определяет монитор смещения данных, который можно использовать для выполнения заданий по отслеживанию смещения данных в Машинном обучении Azure.

Класс DataDriftDetector позволяет обнаруживать смещение между данным базовым и целевым наборами данных. Объект DataDriftDetector создается в рабочей области путем непосредственного указания базового и целевого наборов данных. Для получения дополнительной информации см. https://aka.ms/datadrift.

Конструктор Datadriftdetector.

Конструктор DataDriftDetector используется для получения облачного представления объекта DataDriftDetector, связанного с предоставленной рабочей областью.

Наследование
builtins.object
DataDriftDetector

Конструктор

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)

Параметры

Имя Описание
workspace
Обязательно

Рабочая область, в которой будет создан объект DataDriftDetector.

name
str

Уникальное имя объекта DataDriftDetector.

Default value: None
baseline_dataset

Набор данных для сравнения с целевым набором данных.

Default value: None
target_dataset

Набор данных для запуска либо нерегламентированных, либо запланированных заданий на смещение данных. Это должен быть временной ряд.

Default value: None
compute_target

Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если он не указан.

Default value: None
frequency
str

Частота выполнения конвейера (необязательно). Поддерживаемые значения: "день", "неделя" или "месяц".

Default value: None
feature_list

Разрешенные признаки для запуска обнаружения смещения данных (необязательно). Задания DataDriftDetector будут выполняться для всех признаков, если значение feature_list не указано. Список признаков может содержать символы, цифры, дефисы и пробелы. Длина списка должна быть меньше 200.

Default value: None
alert_config

Объект конфигурации для оповещений DataDriftDetector (необязательно).

Default value: None
drift_threshold

Пороговое значение для включения оповещений DataDriftDetector (необязательно). Оно должно находиться в диапазоне от 0 до 1. Значение 0,2 используется, если указано значение None (Нет) (по умолчанию).

Default value: None
latency
int

Задержка отображения данных в наборе данных (в часах).

Default value: None
workspace
Обязательно

Рабочая область, в которой будет создан объект DataDriftDetector.

name
Обязательно
str

Уникальное имя объекта DataDriftDetector.

baseline_dataset
Обязательно

Набор данных для сравнения с целевым набором данных.

target_dataset
Обязательно

Набор данных для запуска либо нерегламентированных, либо запланированных заданий на смещение данных. Это должен быть временной ряд.

compute_target
Обязательно

Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если он не указан.

frequency
Обязательно
str

Частота выполнения конвейера (необязательно). Поддерживаемые значения: "день", "неделя" или "месяц".

feature_list
Обязательно

Разрешенные признаки для запуска обнаружения смещения данных (необязательно). Задания DataDriftDetector будут выполняться для всех признаков, если значение feature_list не указано. Список признаков может содержать символы, цифры, дефисы и пробелы. Длина списка должна быть меньше 200.

alert_config
Обязательно

Объект конфигурации для оповещений DataDriftDetector (необязательно).

drift_threshold
Обязательно

Пороговое значение для включения оповещений DataDriftDetector (необязательно). Оно должно находиться в диапазоне от 0 до 1. Значение 0,2 используется, если указано значение None (Нет) (по умолчанию).

latency
Обязательно
int

Задержка отображения данных в наборе данных (в часах).

Комментарии

Объект DataDriftDetector представляет определение задания на смещение данных, которое можно использовать для выполнения трех типов заданий:

  • нерегламентированное выполнение для анализа данных за определенный день (см. метод run);

  • запланированное выполнение в конвейере (см. метод enable_schedule);

  • запуск для выполнения задним числом для просмотра изменений данных со временем (см. метод backfill).

Типичный шаблон для создания DataDriftDetector имеет следующий вид:

  • Для создания объекта DataDriftDetector на основе набора данных используйте create_from_datasets.

В следующем примере показано, как создать объект DataDriftDetector на основе набора данных.


   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

Полный пример можно найти по адресу: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/datadrift-tutorial/datadrift-tutorial.ipynb

Конструктор DataDriftDetector извлекает существующий объект смещения данных, связанный с рабочей областью.

Методы

backfill

Запуск задания на выполнение задним числом с заданной датой начала и окончания.

Дополнительные сведения о запуске задания на выполнение задним числом: https://aka.ms/datadrift.

ПРИМЕЧАНИЕ. Выполнение задним числом поддерживается только для объектов DataDriftDetector на основе набора данных.

create_from_datasets

Создание объекта DataDriftDetector на основе базового табличного набора данных и целевого набора данных временных рядов.

delete

Удаление расписания для объекта DataDriftDetector.

disable_schedule

Отключение расписания для объекта DataDriftDetector.

enable_schedule

Создание расписания для выполнения задания DataDriftDetector на основе набора данных.

get_by_name

Извлечение уникального объекта DataDriftDetector для заданной рабочей области и имени.

get_output

Возвращает кортеж результатов и метрик для определенного объекта DataDriftDetector в течение заданного временного окна.

list

Возврат списка объектов DataDriftDetector для указанной рабочей области и необязательного набора данных.

ПРИМЕЧАНИЕ. При передаче только параметра workspace будут возвращены все объекты DataDriftDetector, определенные в рабочей области.

run

Выполнение анализа смещения данных в одной временной точке.

show

Отображение тренда смещения данных в заданном диапазоне времени.

По умолчанию этот метод показывает последние 10 циклов. Например, если параметр "частота" имеет значение "день", это будут последние 10 дней. Если параметр "частота" имеет значение "неделя", это будут последние 10 недель.

update

Обновление расписания, связанного с объектом DataDriftDetector.

Для необязательных значений параметров может быть установлено значение None, в противном случае они по умолчанию будут иметь существующие значения.

backfill

Запуск задания на выполнение задним числом с заданной датой начала и окончания.

Дополнительные сведения о запуске задания на выполнение задним числом: https://aka.ms/datadrift.

ПРИМЕЧАНИЕ. Выполнение задним числом поддерживается только для объектов DataDriftDetector на основе набора данных.

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

Параметры

Имя Описание
start_date
Обязательно

Дата начала задания на выполнение задним числом.

end_date
Обязательно

Дата окончания задания на выполнение задним числом (включительно).

compute_target

Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если он не указан.

Default value: None
create_compute_target

Указывает, создается ли целевой объект вычислений Машинного обучения Azure автоматически.

Default value: False

Возвращаемое значение

Тип Описание
Run

Выполнение DataDriftDetector.

create_from_datasets

Создание объекта DataDriftDetector на основе базового табличного набора данных и целевого набора данных временных рядов.

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)

Параметры

Имя Описание
workspace
Обязательно

Рабочая область, в которой создается DataDriftDetector.

name
Обязательно
str

Уникальное имя объекта DataDriftDetector.

baseline_dataset
Обязательно

Набор данных для сравнения с целевым набором данных.

target_dataset
Обязательно

Набор данных для запуска либо нерегламентированных, либо запланированных заданий на смещение данных. Это должен быть временной ряд.

compute_target

Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если он не указан.

Default value: None
frequency
str

Частота выполнения конвейера (необязательно). Поддерживаемые значения: "день", "неделя" или "месяц".

Default value: None
feature_list

Разрешенные признаки для запуска обнаружения смещения данных (необязательно). Задания DataDriftDetector будут выполняться для всех признаков, если значение feature_list не указано. Список признаков может содержать символы, цифры, дефисы и пробелы. Длина списка должна быть меньше 200.

Default value: None
alert_config

Объект конфигурации для оповещений DataDriftDetector (необязательно).

Default value: None
drift_threshold

Пороговое значение для включения оповещений DataDriftDetector (необязательно). Оно должно находиться в диапазоне от 0 до 1. Значение 0,2 используется, если указано значение None (Нет) (по умолчанию).

Default value: None
latency
int

Задержка отображения данных в наборе данных (в часах).

Default value: None

Возвращаемое значение

Тип Описание

Объект DataDriftDetector.

Исключения

Тип Описание
<xref:KeyError>, <xref:TypeError>, <xref:ValueError>

Комментарии

Объекты DataDriftDetector на основе набора данных позволяют вычислять смещение данных между базовым набором данных, который должен быть TabularDataset, и целевым набором данных, который должен быть набором данных временных рядов. Набор данных временных рядов — это просто TabularDataset со свойством fine_grain_timestamp. Затем DataDriftDetector сможет запускать нерегламентированные или запланированные задания, чтобы определить, произошло ли смещение целевого набора данных относительно базового.


   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

Удаление расписания для объекта DataDriftDetector.

delete(wait_for_completion=True)

Параметры

Имя Описание
wait_for_completion

Указывает, нужно ли ждать завершения операции удаления.

Default value: True

disable_schedule

Отключение расписания для объекта DataDriftDetector.

disable_schedule(wait_for_completion=True)

Параметры

Имя Описание
wait_for_completion

Указывает, нужно ли ждать завершения операции отключения.

Default value: True

enable_schedule

Создание расписания для выполнения задания DataDriftDetector на основе набора данных.

enable_schedule(create_compute_target=False, wait_for_completion=True)

Параметры

Имя Описание
create_compute_target

Указывает, создается ли целевой объект вычислений Машинного обучения Azure автоматически.

Default value: False
wait_for_completion

Указывает, нужно ли ждать завершения операции включения.

Default value: True

get_by_name

Извлечение уникального объекта DataDriftDetector для заданной рабочей области и имени.

static get_by_name(workspace, name)

Параметры

Имя Описание
workspace
Обязательно

Рабочая область, в которой был создан объект DataDriftDetector.

name
Обязательно
str

Имя объекта DataDriftDetector для возврата.

Возвращаемое значение

Тип Описание

Объект DataDriftDetector.

get_output

Возвращает кортеж результатов и метрик для определенного объекта DataDriftDetector в течение заданного временного окна.

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

Параметры

Имя Описание
start_time
datetime, <xref:optional>

Время начала для окна результатов в формате UTC. Если указано значение None (Нет) (значение по умолчанию), то в качестве времени начала используются последние результаты 10-го цикла. Например, если частота расписания смещения данных составляет один день, то start_time будет составлять 10 дней. Если частота составляет одну неделю, то start_time будет составлять 10 недель.

Default value: None
end_time
datetime, <xref:optional>

Время окончания для окна результатов в формате UTC. Если указано значение None (Нет) (значение по умолчанию), то в качестве времени окончания используется текущий день в формате UTC.

Default value: None
run_id
int, <xref:optional>

Конкретный идентификатор выполнения.

Default value: None

Возвращаемое значение

Тип Описание

Кортеж из списка результатов отклонения и списка индивидуальных наборов данных и метрик по столбцам.

Комментарии

Этот метод возвращает кортеж результатов и метрик смещения для временного окна или идентификатора запуска на основе типа выполнения: нерегламентированное выполнение, запланированное выполнение и запуск для выполнения задним числом.

  • Для получения результатов нерегламентированного выполнения существует только один способ: значение run_id должно быть допустимым идентификатором GUID.

  • Для получения результатов запланированного выполнения и запуска для выполнения задним числом существует два различных способа: либо назначьте допустимый GUID для run_id, либо назначьте конкретный start_time и (или) end_time (включительно), с сохранением значения None (Нет) для run_id.

  • Если значения run_id, start_time и end_time в одном и том же вызове метода — не None (Нет), возникает исключение проверки параметра.

ПРИМЕЧАНИЕ. Укажите либо параметры start_time и end_time, либо параметр run_id, но не то и другое.

Иногда для одной и той же целевой даты могут быть получены разные результаты (под целевой датой подразумевается дата смещения на основе набора данных для целевого набора данных). Соответственно, необходимо выявить и обработать дублирующиеся результаты. При смещении на основе набора данных, если результаты относятся к одной целевой дате, они являются дублирующимися результатами. Метод get_output выполнит дедупликацию всех дублирующихся результатов по одному правилу: всегда выбирать последние созданные результаты.

Метод get_output можно использовать для извлечения всех выходных данных или частичных выходных данных запланированных выполнений в определенном диапазоне времени между start_time и end_time (включая границу). Можно также ограничить результаты отдельного нерегламентированного выполнения, указав run_id.

Используйте следующие рекомендации, чтобы интерпретировать результаты, возвращаемые методом get_output:

  • Фильтрация осуществляется по принципу "перекрытия": если между фактическим временем результата (на основе набора данных: [дата начала, дата окончания] целевого набора данных) и заданным [start_time, end_time] есть перекрытие, результат будет выбран.

  • Если для одной целевой даты есть несколько наборов выходных данных, так как вычисление смещения выполнялось несколько раз в течение этого дня, по умолчанию выбирается только последнее значение.

  • Учитывая, что существует несколько типов экземпляров для смещения данных, содержимое результатов может быть разным.

Для результатов на основе набора данных выходные данные будут выглядеть следующим образом:


   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

Возврат списка объектов DataDriftDetector для указанной рабочей области и необязательного набора данных.

ПРИМЕЧАНИЕ. При передаче только параметра workspace будут возвращены все объекты DataDriftDetector, определенные в рабочей области.

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

Параметры

Имя Описание
workspace
Обязательно

Рабочая область, в которой были созданы объекты DataDriftDetector.

baseline_dataset

Базовый набор данных для фильтрации списка возвращаемых значений.

Default value: None
target_dataset

Целевой набор данных для фильтрации списка возвращаемых значений.

Default value: None

Возвращаемое значение

Тип Описание

Список объектов DataDriftDetector.

run

Выполнение анализа смещения данных в одной временной точке.

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

Параметры

Имя Описание
target_date
Обязательно

Целевая дата данных оценки в формате UTC.

compute_target

Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). Если не указано, целевой объект вычислений создается автоматически.

Default value: None
create_compute_target

Указывает, создается ли целевой объект вычислений Машинного обучения Azure автоматически.

Default value: False
feature_list

Разрешенные признаки для запуска обнаружения смещения данных (необязательно).

Default value: None
drift_threshold

Пороговое значение для включения оповещений DataDriftDetector (необязательно).

Default value: None

Возвращаемое значение

Тип Описание
Run

Выполнение DataDriftDetector.

show

Отображение тренда смещения данных в заданном диапазоне времени.

По умолчанию этот метод показывает последние 10 циклов. Например, если параметр "частота" имеет значение "день", это будут последние 10 дней. Если параметр "частота" имеет значение "неделя", это будут последние 10 недель.

show(start_time=None, end_time=None)

Параметры

Имя Описание
start_time
datetime, <xref:optional>

Начало временного окна презентации в формате UTC. Значение по умолчанию None (Нет) означает, что вы можете выбрать последние результаты 10-го цикла.

Default value: None
end_time
datetime, <xref:optional>

Конец временного окна данных презентации в формате UTC. При значении по умолчанию None (Нет) используется текущая дата.

Default value: None

Возвращаемое значение

Тип Описание
dict()

Словарь всех показателей. Ключ — service_name.

update

Обновление расписания, связанного с объектом DataDriftDetector.

Для необязательных значений параметров может быть установлено значение None, в противном случае они по умолчанию будут иметь существующие значения.

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

Параметры

Имя Описание
compute_target

Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если этот параметр не задан.

Default value: Ellipsis
feature_list

Разрешенные признаки для запуска обнаружения смещения.

Default value: Ellipsis
schedule_start

Время начала расписания смещения данных в формате UTC.

Default value: Ellipsis
alert_config

Объект конфигурации для оповещений DataDriftDetector (необязательно).

Default value: Ellipsis
drift_threshold

Пороговое значение для включения оповещений DataDriftDetector.

Default value: Ellipsis
wait_for_completion

Указывает, нужно ли ждать завершения операций включения/выключения/удаления.

Default value: True

Возвращаемое значение

Тип Описание

self

Атрибуты

alert_config

Возврат конфигурации оповещений для объекта DataDriftDetector.

Возвращаемое значение

Тип Описание

Объект AlertConfiguration.

baseline_dataset

Возврат базового набора данных, связанного с объектом DataDriftDetector.

Возвращаемое значение

Тип Описание

Тип базового набора данных.

compute_target

Возврат целевого объекта вычислений, связанного с объектом DataDriftDetector.

Возвращаемое значение

Тип Описание

Целевой объект вычисления.

drift_threshold

Возврат порогового значения смещения для объекта DataDriftDetector.

Возвращаемое значение

Тип Описание

Пороговое значение смещения.

drift_type

Возврат типа DataDriftDetector. Сейчас поддерживается только значение DatasetBased.

Возвращаемое значение

Тип Описание
str

Тип объекта DataDriftDetector.

enabled

Возврат логического значения, указывающего, включен ли объект DataDriftDetector.

Возвращаемое значение

Тип Описание

Логическое значение. Значение True, если объект включен.

feature_list

Возврат списка разрешенных признаков для объекта DataDriftDetector.

Возвращаемое значение

Тип Описание

Список имен признаков.

frequency

Возврат периодичности расписания DataDriftDetector.

Возвращаемое значение

Тип Описание
str

Строка со значением "день", "неделя" или "месяц"

interval

Возврат интервала расписания DataDriftDetector.

Возвращаемое значение

Тип Описание
int

Целочисленное значение единицы времени.

latency

Возврат задержки заданий расписания DataDriftDetector (в часах).

Возвращаемое значение

Тип Описание
int

Количество часов, представляющее задержку.

name

Возврат имени объекта DataDriftDetector.

Возвращаемое значение

Тип Описание
str

Имя DataDriftDetector.

schedule_start

Возврат времени начала расписания.

Возвращаемое значение

Тип Описание

Объект DateTime времени начала расписания в формате UTC.

state

Обозначает состояние расписания DataDriftDetector.

Возвращаемое значение

Тип Описание
str

Одно из значений: Disabled, Enabled, Deleted, Disabling, Enabling, Deleting, Failed, DisableFailed, EnableFailed, DeleteFailed.

target_dataset

Возврат целевого набора данных, связанного с объектом DataDriftDetector.

Возвращаемое значение

Тип Описание

Тип базового набора данных.

workspace

Возврат рабочей области DataDriftDetector.

Возвращаемое значение

Тип Описание

Рабочая область, в которой был создан объект DataDriftDetector.