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 对象的唯一名称。

默认值: None
baseline_dataset

要比较目标数据集的数据集。

默认值: None
target_dataset

要为其运行 或计划的 DataDrift 作业的数据集。 必须是时序。

默认值: None
compute_target

可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定计算目标,DataDriftDetector 将创建一个计算目标。

默认值: None
frequency
str

指示管道运行频率的可选频率。 支持“Day”、“Week”或“Month”。

默认值: None
feature_list

用于运行 datadrift 检测的可选允许列表功能。 如果未指定 feature_list,DataDriftDetector 作业将在所有功能上运行。 功能列表可以包含字符、数字、短划线和空格。 列表的长度必须小于 200。

默认值: None
alert_config

DataDriftDetector 警报的可选配置对象。

默认值: None
drift_threshold

用于启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 指定 None 时使用值 0.2(默认值)。

默认值: None
latency
int

数据显示在数据集中的延迟时间(以小时为单位)。

默认值: None
workspace
必需

在其中创建 DataDriftDetector 对象的工作区。

name
必需
str

DataDriftDetector 对象的唯一名称。

baseline_dataset
必需

要比较目标数据集的数据集。

target_dataset
必需

要为其运行 或计划的 DataDrift 作业的数据集。 必须是时序。

compute_target
必需

可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定计算目标,DataDriftDetector 将创建一个计算目标。

frequency
必需
str

指示管道运行频率的可选频率。 支持“Day”、“Week”或“Month”。

feature_list
必需

用于运行 datadrift 检测的可选允许列表功能。 如果未指定 feature_list,DataDriftDetector 作业将在所有功能上运行。 功能列表可以包含字符、数字、短划线和空格。 列表的长度必须小于 200。

alert_config
必需

DataDriftDetector 警报的可选配置对象。

drift_threshold
必需

用于启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 指定 None 时使用值 0.2(默认值)。

latency
必需
int

数据显示在数据集中的延迟时间(以小时为单位)。

注解

DataDriftDetector 对象表示可用于运行三种作业运行类型的数据偏移作业定义:

  • 临时 运行,用于分析特定日期的数据;请参阅 run 方法。

  • 管道中的计划运行;请参阅 enable_schedule 方法。

  • 回填运行以查看数据随时间变化的方式;请参阅 backfill 方法。

创建 DataDriftDetector 的典型模式是:

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 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定任何计算目标,DataDriftDetector 将创建计算目标。

默认值: None
create_compute_target

指示是否自动创建 Azure 机器学习计算目标。

默认值: 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
必需

要为其运行 或计划的 DataDrift 作业的数据集。 必须是时序。

compute_target

可选 Azure 机器学习 ComputeTarget 或 ComputeTarget 名称。 如果未指定计算目标,DataDriftDetector 将创建一个计算目标。

默认值: None
frequency
str

指示管道运行频率的可选频率。 支持“Day”、“Week”或“Month”。

默认值: None
feature_list

用于运行 datadrift 检测的可选允许列表功能。 如果未指定 feature_list,DataDriftDetector 作业将在所有功能上运行。 功能列表可以包含字符、数字、短划线和空格。 列表的长度必须小于 200。

默认值: None
alert_config

DataDriftDetector 警报的可选配置对象。

默认值: None
drift_threshold

用于启用 DataDriftDetector 警报的可选阈值。 该值必须介于 0 和 1 之间。 指定 None 时使用值 0.2(默认值)。

默认值: None
latency
int

数据显示在数据集中的延迟时间(以小时为单位)。

默认值: 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
必需
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 周。

默认值: 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_idstart_timeend_time 不是同一方法调用中的 None,则会引发参数验证异常。

注意: 指定 start_timeend_time 参数或 run_id 参数,但不能同时指定两者。

同一目标日期可能有多个结果(目标日期表示基于数据集的偏移的目标数据集开始日期)。 因此,必须识别和处理重复的结果。 对于基于数据集的偏移,如果结果针对同一目标日期,则结果是重复的结果。 get_output 方法将通过一条规则删除任何重复的结果:始终选取最新生成的结果。

get_output 方法可用于检索 start_timeend_time(包括边界)之间的特定时间范围内计划运行的所有输出或部分输出。 还可以通过指定 run_id来限制单个 临时 的结果。

使用以下准则来帮助解释从 get_output 方法返回的结果:

  • 筛选原则是“重叠”:只要实际结果时间(基于数据集:目标数据集[开始日期,结束日期])与给定 [start_timeend_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

返回

类型 说明
Run

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

获取 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

“Day”、“Week”或“Month”的字符串

interval

获取 DataDriftDetector 计划的间隔。

返回

类型 说明
int

时间单位的整数值。

latency

获取 DataDriftDetector 计划作业的延迟(以小时为单位)。

返回

类型 说明
int

表示延迟的小时数。

name

获取 DataDriftDetector 对象的名称。

返回

类型 说明
str

DataDriftDetector 名称。

schedule_start

获取计划的开始时间。

返回

类型 说明

计划开始时间(UTC)的日期/时间对象。

state

表示 DataDriftDetector 计划的状态。

返回

类型 说明
str

“Disabled”、“Enabled”、“Deleted”、“Disableing”、“Enableing”、“Deleteing”、“Delete”、“Failed”、“DisableFailed”、“EnableFailed”、“DeleteFailed”之一。

target_dataset

获取与 DataDriftDetector 对象关联的目标数据集。

返回

类型 说明

基线数据集的数据集类型。

workspace

获取 DataDriftDetector 对象的工作区。

返回

类型 说明

DataDriftDetector 对象创建的工作区。