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>' ]
Copy

注釈

名前付き引数を使用すると引数の順序が関係なくなり、読みやすいコードになります。ただし、次の例のように位置引数を使うこともできます。

CREATE SNOWFLAKE.ML.FORECAST <name>(
  '<input_data>', '<series_colname>', '<timestamp_colname>', '<target_colname>'
);
Copy

パラメーター

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_colnametarget_colname、または series_colname という名前以外の列が含まれている場合、それらは外生変数(追加特徴量)とみなされます。入力データの列の順番は重要ではありません。

入力データには、ユースケースに適した型の列が必要です。各ユースケースの詳細については、 をご参照ください。

ユースケース

列および型

単一時系列

複数時系列

  • 系列の列: 数値とテキストを含む 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

STRING

'MODE'

カテゴリ特徴量の集計方法。サポートされる値は次のとおりです。

  • 'MODE': 最も頻度の高い値。

  • 'FIRST': 最も古い値。

  • 'LAST': 最も新しい値。

aggregation_numeric

STRING

'MEAN'

数値特徴量の集計方法。サポートされる値は次のとおりです。

  • 'MEAN': 平均値。

  • 'MEDIAN': 中間値。

  • MODE: 最も頻度の高い値。

  • 'MIN': 最も小さい値。

  • 'MAX': 最も大きい値。

  • 'SUM': 合計値。

  • 'FIRST': 最も古い値。

  • 'LAST': 最も新しい値。

aggregation_target

STRING

指定がない場合は aggregation_numeric、 または 'MEAN' と同じ。

目標値の集計方法。サポートされる値は次のとおりです。

  • 'MEAN': 平均値。

  • 'MEDIAN': 中間値。

  • MODE: 最も頻度の高い値。

  • 'MIN': 最も小さい値。

  • 'MAX': 最も大きい値。

  • 'SUM': 合計値。

  • 'FIRST': 最も古い値。

  • 'LAST': 最も新しい値。

aggregation_column

オブジェクト

なし

特定の列の集計方法を指定するキーと値のペア(両方とも文字列)を含むオブジェクト。キーは列名で、値は集約方法です。列が指定されない場合、モデルは aggregation_numeric または aggregation_categorical で指定された方法、またはその列のタイプのデフォルト(数値の場合は MEAN、 カテゴリカルの場合は MODE) を使用します。

evaluate

BOOLEAN

TRUE

評価メトリクスを生成すべきかどうか。TRUE の場合、 evaluation_config のパラメーターを使用して、クロスバリデーション用の追加モデルがトレーニングされます。

evaluation_config

OBJECT

以下の 評価構成 をご参照ください。

サンプル外評価メトリクスを生成する方法を指定するオプションの構成オブジェクト。

frequency

STRING

なし

時系列の頻度。指定がない場合は、モデルが頻度を推測します。値は '1 day' などの、期間を表す文字列でなければなりません。サポートされる単位は、seconds、minutes、hours、days、weeks、months、quarters、およびyearsです。単数形("hour")でも複数形("hours")でもかまいませんが、省略形は使用できません。

on_error

STRING

'ABORT'

モデルトレーニングタスクのエラー処理メソッドを指定する文字列(定数)。これは、複数の系列をトレーニングする場合に最も役に立ちます。サポートされる値は次のとおりです。

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

  • 'skip': トレーニングでエラーが発生した時系列はスキップします。これにより、他の時系列でもモデルトレーニングを成功させることができます。どの系列が失敗したかを確認するには、モデルの <モデル名>!SHOW_TRAINING_LOGS メソッドを使用します。

評価構成

evaluation_config オブジェクトには、クロスバリデーションを構成するキーと値のペアが含まれています。これらのパラメーターは、scikit-learnの TimeSeriesSplit に由来します。

キー

デフォルト

説明

n_splits

INTEGER

1

スプリットの数。

max_train_size

INTEGER またはNULL(最大値なし)。

NULL

単一トレーニングセットの最大サイズ。

test_size

INTEGER または NULL。

NULL

テストセットのサイズを制限するために使用。

gap

INTEGER

0

テストセットの前に各トレーニングセットの最後から除外するサンプル数。

prediction_interval

FLOAT

0.95

間隔メトリクスの計算に使用される予測区間。

使用上の注意

レプリケーション は、 CUSTOM_CLASSIFIER クラスのインスタンス以外のクラスインスタンスではサポートされません。

をご参照ください。