<モデル名>!DETECT_ANOMALIES¶
メソッドに渡された入力データの異常を検出して報告します。これは、 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION コマンドを実行して作成した異常検出オブジェクトのメソッドです。
このメソッドは、入力データの各行が異常かどうかのラベル付けをしたテーブルを返します。
このメソッドが返すデータから特定の列を選択する必要がある場合は、 SELECT ステートメントの FROM 句でこのメソッドを呼び出します。 表形式データを返す SQL クラスインスタンスメソッドからの列の選択 をご参照ください。
構文¶
<model_name>!DETECT_ANOMALIES(
INPUT_DATA => <reference_to_data_to_analyze>,
TIMESTAMP_COLNAME => '<timestamp_column_name>',
TARGET_COLNAME => '<target_column_name>',
[ CONFIG_OBJECT => <configuration_object>, ]
[ SERIES_COLNAME => '<series_column_name>' ]
)
注釈
model_name
は、 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION コマンドを実行して作成したオブジェクトです。
引数¶
必須:
INPUT_DATA => reference_to_data_to_analyze
分析するデータを返すテーブル、ビュー、クエリへの 参照。
この参照を作成するには、 TABLE キーワード をテーブル名、ビュー名、クエリと共に使用するか、 SYSTEM$REFERENCE または SYSTEM$QUERY_REFERENCE 関数を呼び出します。
TIMESTAMP_COLNAME => 'timestamp_column_name'
時系列データのタイムスタンプ(TIMESTAMP_NTZ)を含む列の名前。
TARGET_COLNAME => 'target_column_name'
分析するデータを含む列の名前(NUMERIC または FLOAT 型)。
オプション:
SERIES_COLNAME => 'series_column_name'
系列の識別子を含む列の名前(複数系列の場合)。この列は、任意の種類の値、または配列内にある複数列からの値である可能性があるため、 VARIANT にする必要があります。
CONFIG_OBJECT => config_object
異常検出ジョブの構成に使用されるキーと値のペアを含む OBJECT。
キー
型
デフォルト
説明
prediction_interval
0.99
異常としてマークするオブザベーションの割合を指定する0から1の間の値。
より厳密ではない異常検出(つまり、異常としてマークされたオブザベーションを少なく識別する)には、より高い値を指定します。
より厳密な異常検出(つまり、より多くのオブザベーションを異常として識別する)には、この値を減らします。
on_error
'ABORT'
異常検出タスクのエラー処理を指定する文字列(定数)。これは、複数の系列の異常を検出する場合に最も役に立ちます。サポートされる値は次のとおりです。
'abort'
: いずれかの時系列でエラーが発生した場合、操作を中断します。'skip'
: 異常検知でエラーが発生した時系列はスキップします。これにより、他の時系列でも異常検知を成功させることができます。失敗した系列は出力から除外されます。
戻り値¶
この関数は、次の列を返します。
列名 |
データ型 |
説明 |
---|---|---|
SERIES |
系列値(モデルが単一時系列でトレーニングされた場合は NULL)。 |
|
TS |
TIMESTAMP_NTZ |
データのタイムスタンプ |
Y |
FLOAT |
時系列の値 |
FORECAST |
FLOAT |
タイムスタンプでの予測値。 |
LOWER_BOUND |
FLOAT |
予測区間内の値の下限。これより低い値には異常としてフラグが立てられます。 |
UPPER_BOUND |
FLOAT |
予測区間内の値の上限。これより高い値には異常としてフラグが立てられます。 |
IS_ANOMALY |
BOOLEAN |
値が異常であればtrue、異常でなければfalse。 |
PERCENTILE |
FLOAT |
予測区間を指定した場合の、観測されたY値の対応するパーセンタイル。 パーセンタイルが 構成オブジェクトで |
DISTANCE |
FLOAT |
FORECAST 列からの標準偏差の倍数(zスコア) |
使用上の注意¶
CREATE SNOWFLAKE.ML.ANOMALY_DETECTION コマンド(INPUT_DATA コンストラクター引数)で指定されたデータの列は、このメソッドの INPUT_DATA 引数で指定されたデータの列と一致する必要があります。
たとえば、 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION コマンドに SERIES_COLNAME 引数を渡した場合は、このメソッドにも SERIES_COLNAME 引数を渡す必要があります。コマンドで SERIES_COLNAME 引数を省略した場合は、ここでもその引数を省略する必要があります。
TIMESTAMP_COLNAME または TARGET_COLNAME 引数で指定された列名が、 INPUT_DATA 引数で指定されたテーブル、ビュー、またはクエリに存在しない場合はエラーが発生します。