DataDriftDetector 类
定义可用于在 Azure 机器学习中运行数据偏移作业的数据偏移监视器。
利用 DataDriftDetector 类,可以确定某个给定基线与目标数据集之间的偏移。 通过直接指定基线和目标数据集,在工作区中创建 DataDriftDetector 对象。 有关详细信息,请参阅 https://aka.ms/datadrift。
- 继承
-
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)
参数
- compute_target
- ComputeTarget 或 str
可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,DataDriftDetector 将创建一个计算目标。
要对其运行数据偏移检测的可选白名单功能。 如果未指定 feature_list,则 DataDriftDetector 作业将对所有功能运行检测。 功能列表可以包含字符、数字、短划线和空格。 列表的长度必须小于 200。
注解
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
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)
参数
- compute_target
- ComputeTarget 或 str
可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,DataDriftDetector 将创建一个计算目标。
返回
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)
参数
- compute_target
- ComputeTarget 或 str
可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,DataDriftDetector 将创建一个计算目标。
要对其运行数据偏移检测的可选白名单功能。 如果未指定 feature_list,则 DataDriftDetector 作业将对所有功能运行检测。 功能列表可以包含字符、数字、短划线和空格。 列表的长度必须小于 200。
返回
DataDriftDetector 对象。
返回类型
例外
注解
使用基于数据集的 DataDriftDetectors,可以计算基线数据集(必须是 TabularDataset)和目标数据集(必须是时序数据集)之间的数据偏移。 时序数据集只是具有 fine_grain_timestamp 属性的 TabularDataset。 然后,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)
参数
disable_schedule
禁用 DataDriftDetector 对象的计划。
disable_schedule(wait_for_completion=True)
参数
enable_schedule
创建计划以运行基于数据集的 DataDriftDetector 作业。
enable_schedule(create_compute_target=False, wait_for_completion=True)
参数
get_by_name
检索给定工作区和名称的唯一 DataDriftDetector 对象。
static get_by_name(workspace, name)
参数
返回
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 周。
返回
偏移结果列表以及单个数据集和列指标的列表的元组。
返回类型
注解
根据运行的类型(临时运行、计划允许或者回填运行),此方法会针对某个时间范围或运行 ID 的指标返回偏移结果和指标的元组。
若要检索临时运行结果,只有一种方法:
run_id应该为有效的 GUID。若要检索计划运行和回填运行结果,有两种不同的方法:向
run_id分配有效的 GUID,或分配特定的start_time和/或end_time(含),同时将run_id保留为 None。如果
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 date, end date])与给定 [
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)
参数
返回
DataDriftDetector 对象的列表。
返回类型
run
运行单时间点数据偏移分析。
run(target_date, compute_target=None, create_compute_target=False, feature_list=None, drift_threshold=None)
参数
- compute_target
- ComputeTarget 或 str
可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,则会自动创建计算目标。
返回
DataDriftDetector 运行。
返回类型
show
显示给定时间范围内的数据偏移趋势。
默认情况下,此方法显示最近 10 个周期。 例如,如果频率为按天,则显示最近 10 天。 如果频率为按周,则显示最近 10 周。
show(start_time=None, end_time=None)
参数
返回
所有数字的字典。 键为 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 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定该参数,DataDriftDetector 将创建一个计算目标。
返回
self
返回类型
属性
alert_config
baseline_dataset
compute_target
drift_threshold
drift_type
enabled
feature_list
frequency
interval
latency
name
schedule_start
state
表示 DataDriftDetector 计划的状态。
返回
“已禁用”、“已启用”、“已删除”、“禁用”、“启用”、“删除”、“失败”、“DisableFailed”、“EnableFailed”、“DeleteFailed”中的一个。
返回类型
target_dataset
workspace
反馈
提交和查看相关反馈