CREATE SNOWFLAKE.ML.ANOMALY_DETECTION

使用您提供的训练数据创建新的异常检测模型或替换现有模型。

语法

CREATE [ OR REPLACE ] SNOWFLAKE.ML.ANOMALY_DETECTION <model_name>(
  INPUT_DATA => <reference_to_training_data>,
  [ SERIES_COLNAME => '<series_column_name>', ]
  TIMESTAMP_COLNAME => '<timestamp_column_name>',
  TARGET_COLNAME => '<target_column_name>',
  LABEL_COLNAME => '<label_column_name>',
  [ CONFIG_OBJECT => <config_object> ]
)
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
Copy

参数

model_name

指定异常检测器对象的标识符 (model_name);对于在其中创建对象的架构,此名称必须唯一。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求

构造函数实参

必填:

INPUT_DATA => reference_to_training_data

指定对于返回模型训练数据的表、视图或查询的 引用

若要创建此引用,请调用 SYSTEM$REFERENCESYSTEM$QUERY_REFERENCE

TIMESTAMP_COLNAME => 'timestamp_column_name'

指定时间序列数据中包含时间戳 (TIMESTAMP_NTZ) 的列的名称。

TARGET_COLNAME => 'target_column_name'

指定包含待分析数据(NUMERIC 或 FLOAT)的列的名称。

LABEL_COLNAME => 'label_column_name'

指定包含数据标签的列的名称。标签是布尔值 (true/false),指示给定行是否属于已知异常。如果没有带标签的数据,为此实参传递一个空字符串 ('')。

可选:

SERIES_COLNAME => 'series_column_name'

包含序列标识符的列的名称(对于多序列数据)。此列应为 VARIANT,因为它可以是任意值类型,也可以是数组中多列中任意类型的值的组合。

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

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

使用说明

  • 如果 TIMESTAMP_COLNAME、TARGET_COLNAME 或 LABEL_COLNAME 实参指定的列名在 INPUT_DATA 实参指定的表、视图或查询中不存在,则会发生错误。

  • 目前不支持 复制 类实例。

示例

有关代表示例,请参阅 异常检测示例

语言: 中文