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 对象的唯一名称。 默认值: None
|
baseline_dataset
|
用于与目标数据集进行比较的数据集。 默认值: None
|
target_dataset
|
要为其运行临时或计划 DataDrift 作业的数据集。 必须是时序。 默认值: None
|
compute_target
|
可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,DataDriftDetector 将创建一个计算目标。 默认值: None
|
frequency
|
可选频率,表示管道的运行频率。 支持“Day”、“Week”或“Month”。 默认值: None
|
feature_list
|
要对其运行数据偏移检测的可选白名单功能。 如果未指定 默认值: None
|
alert_config
|
DataDriftDetector 警报的可选配置对象。 默认值: None
|
drift_threshold
|
启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 如果未指定值,则采用默认值 0.2。 默认值: None
|
latency
|
数据在数据集中的显示延迟时间(小时)。 默认值: None
|
workspace
必需
|
要在其中创建 DataDriftDetector 对象的工作区。 |
name
必需
|
DataDriftDetector 对象的唯一名称。 |
baseline_dataset
必需
|
用于与目标数据集进行比较的数据集。 |
target_dataset
必需
|
要为其运行临时或计划 DataDrift 作业的数据集。 必须是时序。 |
compute_target
必需
|
可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,DataDriftDetector 将创建一个计算目标。 |
frequency
必需
|
可选频率,表示管道的运行频率。 支持“Day”、“Week”或“Month”。 |
feature_list
必需
|
要对其运行数据偏移检测的可选白名单功能。 如果未指定 |
alert_config
必需
|
DataDriftDetector 警报的可选配置对象。 |
drift_threshold
必需
|
启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 如果未指定值,则采用默认值 0.2。 |
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
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
|
可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,DataDriftDetector 将创建一个计算目标。 默认值: None
|
create_compute_target
|
指示是否自动创建 Azure 机器学习计算目标。 默认值: 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
必需
|
要为其运行临时或计划 DataDrift 作业的数据集。 必须是时序。 |
compute_target
|
可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,DataDriftDetector 将创建一个计算目标。 默认值: None
|
frequency
|
可选频率,表示管道的运行频率。 支持“Day”、“Week”或“Month”。 默认值: None
|
feature_list
|
要对其运行数据偏移检测的可选白名单功能。 如果未指定 默认值: None
|
alert_config
|
DataDriftDetector 警报的可选配置对象。 默认值: None
|
drift_threshold
|
启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 如果未指定值,则采用默认值 0.2。 默认值: None
|
latency
|
数据在数据集中的显示延迟时间(小时)。 默认值: None
|
返回
类型 | 说明 |
---|---|
DataDriftDetector 对象。 |
例外
类型 | 说明 |
---|---|
<xref:KeyError>, <xref:TypeError>, <xref:ValueError>
|
注解
使用基于数据集的 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)
参数
名称 | 说明 |
---|---|
wait_for_completion
|
是否等待删除操作完成。 默认值: True
|
disable_schedule
禁用 DataDriftDetector 对象的计划。
disable_schedule(wait_for_completion=True)
参数
名称 | 说明 |
---|---|
wait_for_completion
|
是否等待禁用操作完成。 默认值: True
|
enable_schedule
创建计划以运行基于数据集的 DataDriftDetector 作业。
enable_schedule(create_compute_target=False, wait_for_completion=True)
参数
名称 | 说明 |
---|---|
create_compute_target
|
指示是否自动创建 Azure 机器学习计算目标。 默认值: False
|
wait_for_completion
|
是否等待启用操作完成。 默认值: 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 个周期的结果作为开始时间。 例如,如果数据偏移计划的频率为按天,则 默认值: None
|
end_time
|
datetime, <xref:optional>
结果窗口的结束时间 (UTC)。 如果指定为 None(默认值),则使用当前日期 UTC 作为结束时间。 默认值: None
|
run_id
|
int, <xref:optional>
特定的运行 ID。 默认值: None
|
返回
类型 | 说明 |
---|---|
偏移结果列表以及单个数据集和列指标的列表的元组。 |
注解
根据运行的类型(临时运行、计划允许或者回填运行),此方法会针对某个时间范围或运行 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)
参数
名称 | 说明 |
---|---|
workspace
必需
|
创建 DataDriftDetector 对象的工作区。 |
baseline_dataset
|
用于筛选返回列表的基线数据集。 默认值: None
|
target_dataset
|
用于筛选返回列表的目标数据集。 默认值: 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 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定,则会自动创建计算目标。 默认值: None
|
create_compute_target
|
指示是否自动创建 Azure 机器学习计算目标。 默认值: False
|
feature_list
|
要对其运行数据偏移检测的可选白名单功能。 默认值: None
|
drift_threshold
|
启用 DataDriftDetector 警报的可选阈值。 默认值: None
|
返回
类型 | 说明 |
---|---|
DataDriftDetector 运行。 |
show
显示给定时间范围内的数据偏移趋势。
默认情况下,此方法显示最近 10 个周期。 例如,如果频率为按天,则显示最近 10 天。 如果频率为按周,则显示最近 10 周。
show(start_time=None, end_time=None)
参数
名称 | 说明 |
---|---|
start_time
|
datetime, <xref:optional>
呈现时间范围的开始时间 (UTC)。 默认值 None 表示选取最近第 10 个周期的结果。 默认值: None
|
end_time
|
datetime, <xref:optional>
呈现数据时间范围的结束时间 (UTC)。 默认值 None 表示当天日期。 默认值: 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 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定该参数,DataDriftDetector 将创建一个计算目标。 默认值: Ellipsis
|
feature_list
|
要对其运行数据偏移检测的白名单功能。 默认值: Ellipsis
|
schedule_start
|
数据偏移计划的开始时间 (UTC)。 默认值: Ellipsis
|
alert_config
|
DataDriftDetector 警报的可选配置对象。 默认值: Ellipsis
|
drift_threshold
|
启用 DataDriftDetector 警报的阈值。 默认值: Ellipsis
|
wait_for_completion
|
是否等待启用/禁用/删除操作完成。 默认值: True
|
返回
类型 | 说明 |
---|---|
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
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