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>' ]
参数¶
model_name
指定异常检测器对象的标识符 (model_name);对于在其中创建对象的架构,此名称必须唯一。
此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,
"My object"
)。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。
构造函数实参¶
必填:
INPUT_DATA => reference_to_training_data
指定对于返回模型训练数据的表、视图或查询的 引用。
若要创建此引用,请调用 SYSTEM$REFERENCE 或 SYSTEM$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
'ABORT'
指定训练的错误处理方法的字符串(常量)。这在训练多个序列时最有用。支持的值包括:
'abort'
:如果在任何时间序列中遇到错误,则终止训练。'skip'
:跳过任何训练出现错误的时间序列。这样就可以成功对其他时间序列进行训练。要查看哪些序列在模型训练过程中失败,请调用模型的 <model_name>!SHOW_TRAINING_LOGS 方法。
evaluate
TRUE
是否应生成评估指标。如果是 TRUE,则会使用
evaluation_config
中的参数训练其他模型进行交叉验证。evaluation_config
请参阅 评估配置。
可选配置对象,用于指定如何生成样本外评估指标。请参阅下一部分。
评估配置¶
evaluation_config
对象包含配置交叉验证的键值对。这些参数来自 scikit-learn TimeSeriesSplit (https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html) 交叉验证器。
键 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
5 |
拆分数。 |
|
|
INTEGER 或 NULL (无最大值)。 |
NULL |
单个训练集的最大大小。 |
|
:ref:` INTEGER <label-data_type_integer>` 或 NULL。 |
NULL |
用于限制测试集的大小。 |
|
0 |
在测试集之前,要从每个训练集结束时排除的样本数。 |
|
|
0.95 |
用于计算区间指标的预测区间。 |
使用说明¶
如果 TIMESTAMP_COLNAME、TARGET_COLNAME 或 LABEL_COLNAME 实参指定的列名在 INPUT_DATA 实参指定的表、视图或查询中不存在,则会发生错误。
目前不支持 复制 类实例。
示例¶
有关代表示例,请参阅 异常检测示例。