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.nameschema_name.name 的形式),则该命令将在会话的当前架构中创建模型。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。

有关更多详细信息,请参阅 标识符要求

构造函数实参

必填:

INPUT_DATA => input_data

对输入数据的 引用。通过使用引用,即可允许以有限权限运行的训练过程使用您的权限访问数据。如果数据已采用相应形式,则可以使用对表或视图的引用,也可以使用 查询引用,来提供要执行的查询以获取数据。

引用的数据是预测模型所用的全部训练数据。如果 input_data 包含任何未命名为 timestamp_colnametarget_colnameseries_colname 的列,则它们被视为外生变量(附加特征)。列在输入数据中的顺序并不重要。

您的输入数据必须具备类型适合用例的列。有关各用例的详细信息,请参阅 示例

用例

列和类型

单个时间序列

多个时间序列

具有外生变量的单个时间序列

具有外生变量的多个时间序列

TIMESTAMP_COLNAME => 'timestamp_colname'

input_data 中包含时间戳的列的名称。

TARGET_COLNAME => 'target_colname'

input_data 中包含目标(依赖值)的列的名称。

可选:

SERIES_COLNAME => 'series_colname'

对于多个时间序列模型,定义 input_data 中的多个时间序列的列的名称。此列的值可为任何类型,也可以是来自一个或多个其他列的值数组,如 多系列预测 中所示。

如果按位置提供实参,则此实参必须为 第二个 实参。

CONFIG_OBJECT => config_object

包含用于配置模型训练作业的键值对的 OBJECT

类型

默认值

描述

on_error

STRING

'ABORT'

指定模型训练任务的错误处理方法的字符串(常量)。这在训练多个序列时最有用。支持的值包括:

  • 'abort':如果在任何时间序列中遇到错误,则终止训练操作。

  • 'skip':跳过任何训练出现错误的时间序列。这样就可以成功对其他时间序列进行模型训练。要查看失败的系列,请使用模型的 <model_name>!SHOW_TRAINING_LOGS 方法。

evaluate

BOOLEAN

TRUE

是否应生成评估指标。如果是 TRUE,则会使用 evaluation_config 中的参数训练其他模型进行交叉验证。

evaluation_config

OBJECT

请参阅下面的 评估配置

可选配置对象,用于指定如何生成样本外评估指标。

评估配置

evaluation_config 对象包含配置交叉验证的键值对。这些参数来自 scikit-learn 的 TimeSeriesSplit (https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html)。

类型

默认值

描述

n_splits

INTEGER

5

拆分数。

max_train_size

INTEGER 或 NULL (无最大值)。

NULL

单个训练集的最大大小。

test_size

:ref:` INTEGER <label-data_type_integer>` 或 NULL。

NULL

用于限制测试集的大小。

gap

INTEGER

0

在测试集之前,要从每个训练集结束时排除的样本数。

prediction_interval

FLOAT

0.95

用于计算区间指标的预测区间。

使用说明

目前不支持 复制 类实例。

示例

请参阅 示例

语言: 中文