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)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
DataDriftDetector オブジェクトを作成するワークスペース。 |
name
|
DataDriftDetector オブジェクトの一意の名前。 規定値: None
|
baseline_dataset
|
ターゲット データセットと比較するデータセット。 規定値: None
|
target_dataset
|
アドホックまたはスケジュールされた DataDrift ジョブのどちらかを実行するためのデータセット。 時系列にする必要があります。 規定値: None
|
compute_target
|
ComputeTarget または
str
オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 指定されなかった場合は、DataDriftDetector によってコンピューティング先が作成されます。 規定値: None
|
frequency
|
パイプラインの実行頻度を示すオプションの頻度。 "Day"、"Week"、または "Month" をサポートしています。 規定値: None
|
feature_list
|
データ ドリフト検出を実行するためのオプションのホワイトリストに登録された特徴。
規定値: 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
必須
|
ComputeTarget または
str
オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 指定されなかった場合は、DataDriftDetector によってコンピューティング先が作成されます。 |
frequency
必須
|
パイプラインの実行頻度を示すオプションの頻度。 "Day"、"Week"、または "Month" をサポートしています。 |
feature_list
必須
|
データ ドリフト検出を実行するためのオプションのホワイトリストに登録された特徴。
|
alert_config
必須
|
DataDriftDetector アラートのオプションの構成オブジェクト。 |
drift_threshold
必須
|
DataDriftDetector アラートを有効にするためのオプションのしきい値。 この値は、0 から 1 までの値である必要があります。 None が指定された場合 (既定) は、0.2 の値が使用されます。 |
latency
必須
|
データがデータセットに表示される際の遅延 (時間単位)。 |
注釈
DataDriftDetector オブジェクトは、3 つのジョブ実行の種類を実行するために使用可能なデータ ドリフト ジョブ定義を表します。
特定の日のデータを分析するための アドホック実行。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
完全なサンプルは、https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/work-with-data/datadrift-tutorial/datadrift-tutorial.ipynb から入手できます
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 サイクルを表示します。 たとえば、頻度が Day の場合は、最新の 10 日間になります。 頻度が Week の場合は、最新の 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
|
ComputeTarget または
str
オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 None が指定された場合は、DataDriftDetector によってコンピューティング先が作成されます。 規定値: None
|
create_compute_target
|
Azure Machine Learning コンピューティング先が自動的に作成されるかどうかを示します。 規定値: 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
|
ComputeTarget または
str
オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 指定されなかった場合は、DataDriftDetector によってコンピューティング先が作成されます。 規定値: None
|
frequency
|
パイプラインの実行頻度を示すオプションの頻度。 "Day"、"Week"、または "Month" をサポートしています。 規定値: None
|
feature_list
|
データ ドリフト検出を実行するためのオプションのホワイトリストに登録された特徴。
規定値: None
|
alert_config
|
DataDriftDetector アラートのオプションの構成オブジェクト。 規定値: None
|
drift_threshold
|
DataDriftDetector アラートを有効にするためのオプションのしきい値。 この値は、0 から 1 までの値である必要があります。 None が指定された場合 (既定) は、0.2 の値が使用されます。 規定値: None
|
latency
|
データがデータセットに表示される際の遅延 (時間単位)。 規定値: None
|
戻り値
型 | 説明 |
---|---|
DataDriftDetector オブジェクト。 |
例外
型 | 説明 |
---|---|
<xref:KeyError>, <xref:TypeError>, <xref:ValueError>
|
注釈
データセットベースの DataDriftDetector を使用すると、ベースライン データセット (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 Machine Learning コンピューティング先が自動的に作成されるかどうかを示します。 規定値: 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 にするという 1 つの方法しかありません。スケジュールされた実行とバックフィル実行の結果を取得するには、有効な GUID を
run_id
に割り当てるか、run_id
を None にしたまま特定のstart_time
および/またはend_time
(包含) を割り当てるかの 2 つの方法があります。run_id
、start_time
、およびend_time
が同じメソッド呼び出しで None でない場合は、パラメーター検証例外が発生します。
注:start_time
パラメーターと end_time
パラメーターか、run_id
パラメーターのどちらかを指定し、両方は指定しません。
同じターゲット日 (ターゲット日はデータセットベースのドリフトのターゲット データセット開始日を意味する) の結果が複数存在する場合があります。 そのため、重複する結果を特定して処理する必要があります。
データセットベースのドリフトの場合、結果が同じターゲット日のものであれば、それらが重複した結果です。
get_output
メソッドは、重複した結果を 1 つのルール (常に、最後に生成された結果を取得する) で重複排除します。
get_output
メソッドを使用すると、start_time
と end_time
の間の特定の時間範囲 (境界を含む) 内でスケジュールされた実行のすべての出力または部分的な出力を取得できます。
run_id
を指定して、個々の アドホックの結果を制限することもできます。
get_output
メソッドから返された結果の解釈を容易にするために、次のガイドラインを使用してください。
フィルタリングの原則は "重複" です。実際の結果の時間 (データセットベース: ターゲット データセット [開始日、終了日]) と指定された [
start_time
、end_time
] の間に重複がある限り、結果が取得されます。1 つのターゲット日の出力が複数存在する場合 (その日のドリフト計算が複数回実行されたため) は、既定で、最後の出力だけが選択されます。
複数の種類のデータ ドリフト インスタンスが存在する場合は、結果の内容が異なる可能性があります。
データセットベースの結果の場合、出力は次のようになります。
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
|
ComputeTarget または
str
オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 指定されなかった場合は、自動的にコンピューティング先が作成されます。 規定値: None
|
create_compute_target
|
Azure Machine Learning コンピューティング先が自動的に作成されるかどうかを示します。 規定値: False
|
feature_list
|
データ ドリフト検出を実行するためのオプションのホワイトリストに登録された特徴。 規定値: None
|
drift_threshold
|
DataDriftDetector アラートを有効にするためのオプションのしきい値。 規定値: None
|
戻り値
型 | 説明 |
---|---|
DataDriftDetector 実行。 |
show
指定された時間範囲内のデータ ドリフト傾向を表示します。
既定で、このメソッドは最新の 10 サイクルを表示します。 たとえば、頻度が Day の場合は、最新の 10 日間になります。 頻度が Week の場合は、最新の 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
|
ComputeTarget または
str
オプションの Azure Machine Learning 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
DataDriftDetector の型を取得します。'DatasetBased' が現在サポートされている唯一の値です。
戻り値
型 | 説明 |
---|---|
DataDriftDetector オブジェクトの型。 |
enabled
feature_list
frequency
interval
latency
name
schedule_start
state
DataDriftDetector スケジュールの状態を表します。
戻り値
型 | 説明 |
---|---|
'Disabled'、'Enabled'、'Deleted'、'Disabling'、'Enabling'、'Deleting'、'Failed'、'DisableFailed'、'EnableFailed'、'DeleteFailed' のいずれか。 |