<モデル名>!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>' ]
)
Copy

注釈

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

FLOAT

0.99

異常としてマークするオブザベーションの割合を指定する0から1の間の値。

  • より厳密ではない異常検出(つまり、異常としてマークされたオブザベーションを少なく識別する)には、より高い値を指定します。

  • より厳密な異常検出(つまり、より多くのオブザベーションを異常として識別する)には、この値を減らします。

on_error

STRING

'ABORT'

異常検出タスクのエラー処理を指定する文字列(定数)。これは、複数の系列の異常を検出する場合に最も役に立ちます。サポートされる値は次のとおりです。

  • 'abort': いずれかの時系列でエラーが発生した場合、操作を中断します。

  • 'skip': 異常検知でエラーが発生した時系列はスキップします。これにより、他の時系列でも異常検知を成功させることができます。失敗した系列は出力から除外されます。

戻り値

この関数は、次の列を返します。

列名

データ型

説明

SERIES

VARIANT

系列値(モデルが単一時系列でトレーニングされた場合は NULL)。

TS

TIMESTAMP_NTZ

データのタイムスタンプ

Y

FLOAT

時系列の値

FORECAST

FLOAT

タイムスタンプでの予測値。

LOWER_BOUND

FLOAT

予測区間内の値の下限。これより低い値には異常としてフラグが立てられます。

UPPER_BOUND

FLOAT

予測区間内の値の上限。これより高い値には異常としてフラグが立てられます。

IS_ANOMALY

BOOLEAN

値が異常であればtrue、異常でなければfalse。

PERCENTILE

FLOAT

予測区間を指定した場合の、観測されたY値の対応するパーセンタイル。

パーセンタイルが ((1 - alpha) / 2, 1 - (1 - alpha) / 2) の外側にある場合、その値には異常としてフラグが立てられます。たとえば、予測区間が0.95の場合、0.96のパーセンタイルは異常では ありませんが、0.98のパーセンタイルは異常になります。

構成オブジェクトで prediction_interval フィールドが指定されていない場合、デフォルトは0.99です。

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 引数で指定されたテーブル、ビュー、またはクエリに存在しない場合はエラーが発生します。