CREATE SNOWFLAKE.ML.ANOMALY_DETECTION¶
提供されたトレーニングデータを使用して、新しい異常検出モデルを作成するか、既存のモデルを置き換えます。
構文¶
CREATE [ OR REPLACE ] SNOWFLAKE.ML.ANOMALY_DETECTION <model_name>(
INPUT_DATA => <reference_to_training_data>,
[ SERIES_COLNAME => '<series_column_name>', ]
TIMESTAMP_COLNAME => '<timestamp_column_name>',
TARGET_COLNAME => '<target_column_name>',
LABEL_COLNAME => '<label_column_name>',
[ CONFIG_OBJECT => <config_object> ]
)
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
パラメーター¶
model_name
異常検出オブジェクトの識別子(モデル名)を指定します。オブジェクトが作成されるスキーマに対して一意にする必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
コンストラクター引数¶
必須:
INPUT_DATA => reference_to_training_data
モデルのトレーニングデータを返すテーブル、ビュー、クエリへの 参照 を指定します。
この参照を作成するには、 TABLE キーワード をテーブル名、ビュー名、クエリと共に使用するか、 SYSTEM$REFERENCE または SYSTEM$QUERY_REFERENCE 関数を呼び出します。
TIMESTAMP_COLNAME => 'timestamp_column_name'
時系列データのタイムスタンプ(TIMESTAMP_NTZ)を含む列の名前を指定します。
TARGET_COLNAME => 'target_column_name'
分析するデータ(NUMERIC または FLOAT)を含む列の名前を指定します。
LABEL_COLNAME => 'label_column_name'
データのラベルを含む列の名前を指定します。ラベルは、指定の行が既知の異常であるかどうかを示すブール値(true/false)です。ラベル付きデータがない場合は、この引数に空の文字列(
''
)を渡します。
オプション:
SERIES_COLNAME => 'series_column_name'
系列の識別子を含む列の名前(複数系列の場合)。この列は、任意の種類の値、または配列内にある複数列からの値の組み合わせである可能性があるため、 VARIANT にする必要があります。
CONFIG_OBJECT => config_object
モデルトレーニングジョブの構成に使用されるキーと値のペアを含む OBJECT。
キー
型
デフォルト
説明
aggregation_categorical
'MODE'
カテゴリ特徴量の集計方法。サポートされる値は次のとおりです。
'MODE'
: 最も頻度の高い値。'FIRST'
: 最も古い値。'LAST'
: 最も新しい値。
aggregation_numeric
'MEAN'
数値特徴量の集計方法。サポートされる値は次のとおりです。
'MEAN'
: 平均値。'MEDIAN'
: 中間値。MODE
: 最も頻度の高い値。'MIN'
: 最も小さい値。'MAX'
: 最も大きい値。'SUM'
: 合計値。'FIRST'
: 最も古い値。'LAST'
: 最も新しい値。
aggregation_target
指定がない場合は
aggregation_numeric
、 または'MEAN'
と同じ。目標値の集計方法。サポートされる値は次のとおりです。
'MEAN'
: 平均値。'MEDIAN'
: 中間値。MODE
: 最も頻度の高い値。'MIN'
: 最も小さい値。'MAX'
: 最も大きい値。'SUM'
: 合計値。'FIRST'
: 最も古い値。'LAST'
: 最も新しい値。
evaluate
TRUE
評価メトリクスを生成すべきかどうか。TRUE の場合は、
evaluation_config
のパラメーターを使用して、交差検証用の追加モデルがトレーニングされます。evaluation_config
評価構成 をご参照ください。
サンプル外評価メトリクスを生成する方法を指定するオプションの構成オブジェクト。次のセクションをご参照ください。
frequency
なし
時系列の頻度。指定がない場合は、モデルが頻度を推測します。値は
'1 day'
などの、期間を表す文字列でなければなりません。サポートされる単位は、seconds、minutes、hours、days、weeks、months、quarters、およびyearsです。単数形("hour")でも複数形("hours")でもかまいませんが、省略形は使用できません。on_error
'ABORT'
トレーニングのエラー処理メソッドを指定する文字列(定数)。これは、複数の系列をトレーニングする場合に最も役に立ちます。サポートされる値は次のとおりです。
'abort'
: いずれかの時系列でエラーが発生した場合、トレーニングを中断します。'skip'
: トレーニングでエラーが発生した時系列はスキップします。これにより、他の時系列でもトレーニングを成功させることができます。モデルのトレーニング中にどの系列が失敗したかを確認するには、モデルの <モデル名>!SHOW_TRAINING_LOGS メソッドを呼び出します。
評価構成¶
evaluation_config
オブジェクトには、クロスバリデーションを構成するキーと値のペアが含まれています。これらのパラメーターは、scikit-learn TimeSeriesSplit クロスバリデーターからのものです。
キー |
型 |
デフォルト |
説明 |
---|---|---|---|
|
5 |
スプリットの数。 |
|
|
INTEGER またはNULL(最大値なし)。 |
NULL |
単一トレーニングセットの最大サイズ。 |
|
INTEGER または NULL。 |
NULL |
テストセットのサイズを制限するために使用。 |
|
0 |
テストセットの前に各トレーニングセットの最後から除外するサンプル数。 |
|
|
0.95 |
間隔メトリクスの計算に使用される予測区間。 |
使用上の注意¶
TIMESTAMP_COLNAME、 TARGET_COLNAME、または LABEL_COLNAME 引数で指定された列名が、 INPUT_DATA 引数で指定されたテーブル、ビュー、またはクエリに存在しない場合はエラーが発生します。
レプリケーション は、 CUSTOM_CLASSIFIER クラスのインスタンス以外のクラスインスタンスではサポートされません。
例¶
代表的な例については、 異常検出の例 をご参照ください。