赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 机器学习语法
  6. 时序SQL
  7. 预测与异常检测函数

预测与异常检测函数

  • 时序SQL
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

预测与异常检测函数通过预测时序曲线、寻找预测曲线和实际曲线之间误差的Ksigma与分位数等特性进行异常检测。

关于函数的算法及原理请参见:

  • LOG机器学习介绍(01):时序统计建模

  • LOG机器学习介绍(03):时序异常检测建模

  • LOG机器学习介绍(05):时间序列预测

  • LOG机器学习最佳实战:时序异常检测和报警

函数列表

函数

说明

ts_predicate_simple

利用默认参数对时序数据进行建模,并进行简单的时序预测和异常点的检测。

ts_predicate_ar

使用自回归模型对时序数据进行建模,并进行简单的时序预测和异常点的检测。

ts_predicate_arma

使用移动自回归模型对时序数据进行建模,并进行简单的时序预测和异常点检测。

ts_predicate_arima

使用带有差分的移动自回归模型对时序数据进行建模,并进行简单的时序预测和异常点检测。

ts_regression_predict

针对具有周期性、趋势性的单时序序列,进行准确的预测。

使用场景:计量数据的预测、网络流量的预测、财务数据的预测、以及具有一定规律的不同业务数据的预测。

ts_anomaly_filter

针对批量曲线进行时序异常检测后,可以按照用户定义的异常模式来过滤异常检测的结果,帮助用户快速找出异常的实例曲线。

ts_predicate_simple

函数格式:

select ts_predicate_simple(x, y, nPred, isSmooth) 

参数说明如下:

参数

说明

取值

x

时间列,从小到大排列。

格式为Unixtime时间戳,单位为秒。

y

数值列,对应某时刻的数据。

-

nPred

预测未来的点的数量。

long类型,取值大于等于1。

isSmooth

是否需要对原始数据做滤波操作。

bool类型,默认为true表示对原始数据做滤波操作。

示例:

  • 查询分析

    * | select ts_predicate_simple(stamp, value, 6) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
  • 输出结果输出结果

显示项如下:

显示项

说明

横轴

unixtime

数据的Unixtime时间戳,单位为秒。

纵轴

src

原始数据。

predict

预测的数据。

upper

预测的上界。当前置信度为0.85,不可修改。

lower

预测的下界。当前置信度为0.85,不可修改。

anomaly_prob

该点为异常点的概率,范围为0~1。

ts_predicate_ar

函数格式:

select ts_predicate_ar(x, y, p, nPred, isSmooth) 

参数说明如下:

参数

说明

取值

x

时间列,从小到大排列。

格式为Unixtime时间戳,单位为秒。

y

数值列,对应某时刻的数据。

-

p

自回归模型的阶数。

long类型,取值范围为2~8。

nPred

预测未来的点的数量。

long类型,取值范围为1~5*p。

isSmooth

是否需要对原始数据做滤波操作。

bool类型,默认为true表示对原始数据做滤波操作。

查询分析示例:

