CREATE SNOWFLAKE.ML.FORECAST¶
提供するトレーニングデータから新しい予測モデルを作成するか、同名の予測モデルを置き換えます。
構文¶
CREATE [ OR REPLACE ] SNOWFLAKE.ML.FORECAST [ IF NOT EXISTS ] <model_name>(
INPUT_DATA => <input_data>,
[ SERIES_COLNAME => '<series_colname>', ]
TIMESTAMP_COLNAME => '<timestamp_colname>',
TARGET_COLNAME => '<target_colname>',
[ CONFIG_OBJECT => <config_object> ]
)
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
注釈
名前付き引数を使用すると引数の順序が関係なくなり、読みやすいコードになります。ただし、次の例のように位置引数を使うこともできます。
CREATE SNOWFLAKE.ML.FORECAST <name>(
'<input_data>', '<series_colname>', '<timestamp_colname>', '<target_colname>'
);
パラメーター¶
model_name
モデルの識別子を指定します。これは、モデルが作成されるスキーマに対して一意にする必要があります。
モデル識別子が完全修飾されていない場合(
db_name.schema_name.name
またはschema_name.name
の形式)、コマンドは、セッションの現在のスキーマにモデルを作成します。また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
コンストラクター引数¶
必須:
INPUT_DATA => input_data
入力データへの 参照。参照を使用すると、制限付き権限で実行されるトレーニングプロセスで、ご自身の権限を使用してデータにアクセスできるようになります。データがすでにそのような形式になっている場合は、テーブルまたはビューへの参照を使用できます。または、 クエリ参照 を使用して、データを取得するために実行するクエリを指定することもできます。
この参照を作成するには、 TABLE キーワード をテーブル名、ビュー名、クエリと共に使用するか、 SYSTEM$REFERENCE または SYSTEM$QUERY_REFERENCE 関数を呼び出します。
参照されるデータは、予測モデルによって消費されるトレーニングデータ全体です。
input_data
に、timestamp_colname
、target_colname
、またはseries_colname
という名前以外の列が含まれている場合、それらは外生変数(追加特徴量)とみなされます。入力データの列の順番は重要ではありません。入力データには、ユースケースに適した型の列が必要です。各ユースケースの詳細については、 例 をご参照ください。
ユースケース
列および型
単一時系列
タイムスタンプ列: TIMESTAMP_NTZ。
ターゲット値列: FLOAT。
複数時系列
系列の列: 数値とテキストを含む VARIANT。
タイムスタンプ列: TIMESTAMP_NTZ。
ターゲット値列: FLOAT。
外生変数を含む単一時系列
タイムスタンプ列: TIMESTAMP_NTZ。
ターゲット値列: FLOAT。
外生変数を含む複数時系列
系列の列: 数値とテキストを含む VARIANT。
タイムスタンプ列: TIMESTAMP_NTZ。
ターゲット値列: FLOAT。
TIMESTAMP_COLNAME => 'timestamp_colname'
input_data
でタイムスタンプを含む列の名前。TARGET_COLNAME => 'target_colname'
input_data
でターゲット(依存値)を含む列の名前。
オプション:
SERIES_COLNAME => 'series_colname'
複数時系列モデルの場合は、
input_data
内の複数時系列を定義する列の名前。この列は、 複数系列の予測 に示すように、1つ以上の異なる列からの任意の型による値または値の配列にすることができます。位置的に引数を提供する場合、これは 2番目 の引数にする必要があります。
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'
: 最も新しい値。
aggregation_column
なし
特定の列の集計方法を指定するキーと値のペア(両方とも文字列)を含むオブジェクト。キーは列名で、値は集約方法です。列が指定されない場合、モデルは
aggregation_numeric
またはaggregation_categorical
で指定された方法、またはその列のタイプのデフォルト(数値の場合はMEAN
、 カテゴリカルの場合はMODE
) を使用します。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 に由来します。
使用上の注意¶
レプリケーション は、 CUSTOM_CLASSIFIER クラスのインスタンス以外のクラスインスタンスではサポートされません。
例¶
例 をご参照ください。