FORECAST

完全修飾名: SNOWFLAKE.ML.FORECAST

予測モデルは、単一または複数の時系列の予測を作成します。 CREATE SNOWFLAKE.ML.FORECAST を使用し、予測モデルを作成して訓練し、それからモデルの <モデル名>!FORECAST メソッドを使用して予測を作成します。 <モデル名>!EXPLAIN_FEATURE_IMPORTANCE メソッドは、トレーニングデータの各特徴量が予測にどのように影響するかについての情報を提供します。

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>')
  [ [ 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

入力データへの 参照。参照を使用すると、制限付き権限で実行されるトレーニングプロセスで、ご自身の権限を使用してデータにアクセスできるようになります。データがすでにそのような形式になっている場合は、テーブルまたはビューへの参照を使用できます。または、 クエリ参照 を使用して、データを取得するために実行するクエリを指定することもできます。

参照されるデータは、予測モデルによって消費されるトレーニングデータ全体です。 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番目 の引数にする必要があります。

使用上の注意

クラスインスタンスの 複製 は現在サポートされていません。

をご参照ください。

SHOW SNOWFLAKE.ML.FORECAST

すべての予測モデルをリストします。

構文

SHOW SNOWFLAKE.ML.FORECAST [ LIKE <pattern> ]
                           [ IN
                               {
                                   ACCOUNT                  |

                                   DATABASE                 |
                                   DATABASE <database_name> |

                                   SCHEMA                   |
                                   SCHEMA <schema_name>     |
                                   <schema_name>
                                }
                            ]
Copy

パラメーター

LIKE 'pattern'

オブジェクト名でコマンド出力をフィルターします。フィルターは、 SQL ワイルドカード文字(% および _)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。

たとえば、次のパターンは同じ結果を返します。

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
[ IN ... ]

オプションで、コマンドのスコープを指定します。次のいずれかを指定します。

ACCOUNT

アカウント全体の記録を返します。

DATABASE. DATABASE db_name

現在使用中のデータベースまたは指定されたデータベース(db_name)の記録を返します。

db_name なしで DATABASE を指定し、かつデータベースが使用されていない場合、キーワードは出力に影響しません。

SCHEMA. SCHEMA schema_name. schema_name

現在使用中のスキーマまたは指定されたスキーマ(schema_name)の記録を返します。

データベースが使用中の場合、または完全修飾 schema_name (例: db.schema) を指定する場合、 SCHEMA はオプションです。

データベースが使用されていない場合は、 SCHEMA を指定しても出力には影響しません。

デフォルト: セッションで現在使用中のデータベースがあるかどうかによって異なります。

  • データベース: DATABASE がデフォルトです(つまり、コマンドはデータベースで表示する権限を持つオブジェクトを返します)。

  • データベースなし: ACCOUNT はデフォルトです(つまり、コマンドは、アカウントで表示する権限を持つオブジェクトを返します)。

出力

コマンド出力では、次の列にモデルプロパティとメタデータが提供されます。

説明

created_on

モデルが作成された日時

name

モデルの名前

database_name

モデルが格納されているデータベース

schema_name

モデルが格納されているスキーマ

current_version

モデルのバージョンは、現在は1

comment

モデルのコメント

owner

モデルを所有するロールの名前

DROP SNOWFLAKE.ML.FORECAST

指定されたモデルを現在のスキーマまたは指定されたスキーマから削除します。

構文

DROP SNOWFLAKE.ML.FORECAST [IF EXISTS] <name>;
Copy

パラメーター

name

ドロップするモデルの識別子を指定します。識別子にスペース、特殊文字、または大文字と小文字が混在する場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

モデル識別子が完全修飾されていない場合(db_name.schema_name.name または schema_name.name の形式)、コマンドは、セッションの現在のスキーマにあるモデルを探します。

使用上の注意

ドロップされたモデルは復元できません。再作成する必要があります。

<モデル名>!FORECAST

以前に学習したモデル model_name から予測を生成します。

構文

必要な引数は、モデルがどのようなユースケースに対してトレーニングされたかによって異なります。

外生変数なしの単一系列モデルの場合:

<model_name>!FORECAST(
  FORECASTING_PERIODS => <forecasting_periods>,
  [CONFIG_OBJECT => <config_object>]
);
Copy

外生変数ありの単一系列モデルの場合:

<model_name>!FORECAST(
  INPUT_DATA => <input_data>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [CONFIG_OBJECT => <config_object>]
);
Copy

外生変数なしの複数系列モデルの場合:

<model_name>!FORECAST(
  SERIES_VALUE => <series>,
  FORECASTING_PERIODS => <forecasting_periods>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [CONFIG_OBJECT => <config_object>]
);
Copy

外生変数ありの複数系列モデルの場合:

<model_name>!FORECAST(
  SERIES_VALUE => <series>,
  SERIES_COLNAME => <series_colname>,
  INPUT_DATA => <input_data>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [CONFIG_OBJECT => <config_object>]
);
Copy

引数

必須:

以下の引数のすべてが、前述のすべてのユースケースに必要なわけではありません。

FORECASTING_PERIODS => forecasting_periods

外生変数なしの予測に必要。

予測に先立つステップの数。ステップとステップの間隔は、トレーニング中にモデルによって推測されます。

INPUT_DATA => input_data

外生変数ありの予測に必要。このステップでは、外生変数はトレーニングステップと同じ順序にする必要があります。

モデルのトレーニング時に input_data として渡された、外生変数(ユーザーが提供する追加特徴量)の将来のタイムスタンプと値を含むテーブル、ビュー、クエリへの 参照。参照を使用すると、制限付き権限で実行される予測プロセスで、ご自身の権限を使用してデータにアクセスできるようになります。列はこの引数と元の外生トレーニングデータとの間で名前によってマッチングされます。

TIMESTAMP_COLNAME => 'timestamp_colname'

外生変数ありの予測に必要。

タイムスタンプを含む input_data の列の名前。

SERIES_COLNAME => 'series_colname'

外生変数ありの複数系列の予測に必要。

系列を指定する input_data の列の名前。

SERIES_VALUE => series

複数系列の予測に必要。

予測する時系列。単一値(例: 'Series A'::variant)でも VARIANT でもかまいませんが、モデルをトレーニングした系列を指定する必要があります。指定しない場合は、すべてのトレーニング済み系列が予測されます。

オプション:

CONFIG_OBJECT => config_object

予測ジョブの構成に使用されるキーと値のペアを含む OBJECT。現時点では、構成オプションは1つのみです。

キー

説明

prediction_interval

FLOAT

[0, 1)。デフォルトは0.95で、将来のポイントの95%が予測結果から区間[lower_bound, upper_bound]内に収まると予測されることを意味します。

出力

SERIES 列は複数系列の予測にのみ存在します。単一系列の予測にはこの列はありません。

また、各外生変数用に追加の列があります。これらの数、名称、型はそれぞれ異なるため、ここでは割愛します。

説明

SERIES

VARIANT

この行の予測値の系列(複数系列予測の場合)

TS

TIMESTAMP_NTZ

タイムスタンプ

FORECAST

FLOAT

予想ターゲット値

LOWER_BOUND

FLOAT

予測区間の下限

UPPER_BOUND

FLOAT

予測区間の上限

<モデル名>!EXPLAIN_FEATURE_IMPORTANCE

モデルが使用する各特徴量の相対的な特徴量の重要度を返します。

構文

<model_name>!EXPLAIN_FEATURE_IMPORTANCE();
Copy

出力

説明

SERIES

VARIANT

系列値(モデルが複数時系列でトレーニングされた場合のみ)

RANK

INTEGER

特定の系列に対する特徴量の重要度ランク

FEATURE_NAME

VARCHAR

aggregated_endogenous_features は、ターゲット変数の変換として得られるすべての特徴量を表します。

IMPORTANCE_SCORE

FLOAT

特徴量の重要度スコア: [0, 1]の値で、0が最も低く、1が最も高い重要度。

FEATURE_TYPE

VARCHAR

特徴量のソース。以下のうちの1つです。

  • user_provided

  • derived_from_timestamp

  • derived_from_endogenous

をご参照ください。