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) を使用します。evaluateTRUE
評価メトリクスを生成すべきかどうか。TRUE の場合、
evaluation_configのパラメーターを使用して、クロスバリデーション用の追加モデルがトレーニングされます。evaluation_config以下の 評価構成 をご参照ください。
サンプル外評価メトリクスを生成する方法を指定するオプションの構成オブジェクト。
frequencyなし
時系列の頻度。指定がない場合は、モデルが頻度を推測します。値は
'1 day'などの、期間を表す文字列でなければなりません。サポートされる単位は、seconds、minutes、hours、days、weeks、months、quarters、およびyearsです。単数形("hour")でも複数形("hours")でもかまいませんが、省略形は使用できません。method'best'モデルの学習に使用するアルゴリズムを指定する文字列(定数)。サポートされる値は次のとおりです。
'best': モデルのアンサンブルを使用して、データに最適なアルゴリズムを決定します。このアンサンブルには、 Prophet, ARIMA、 指数平滑法、 勾配ブースティングマシン(GBM) ベースのアルゴリズムが含まれます。'fast': 単一のアルゴリズム(GBM ベースのアルゴリズム)を使用してモデルをトレーニングします。このオプションは、'best'オプションよりも高速ですが、精度に劣る可能性があります。トレーニングデータが10,000個以上の系列を持つ場合は、'fast'を使用することをお勧めします。
lower_boundFLOAT または NULL
NULL
ターゲット値の下限。指定された場合、モデルはこのしきい値を下回る値を予測しません。
upper_boundFLOAT または NULL
NULL
ターゲット値の上限。指定された場合、モデルはこのしきい値を上回る値を予測しません。
on_error'ABORT'モデルトレーニングタスクのエラー処理メソッドを指定する文字列(定数)。これは、複数の系列をトレーニングする場合に最も役に立ちます。サポートされる値は次のとおりです。
'abort': いずれかの時系列でエラーが発生した場合、トレーニング操作を中止します。'skip': トレーニングでエラーが発生した時系列はスキップします。これにより、他の時系列でもモデルトレーニングを成功させることができます。どの系列が失敗したかを確認するには、モデルの <モデル名>!SHOW_TRAINING_LOGS メソッドを使用します。
評価構成¶
evaluation_config オブジェクトには、クロスバリデーションを構成するキーと値のペアが含まれています。これらのパラメーターは、scikit-learnの TimeSeriesSplit に由来します。
使用上の注意¶
複製 は、 CUSTOM_CLASSIFIER クラスのインスタンスに対してのみサポートされます。
例¶
例 をご参照ください。