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)

パラメーター

名前 説明
workspace
必須

DataDriftDetector オブジェクトを作成するワークスペース。

name
str

DataDriftDetector オブジェクトの一意の名前。

規定値: None
baseline_dataset

ターゲット データセットと比較するデータセット。

規定値: None
target_dataset

アドホックまたはスケジュールされた DataDrift ジョブのどちらかを実行するためのデータセット。 時系列にする必要があります。

規定値: None
compute_target
ComputeTarget または str

オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 指定されなかった場合は、DataDriftDetector によってコンピューティング先が作成されます。

規定値: None
frequency
str

パイプラインの実行頻度を示すオプションの頻度。 "Day"、"Week"、または "Month" をサポートしています。

規定値: None
feature_list

データ ドリフト検出を実行するためのオプションのホワイトリストに登録された特徴。 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
必須
ComputeTarget または str

オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 指定されなかった場合は、DataDriftDetector によってコンピューティング先が作成されます。

frequency
必須
str

パイプラインの実行頻度を示すオプションの頻度。 "Day"、"Week"、または "Month" をサポートしています。

feature_list
必須

データ ドリフト検出を実行するためのオプションのホワイトリストに登録された特徴。 feature_list が指定されなかった場合は、DataDriftDetector ジョブがすべての特徴で実行されます。 特徴リストには、文字、数字、ダッシュ、および空白を含めることができます。 リストの長さは 200 未満にする必要があります。

alert_config
必須

DataDriftDetector アラートのオプションの構成オブジェクト。

drift_threshold
必須

DataDriftDetector アラートを有効にするためのオプションのしきい値。 この値は、0 から 1 までの値である必要があります。 None が指定された場合 (既定) は、0.2 の値が使用されます。

latency
必須
int

データがデータセットに表示される際の遅延 (時間単位)。

注釈

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 オブジェクトのリストを取得します。

注:workspace パラメーターのみを渡すと、ワークスペースで定義されたすべての DataDriftDetector オブジェクトが返されます。

run

単一時点データ ドリフト分析を実行します。

show

指定された時間範囲内のデータ ドリフト傾向を表示します。

既定で、このメソッドは最新の 10 サイクルを表示します。 たとえば、頻度が Day の場合は、最新の 10 日間になります。 頻度が Week の場合は、最新の 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
ComputeTarget または str

オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 None が指定された場合は、DataDriftDetector によってコンピューティング先が作成されます。

規定値: None
create_compute_target

Azure Machine Learning コンピューティング先が自動的に作成されるかどうかを示します。

規定値: 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
ComputeTarget または str

オプションの Azure Machine Learning ComputeTarget または ComputeTarget 名。 指定されなかった場合は、DataDriftDetector によってコンピューティング先が作成されます。

規定値: None
frequency
str

パイプラインの実行頻度を示すオプションの頻度。 "Day"、"Week"、または "Month" をサポートしています。

規定値: None
feature_list

データ ドリフト検出を実行するためのオプションのホワイトリストに登録された特徴。 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>

注釈

データセットベースの 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
必須
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 にするという 1 つの方法しかありません。

  • スケジュールされた実行とバックフィル実行の結果を取得するには、有効な GUID を run_id に割り当てるか、run_id を None にしたまま特定の start_time および/または end_time (包含) を割り当てるかの 2 つの方法があります。

  • run_idstart_time、および end_time が同じメソッド呼び出しで None でない場合は、パラメーター検証例外が発生します。

注:start_time パラメーターと end_time パラメーターか、run_id パラメーターのどちらかを指定し、両方は指定しません。

同じターゲット日 (ターゲット日はデータセットベースのドリフトのターゲット データセット開始日を意味する) の結果が複数存在する場合があります。 そのため、重複する結果を特定して処理する必要があります。 データセットベースのドリフトの場合、結果が同じターゲット日のものであれば、それらが重複した結果です。 get_output メソッドは、重複した結果を 1 つのルール (常に、最後に生成された結果を取得する) で重複排除します。

get_output メソッドを使用すると、start_timeend_time の間の特定の時間範囲 (境界を含む) 内でスケジュールされた実行のすべての出力または部分的な出力を取得できます。 run_id を指定して、個々の アドホックの結果を制限することもできます。

get_output メソッドから返された結果の解釈を容易にするために、次のガイドラインを使用してください。

  • フィルタリングの原則は "重複" です。実際の結果の時間 (データセットベース: ターゲット データセット [開始日、終了日]) と指定された [start_timeend_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

戻り値

説明
Run

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

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) の datetime オブジェクト。

state

DataDriftDetector スケジュールの状態を表します。

戻り値

説明
str

'Disabled'、'Enabled'、'Deleted'、'Disabling'、'Enabling'、'Deleting'、'Failed'、'DisableFailed'、'EnableFailed'、'DeleteFailed' のいずれか。

target_dataset

DataDriftDetector オブジェクトに関連付けられたターゲット データセットを取得します。

戻り値

説明

ベースライン データセットのデータセット型。

workspace

DataDriftDetector オブジェクトのワークスペースを取得します。

戻り値

説明

DataDriftDetector オブジェクトが作成されたワークスペース。