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
|
用于运行 datadrift 检测的可选允许列表功能。 如果未指定 默认值: None
|
alert_config
|
DataDriftDetector 警报的可选配置对象。 默认值: None
|
drift_threshold
|
用于启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 指定 None 时使用值 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
必需
|
用于运行 datadrift 检测的可选允许列表功能。 如果未指定 |
alert_config
必需
|
DataDriftDetector 警报的可选配置对象。 |
drift_threshold
必需
|
用于启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 指定 None 时使用值 0.2(默认值)。 |
latency
必需
|
数据显示在数据集中的延迟时间(以小时为单位)。 |
注解
DataDriftDetector 对象表示可用于运行三种作业运行类型的数据偏移作业定义:
临时 运行,用于分析特定日期的数据;请参阅 run 方法。
管道中的计划运行;请参阅 enable_schedule 方法。
回填运行以查看数据随时间变化的方式;请参阅 backfill 方法。
创建 DataDriftDetector 的典型模式是:
- 若要创建基于数据集的 DataDriftDetector 对象,请使用 create_from_datasets
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
|
用于运行 datadrift 检测的可选允许列表功能。 如果未指定 默认值: None
|
alert_config
|
DataDriftDetector 警报的可选配置对象。 默认值: None
|
drift_threshold
|
用于启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 指定 None 时使用值 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。若要检索计划的运行和回填运行结果,有两种不同的方法:将有效的 GUID 分配给
run_id
或分配特定的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_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
|
用于运行 datadrift 检测的可选允许列表功能。 默认值: 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
|
返回
类型 | 说明 |
---|---|
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
|
允许列表的功能以运行 datadrift 检测。 默认值: Ellipsis
|
schedule_start
|
UTC 格式的数据偏移计划的开始时间。 默认值: Ellipsis
|
alert_config
|
DataDriftDetector 警报的可选配置对象。 默认值: Ellipsis
|
drift_threshold
|
启用 DataDriftDetector 警报的阈值。 默认值: Ellipsis
|
wait_for_completion
|
是否等待启用/禁用/删除操作完成。 默认值: True
|
返回
类型 | 说明 |
---|---|
自我 |
属性
alert_config
baseline_dataset
compute_target
drift_threshold
drift_type
enabled
feature_list
frequency
interval
latency
name
schedule_start
state
表示 DataDriftDetector 计划的状态。
返回
类型 | 说明 |
---|---|
“Disabled”、“Enabled”、“Deleted”、“Disableing”、“Enableing”、“Deleteing”、“Delete”、“Failed”、“DisableFailed”、“EnableFailed”、“DeleteFailed”之一。 |