DataDriftDetector 類別
定義數據漂移監視器,可用來在 Azure Machine Learning 中執行數據漂移作業。
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
要在其中建立 DataDriftDetector 物件的工作區。 |
name
|
DataDriftDetector 物件的唯一名稱。 預設值: None
|
baseline_dataset
|
要比較目標數據集的數據集。 預設值: None
|
target_dataset
|
要執行 adhoc 或排程 DataDrift 作業的數據集。 必須是時間序列。 預設值: None
|
compute_target
|
選擇性的 Azure Machine Learning 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
必要
|
要執行 adhoc 或排程 DataDrift 作業的數據集。 必須是時間序列。 |
compute_target
必要
|
選擇性的 Azure Machine Learning 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 物件才支援 Backfill。 |
create_from_datasets |
從基準表格式數據集和目標時間序列數據集建立新的 DataDriftDetector 物件。 |
delete |
刪除 DataDriftDetector 物件的排程。 |
disable_schedule |
停用 DataDriftDetector 物件的排程。 |
enable_schedule |
建立排程以執行以數據集為基礎的 DataDriftDetector 作業。 |
get_by_name |
擷取指定工作區和名稱的唯一 DataDriftDetector 物件。 |
get_output |
取得特定時間範圍中特定 DataDriftDetector 之漂移結果和計量的 Tuple。 |
list |
取得指定工作區和選擇性數據集的 DataDriftDetector 物件清單。
注意: 只傳入 |
run |
執行單一時間點數據漂移分析。 |
show |
顯示指定時間範圍內的數據漂移趨勢。 根據預設,此方法會顯示最新的10個週期。 例如,如果 frequency 是 day,則會是最近的 10 天。 如果 frequency 是 week,則這將是最新的 10 周。 |
update |
更新與 DataDriftDetector 對象相關聯的排程。 選擇性參數值可以設定為 |
backfill
在指定的開始和結束日期上執行回填作業。
如需數據漂移回填執行的詳細數據,請參閱 https://aka.ms/datadrift。
注意:只有數據集型 DataDriftDetector 物件才支援 Backfill。
backfill(start_date, end_date, compute_target=None, create_compute_target=False)
參數
名稱 | Description |
---|---|
start_date
必要
|
回填作業的開始日期。 |
end_date
必要
|
內含回填作業的結束日期。 |
compute_target
|
選擇性的 Azure Machine Learning ComputeTarget 或 ComputeTarget 名稱。 如果未指定任何計算目標,DataDriftDetector 將會建立計算目標。 預設值: None
|
create_compute_target
|
指出是否自動建立 Azure Machine Learning 計算目標。 預設值: False
|
傳回
類型 | Description |
---|---|
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
要建立 DataDriftDetector 的工作區。 |
name
必要
|
DataDriftDetector 物件的唯一名稱。 |
baseline_dataset
必要
|
要比較目標數據集的數據集。 |
target_dataset
必要
|
要執行 adhoc 或排程 DataDrift 作業的數據集。 必須是時間序列。 |
compute_target
|
選擇性的 Azure Machine Learning 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
|
傳回
類型 | Description |
---|---|
DataDriftDetector 物件。 |
例外狀況
類型 | Description |
---|---|
<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)
參數
名稱 | Description |
---|---|
wait_for_completion
|
是否要等候刪除作業完成。 預設值: True
|
disable_schedule
停用 DataDriftDetector 物件的排程。
disable_schedule(wait_for_completion=True)
參數
名稱 | Description |
---|---|
wait_for_completion
|
是否要等候停用作業完成。 預設值: True
|
enable_schedule
建立排程以執行以數據集為基礎的 DataDriftDetector 作業。
enable_schedule(create_compute_target=False, wait_for_completion=True)
參數
名稱 | Description |
---|---|
create_compute_target
|
指出是否自動建立 Azure Machine Learning 計算目標。 預設值: False
|
wait_for_completion
|
是否要等候啟用作業完成。 預設值: True
|
get_by_name
擷取指定工作區和名稱的唯一 DataDriftDetector 物件。
static get_by_name(workspace, name)
參數
名稱 | Description |
---|---|
workspace
必要
|
DataDriftDetector 建立所在的工作區。 |
name
必要
|
要傳回之 DataDriftDetector 物件的名稱。 |
傳回
類型 | Description |
---|---|
DataDriftDetector 物件。 |
get_output
取得特定時間範圍中特定 DataDriftDetector 之漂移結果和計量的 Tuple。
get_output(start_time=None, end_time=None, run_id=None)
參數
名稱 | Description |
---|---|
start_time
|
datetime, <xref:optional>
結果視窗的開始時間,以UTC為單位。 如果指定 None (預設值),則會使用最近第 10 個週期的結果作為開始時間。 例如,如果數據漂移排程的頻率是天,則 預設值: None
|
end_time
|
datetime, <xref:optional>
結果窗口的結束時間以UTC為單位。 如果指定 None (預設值),則會使用目前的日期 UTC 做為結束時間。 預設值: None
|
run_id
|
int, <xref:optional>
特定執行標識碼。 預設值: None
|
傳回
類型 | Description |
---|---|
漂移結果清單和個別數據集和單欄計量清單的 Tuple。 |
備註
此方法會根據執行類型傳回漂移結果和計量的 Tuple:臨機操作 執行、排程的執行,以及回填執行。
若要擷取 臨機操作 執行結果,只有一種方式:
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
建立 DataDriftDetector 物件的工作區。 |
baseline_dataset
|
篩選傳回清單的基準數據集。 預設值: None
|
target_dataset
|
要篩選傳回清單的目標數據集。 預設值: None
|
傳回
類型 | Description |
---|---|
DataDriftDetector 物件的清單。 |
run
執行單一時間點數據漂移分析。
run(target_date, compute_target=None, create_compute_target=False, feature_list=None, drift_threshold=None)
參數
名稱 | Description |
---|---|
target_date
必要
|
以UTC計分數據的目標日期。 |
compute_target
|
選擇性的 Azure Machine Learning ComputeTarget 或 ComputeTarget 名稱。 如果未指定,則會自動建立計算目標。 預設值: None
|
create_compute_target
|
指出是否自動建立 Azure Machine Learning 計算目標。 預設值: False
|
feature_list
|
選擇性加入允許清單的功能,以執行 datadrift 偵測。 預設值: None
|
drift_threshold
|
啟用 DataDriftDetector 警示的選擇性臨界值。 預設值: None
|
傳回
類型 | Description |
---|---|
DataDriftDetector 執行。 |
show
顯示指定時間範圍內的數據漂移趨勢。
根據預設,此方法會顯示最新的10個週期。 例如,如果 frequency 是 day,則會是最近的 10 天。 如果 frequency 是 week,則這將是最新的 10 周。
show(start_time=None, end_time=None)
參數
名稱 | Description |
---|---|
start_time
|
datetime, <xref:optional>
以UTC表示時間範圍開始。 預設 None 表示會挑選最近第 10 個週期的結果。 預設值: None
|
end_time
|
datetime, <xref:optional>
以UTC表示數據時間範圍結束。 預設值 None 表示目前日期。 預設值: None
|
傳回
類型 | Description |
---|---|
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)
參數
名稱 | Description |
---|---|
compute_target
|
選擇性的 Azure Machine Learning ComputeTarget 或 ComputeTarget 名稱。 如果未指定此參數,DataDriftDetector 將會建立計算目標。 預設值: Ellipsis
|
feature_list
|
要執行 datadrift 偵測的允許清單功能。 預設值: Ellipsis
|
schedule_start
|
以UTC為單位的數據漂移排程開始時間。 預設值: Ellipsis
|
alert_config
|
DataDriftDetector 警示的選擇性組態物件。 預設值: Ellipsis
|
drift_threshold
|
啟用 DataDriftDetector 警示的臨界值。 預設值: Ellipsis
|
wait_for_completion
|
是否要等候啟用/停用/刪除作業完成。 預設值: True
|
傳回
類型 | Description |
---|---|
自我 |
屬性
alert_config
baseline_dataset
compute_target
drift_threshold
drift_type
enabled
feature_list
frequency
interval
latency
name
schedule_start
state
表示 DataDriftDetector 排程的狀態。
傳回
類型 | Description |
---|---|
其中一個是 'Disabled'、'Enabled'、'Deleted'、'Disableing'、'Enableing'、'Delete'、'Failed'、'DisableFailed'、'EnableFailed'、'DeleteFailed'。 |