DataDriftDetector Класс
Определяет монитор смещения данных, который можно использовать для выполнения заданий по отслеживанию смещения данных в Машинном обучении Azure.
Класс DataDriftDetector позволяет обнаруживать смещение между данным базовым и целевым наборами данных. Объект DataDriftDetector создается в рабочей области путем непосредственного указания базового и целевого наборов данных. Для получения дополнительной информации см. https://aka.ms/datadrift.
Конструктор Datadriftdetector.
Конструктор DataDriftDetector используется для получения облачного представления объекта DataDriftDetector, связанного с предоставленной рабочей областью.
- Наследование
-
builtins.objectDataDriftDetector
Конструктор
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
|
Уникальное имя объекта DataDriftDetector. Default value: None
|
baseline_dataset
|
Набор данных для сравнения с целевым набором данных. Default value: None
|
target_dataset
|
Набор данных для запуска либо нерегламентированных, либо запланированных заданий на смещение данных. Это должен быть временной ряд. Default value: None
|
compute_target
|
ComputeTarget или
str
Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если он не указан. Default value: None
|
frequency
|
Частота выполнения конвейера (необязательно). Поддерживаемые значения: "день", "неделя" или "месяц". Default value: None
|
feature_list
|
Разрешенные признаки для запуска обнаружения смещения данных (необязательно). Задания DataDriftDetector будут выполняться для всех признаков, если значение Default value: None
|
alert_config
|
Объект конфигурации для оповещений DataDriftDetector (необязательно). Default value: None
|
drift_threshold
|
Пороговое значение для включения оповещений DataDriftDetector (необязательно). Оно должно находиться в диапазоне от 0 до 1. Значение 0,2 используется, если указано значение None (Нет) (по умолчанию). Default value: None
|
latency
|
Задержка отображения данных в наборе данных (в часах). Default value: None
|
workspace
Обязательно
|
Рабочая область, в которой будет создан объект DataDriftDetector. |
name
Обязательно
|
Уникальное имя объекта DataDriftDetector. |
baseline_dataset
Обязательно
|
Набор данных для сравнения с целевым набором данных. |
target_dataset
Обязательно
|
Набор данных для запуска либо нерегламентированных, либо запланированных заданий на смещение данных. Это должен быть временной ряд. |
compute_target
Обязательно
|
ComputeTarget или
str
Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если он не указан. |
frequency
Обязательно
|
Частота выполнения конвейера (необязательно). Поддерживаемые значения: "день", "неделя" или "месяц". |
feature_list
Обязательно
|
Разрешенные признаки для запуска обнаружения смещения данных (необязательно). Задания DataDriftDetector будут выполняться для всех признаков, если значение |
alert_config
Обязательно
|
Объект конфигурации для оповещений DataDriftDetector (необязательно). |
drift_threshold
Обязательно
|
Пороговое значение для включения оповещений DataDriftDetector (необязательно). Оно должно находиться в диапазоне от 0 до 1. Значение 0,2 используется, если указано значение None (Нет) (по умолчанию). |
latency
Обязательно
|
Задержка отображения данных в наборе данных (в часах). |
Комментарии
Объект 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 для указанной рабочей области и необязательного набора данных.
ПРИМЕЧАНИЕ. При передаче только параметра |
run |
Выполнение анализа смещения данных в одной временной точке. |
show |
Отображение тренда смещения данных в заданном диапазоне времени. По умолчанию этот метод показывает последние 10 циклов. Например, если параметр "частота" имеет значение "день", это будут последние 10 дней. Если параметр "частота" имеет значение "неделя", это будут последние 10 недель. |
update |
Обновление расписания, связанного с объектом DataDriftDetector. Для необязательных значений параметров может быть установлено значение |
backfill
Запуск задания на выполнение задним числом с заданной датой начала и окончания.
Дополнительные сведения о запуске задания на выполнение задним числом: https://aka.ms/datadrift.
ПРИМЕЧАНИЕ. Выполнение задним числом поддерживается только для объектов DataDriftDetector на основе набора данных.
backfill(start_date, end_date, compute_target=None, create_compute_target=False)
Параметры
Имя | Описание |
---|---|
start_date
Обязательно
|
Дата начала задания на выполнение задним числом. |
end_date
Обязательно
|
Дата окончания задания на выполнение задним числом (включительно). |
compute_target
|
ComputeTarget или
str
Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если он не указан. Default value: None
|
create_compute_target
|
Указывает, создается ли целевой объект вычислений Машинного обучения Azure автоматически. Default value: False
|
Возвращаемое значение
Тип | Описание |
---|---|
Выполнение 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
Обязательно
|
Уникальное имя объекта DataDriftDetector. |
baseline_dataset
Обязательно
|
Набор данных для сравнения с целевым набором данных. |
target_dataset
Обязательно
|
Набор данных для запуска либо нерегламентированных, либо запланированных заданий на смещение данных. Это должен быть временной ряд. |
compute_target
|
ComputeTarget или
str
Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). DataDriftDetector создаст целевой объект вычислений, если он не указан. Default value: None
|
frequency
|
Частота выполнения конвейера (необязательно). Поддерживаемые значения: "день", "неделя" или "месяц". Default value: None
|
feature_list
|
Разрешенные признаки для запуска обнаружения смещения данных (необязательно). Задания DataDriftDetector будут выполняться для всех признаков, если значение Default value: None
|
alert_config
|
Объект конфигурации для оповещений DataDriftDetector (необязательно). Default value: None
|
drift_threshold
|
Пороговое значение для включения оповещений DataDriftDetector (необязательно). Оно должно находиться в диапазоне от 0 до 1. Значение 0,2 используется, если указано значение None (Нет) (по умолчанию). Default value: None
|
latency
|
Задержка отображения данных в наборе данных (в часах). 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
Обязательно
|
Имя объекта DataDriftDetector для возврата. |
Возвращаемое значение
Тип | Описание |
---|---|
Объект DataDriftDetector. |
get_output
Возвращает кортеж результатов и метрик для определенного объекта DataDriftDetector в течение заданного временного окна.
get_output(start_time=None, end_time=None, run_id=None)
Параметры
Имя | Описание |
---|---|
start_time
|
datetime, <xref:optional>
Время начала для окна результатов в формате UTC. Если указано значение None (Нет) (значение по умолчанию), то в качестве времени начала используются последние результаты 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
|
ComputeTarget или
str
Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения Azure (необязательно). Если не указано, целевой объект вычислений создается автоматически. Default value: None
|
create_compute_target
|
Указывает, создается ли целевой объект вычислений Машинного обучения Azure автоматически. Default value: False
|
feature_list
|
Разрешенные признаки для запуска обнаружения смещения данных (необязательно). Default value: None
|
drift_threshold
|
Пороговое значение для включения оповещений DataDriftDetector (необязательно). Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Выполнение 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
|
ComputeTarget или
str
Имя целевого объекта вычислений или целевого объекта вычислений Машинного обучения 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.
Возвращаемое значение
Тип | Описание |
---|---|
Тип объекта DataDriftDetector. |
enabled
Возврат логического значения, указывающего, включен ли объект DataDriftDetector.
Возвращаемое значение
Тип | Описание |
---|---|
Логическое значение. Значение True, если объект включен. |
feature_list
Возврат списка разрешенных признаков для объекта DataDriftDetector.
Возвращаемое значение
Тип | Описание |
---|---|
Список имен признаков. |
frequency
Возврат периодичности расписания DataDriftDetector.
Возвращаемое значение
Тип | Описание |
---|---|
Строка со значением "день", "неделя" или "месяц" |
interval
Возврат интервала расписания DataDriftDetector.
Возвращаемое значение
Тип | Описание |
---|---|
Целочисленное значение единицы времени. |
latency
Возврат задержки заданий расписания DataDriftDetector (в часах).
Возвращаемое значение
Тип | Описание |
---|---|
Количество часов, представляющее задержку. |
name
Возврат имени объекта DataDriftDetector.
Возвращаемое значение
Тип | Описание |
---|---|
Имя DataDriftDetector. |
schedule_start
Возврат времени начала расписания.
Возвращаемое значение
Тип | Описание |
---|---|
Объект DateTime времени начала расписания в формате UTC. |
state
Обозначает состояние расписания DataDriftDetector.
Возвращаемое значение
Тип | Описание |
---|---|
Одно из значений: Disabled, Enabled, Deleted, Disabling, Enabling, Deleting, Failed, DisableFailed, EnableFailed, DeleteFailed. |
target_dataset
Возврат целевого набора данных, связанного с объектом DataDriftDetector.
Возвращаемое значение
Тип | Описание |
---|---|
Тип базового набора данных. |
workspace
Возврат рабочей области DataDriftDetector.
Возвращаемое значение
Тип | Описание |
---|---|
Рабочая область, в которой был создан объект DataDriftDetector. |