* | select ts_predicate_ar(stamp, value, 3, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
说明

输出结果与ts_predicate_simple函数相似,具体请参见ts_predicate_simple函数的输出结果。

ts_predicate_arma

函数格式:

select ts_predicate_arma(x, y, p, q, nPred, isSmooth) 

参数说明如下:

参数

说明

取值

x

时间列,从小到大排列。

格式为Unixtime时间戳,单位为秒。

y

数值列,对应某时刻的数据。

-

p

自回归模型的阶数。

long类型,取值范围为2~100。

q

移动平均模型的阶数。

long类型,取值范围为2~8。

nPred

预测未来的点的数量。

long类型,取值范围为1~5*p。

isSmooth

是否需要对原始数据做滤波操作。

bool类型,默认为true表示对原始数据做滤波操作。

查询分析示例:

* | select ts_predicate_arma(stamp, value, 3, 2, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp) 
说明

输出结果与ts_predicate_simple函数相似,具体请参见ts_predicate_simple函数的输出结果。

ts_predicate_arima

函数格式:

select ts_predicate_arima(x, y, p, d, q, nPred, isSmooth) 

参数说明如下:

参数

说明

取值

x

时间列,从小到大排列。

格式为Unixtime时间戳,单位为秒。

y

数值列,对应某时刻的数据。

-

p

自回归模型的阶数。

long类型,取值范围为2~8。

d

差分模型的阶数。

long类型,取值范围为1~3。

q

移动平均模型的阶数。

long类型,取值范围为2~8。

nPred

预测未来的点的数量。

long类型,取值范围为1~5*p。

isSmooth

是否需要对原始数据做滤波操作。

bool类型,默认为true表示对原始数据做滤波操作。

查询分析示例:

* | select ts_predicate_arima(stamp, value, 3, 1, 2, 4) from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
说明

输出结果与ts_predicate_simple函数相似,具体请参见ts_predicate_simple函数的输出结果。

ts_regression_predict

函数格式:

select ts_regression_predict(x, y, nPred, algotype,processType)

参数说明如下:

参数

说明

取值

x

时间列,从小到大排列。

格式为Unixtime时间戳,单位为秒。

y

数值列,对应某时刻的数据。

-

nPred

预测未来的点的数量。

long类型,取值范围为1~500。

algotype

针对的预测的算法类型。

取值包括:

  • origin:使用GBRT(Gradient Boosted Regression Tree)算法进行预测。

  • forest:使用STL序列分解的结果,将分解得到的趋势序列使用GBRT算法进行预测,再将分解出来的序列按照加法模型进行求和后返回。

  • linear:使用STL序列分解的结果,将分解得到趋势序列使用Linear Regression算法进行预测,再将分解出来的序列按照加法模型进行求和后返回。

processType

数据对应的预处理流程。

取值包括:

  • 0:不进行任何额外的数据预处理。

  • 1:对数据去除异常后再进行预测处理。

示例:

  • 查询分析

    * and h : nu2h05202.nu8 and m: NET |  select ts_regression_predict(stamp, value, 200, 'origin') from (select ("__time__" - ("__time__" % 60)) as stamp, avg(v) as value from log group by stamp order by stamp)
  • 输出结果输出结果

显示项如下:

显示项

说明

横轴

unixtime

数据的Unixtime时间戳,单位为秒。

纵轴

src

原始数据。

predict

预测数据。

ts_anomaly_filter

函数格式:

select ts_anomaly_filter(lineName, ts, ds, preds, probs, nWatch, anomalyType)

参数说明如下:

参数

说明

取值

lineName

varchar类型,表示每条曲线的名称。

-

ts

曲线的时间序列,表示当前这条曲线的时间信息。array(double)类型,由小到大排列。

-

ds

曲线的实际值序列,表示当前这条曲线的数值信息。array(double)类型,长度与ts相同。

-

preds

曲线的预测值序列,表示当前这条曲线的预测值。array(double)类型,长度与ts相同。

-

probs

曲线的异常检测序列,表示当前这条曲线的异常检测结果。array(double)类型,长度与ts相同。

-

nWatch

long类型,表示当前曲线中最近观测的实际值的数量,长度必须小于实际的曲线长度。

-

anomalyType

long类型,表示要过滤的异常类型的种类。

取值包括:

  • 0:表示关注全部异常。

  • 1:表示关注上升沿异常。

  • -1:表示下降沿异常。

示例:

  • 查询分析

    * | select res.name, res.ts, res.ds, res.preds, res.probs 
         from ( 
             select ts_anomaly_filter(name, ts, ds, preds, probs, cast(5 as bigint), cast(1 as bigint)) as res 
           from (
             select name, res[1] as ts, res[2] as ds, res[3] as preds, res[4] as uppers, res[5] as lowers, res[6] as probs 
         from (
             select name, array_transpose(ts_predicate_ar(stamp, value, 10)) as res 
             from (
               select name, stamp, value from log where name like '%asg-%') group by name)) );
  • 输出结果

    | name                     | ts                                                   | ds          | preds     | probs       |
    | ------------------------ | ---------------------------------------------------- | ----------- | --------- | ----------- |
    | asg-bp1hylzdi2wx7civ0ivk | [1.5513696E9, 1.5513732E9, 1.5513768E9, 1.5513804E9] | [1,2,3,NaN] | [1,2,3,4] | [0,0,1,NaN] |
相关文章

平滑函数 2025-04-22 10:42

平滑函数是针对输入的时序曲线进行平滑和简单的滤波操作,滤波操作通常是发现时序曲线形态的第一步。 函数列表

多周期估计函数 2025-04-22 10:42

多周期估计函数支持对不同时间段内的时序进行周期估计,通过傅立叶变换等一系列操作进行周期的提取。 函数列表

变点检测函数 2025-04-22 10:42

变点检测函数一般用于对时序数据中的变点进行检测。 变点检测函数支持对如下两种变点形态进行检测: 指定时间段内的某些统计特性发生了变化。

极大值检测函数 2025-04-22 10:42

极大值检测函数用于在指定窗口中寻找序列的局部极大值。 ts_find_peaks

预测与异常检测函数 2025-04-22 10:42

预测与异常检测函数通过预测时序曲线、寻找预测曲线和实际曲线之间误差的Ksigma与分位数等特性进行异常检测。 关于函数的算法及原理请参见:

序列分解函数 2025-04-22 10:42

序列分解函数提供针对业务曲线的分解功能,突出曲线的趋势信息和周期信息。 ts_decompose

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号