<model_name>!DETECT_ANOMALIES

检测并报告传递给方法的输入数据中的异常。这是通过执行 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 命令创建的异常检测器对象的一个方法。

该方法会返回一个表,该表将输入数据的每一行标记为异常或非异常。

语法

<model_name>!DETECT_ANOMALIES(
  INPUT_DATA => <reference_to_data_to_analyze>,
  TIMESTAMP_COLNAME => '<timestamp_column_name>',
  TARGET_COLNAME => '<target_column_name>',
  [ CONFIG_OBJECT => <configuration_object>, ]
  [ SERIES_COLNAME => '<series_column_name>' ]
)
Copy

备注

model_name 是通过执行 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 命令创建的对象。

实参

必填:

INPUT_DATA => reference_to_data_to_analyze

对于返回待分析数据的表、视图或查询的 引用

TIMESTAMP_COLNAME => 'timestamp_column_name'

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

TARGET_COLNAME => 'target_column_name'

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

可选:

SERIES_COLNAME => 'series_column_name'

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

CONFIG_OBJECT => config_object

OBJECT 包含用于配置异常检测作业的键值对。

类型

默认值

描述

prediction_interval

FLOAT

0.99

介于 0 和 1 之间的值,指定应标记为异常的观察结果的百分比:

  • 对于不太严格的异常检测(即,将更少的观察结果标记为异常),请指定更高的值。

  • 对于更严格的异常检测(即,将更多的观察结果标识为异常),请使用更小的值。

on_error

STRING

'ABORT'

指定异常检测任务的错误处理的字符串(常量)。这在检测多个系列中的异常时最有用。支持的值包括:

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

  • 'skip':跳过异常检测出现错误的时间序列。这样就可以成功对其他时间序列进行异常检测。输出中不包含失败的序列

返回

该函数返回以下列:

列名称

数据类型

描述

SERIES

VARIANT

序列值(如果模型使用单个时间序列训练时,为 NULL)。

备注

您的单序列结果可能没有 SERIES 列。查看最近的变更

TS

TIMESTAMP_NTZ

数据的时间戳

Y

FLOAT

时间序列的值

FORECAST

FLOAT

时间戳对应的预测值。

LOWER_BOUND

FLOAT

预测区间内的值下限。低于此值的值被标记为异常。

UPPER_BOUND

FLOAT

预测区间内的值上限。高于此值的值被标记为异常。

IS_ANOMALY

BOOLEAN

如果该值为异常,则为 True;否则,为 False。

PERCENTILE

FLOAT

给定预测区间的观测 Y 值的相应百分位数。

如果百分位数超出 ((1 - alpha) / 2, 1 - (1 - alpha) / 2),则将该值标记为异常。例如,如果预测区间为 0.95,则 0.96 ** 的百分位数不是异常,但 0.98 的百分位数是异常。

如果未在配置对象中指定 prediction_interval 字段,则默认值为 0.99。

DISTANCE

FLOAT

与 FORECAST 列的标准差(z 分数)的倍数

使用说明

  • CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 命令中指定的数据的列(在 INPUT_DATA 构造函数实参中)必须与此方法 INPUT_DATA 实参中所指定的数据的列匹配。

    例如,如果将 SERIES_COLNAME 实参传递给 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 命令,则还必须将 SERIES_COLNAME 实参传递给此方法。如果在命令中省略了 SERIES_COLNAME 实参,则必须在此处省略该实参。

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

语言: 中文