共用方式為


DataDriftDetector 類別

定義數據漂移監視器,可用來在 Azure Machine Learning 中執行數據漂移作業。

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)

參數

名稱 Description
workspace
必要

要在其中建立 DataDriftDetector 物件的工作區。

name
str

DataDriftDetector 物件的唯一名稱。

預設值: None
baseline_dataset

要比較目標數據集的數據集。

預設值: None
target_dataset

要執行 adhoc 或排程 DataDrift 作業的數據集。 必須是時間序列。

預設值: None
compute_target

選擇性的 Azure Machine Learning 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
必要

要執行 adhoc 或排程 DataDrift 作業的數據集。 必須是時間序列。

compute_target
必要

選擇性的 Azure Machine Learning 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 物件才支援 Backfill。

create_from_datasets

從基準表格式數據集和目標時間序列數據集建立新的 DataDriftDetector 物件。

delete

刪除 DataDriftDetector 物件的排程。

disable_schedule

停用 DataDriftDetector 物件的排程。

enable_schedule

建立排程以執行以數據集為基礎的 DataDriftDetector 作業。

get_by_name

擷取指定工作區和名稱的唯一 DataDriftDetector 物件。

get_output

取得特定時間範圍中特定 DataDriftDetector 之漂移結果和計量的 Tuple。

list

取得指定工作區和選擇性數據集的 DataDriftDetector 物件清單。

注意: 只傳入 workspace 參數會傳回工作區中定義的所有 DataDriftDetector 物件。

run

執行單一時間點數據漂移分析。

show

顯示指定時間範圍內的數據漂移趨勢。

根據預設,此方法會顯示最新的10個週期。 例如,如果 frequency 是 day,則會是最近的 10 天。 如果 frequency 是 week,則這將是最新的 10 周。

update

更新與 DataDriftDetector 對象相關聯的排程。

選擇性參數值可以設定為 None,否則會預設為現有的值。

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
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)

參數

名稱 Description
workspace
必要

要建立 DataDriftDetector 的工作區。

name
必要
str

DataDriftDetector 物件的唯一名稱。

baseline_dataset
必要

要比較目標數據集的數據集。

target_dataset
必要

要執行 adhoc 或排程 DataDrift 作業的數據集。 必須是時間序列。

compute_target

選擇性的 Azure Machine Learning 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

傳回

類型 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
必要
str

要傳回之 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 個週期的結果作為開始時間。 例如,如果數據漂移排程的頻率是天,則 start_time 為 10 天。 如果 frequency 為 week,則 start_time 為 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_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)

參數

名稱 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
Run

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

取得 DataDriftDetector 物件的警示組態。

傳回

類型 Description

AlertConfiguration 物件。

baseline_dataset

取得與 DataDriftDetector 對象相關聯的基準數據集。

傳回

類型 Description

基準數據集的數據集類型。

compute_target

取得附加至 DataDriftDetector 物件的計算目標。

傳回

類型 Description

計算目標。

drift_threshold

取得 DataDriftDetector 物件的漂移閾值。

傳回

類型 Description

漂移閾值。

drift_type

取得 DataDriftDetector 的類型,『DatasetBased』 是目前唯一支援的值。

傳回

類型 Description
str

DataDriftDetector 物件的類型。

enabled

取得布爾值,指出是否啟用 DataDriftDetector 物件。

傳回

類型 Description

布爾值;True 是表示 已啟用。

feature_list

取得 DataDriftDetector 物件的允許清單功能清單。

傳回

類型 Description

功能名稱的清單。

frequency

取得 DataDriftDetector 排程的頻率。

傳回

類型 Description
str

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

interval

取得 DataDriftDetector 排程的間隔。

傳回

類型 Description
int

時間單位的整數值。

latency

取得 DataDriftDetector 排程作業的延遲(以小時為單位)。

傳回

類型 Description
int

代表延遲的時數。

name

取得 DataDriftDetector 物件的名稱。

傳回

類型 Description
str

DataDriftDetector 名稱。

schedule_start

取得排程的開始時間。

傳回

類型 Description

以UTC排程開始時間的 datetime 物件。

state

表示 DataDriftDetector 排程的狀態。

傳回

類型 Description
str

其中一個是 'Disabled'、'Enabled'、'Deleted'、'Disableing'、'Enableing'、'Delete'、'Failed'、'DisableFailed'、'EnableFailed'、'DeleteFailed'。

target_dataset

取得與 DataDriftDetector 物件相關聯的目標數據集。

傳回

類型 Description

基準數據集的數據集類型。

workspace

取得 DataDriftDetector 物件的工作區。

傳回

類型 Description

DataDriftDetector 物件的工作區是在 中建立的。