云日志服务日志服务支持如下机器学习函数。
函数列表
函数名称 | 语法 | 说明 |
---|---|---|
ts_cp_detect | ts_cp_detect(x, y, minSize) | 寻找时序序列中具有不同统计特性的区间,区间端点即为变点。 |
ts_breakout_detect | ts_breakout_detect(x, y, winSize) | 寻找时序序列中,某统计量发生陡升或陡降的点。 |
ts_find_peaks | ts_find_peaks(x, y, winSize) | 极大值检测函数用于在指定窗口中寻找序列的局部极大值。 |
ts_predicate_simple | ts_predicate_simple(x, y, nPred, isSmooth) | 利用默认参数对时序数据进行建模,并进行简单的时序预测和异常点的检测。 |
ts_predicate_ar | ts_predicate_ar(x, y, p, nPred, isSmooth) | 使用自回归模型对时序数据进行建模,并进行简单的时序预测和异常点的检测。 |
ts_predicate_arma | ts_predicate_arma(x, y, p, q, nPred, isSmooth) | 使用移动自回归模型对时序数据进行建模,并进行简单的时序预测和异常点检测。 |
ts_predicate_arima | ts_predicate_arima(x, y, p, d, q, nPred, isSmooth) | 使用带有差分的移动自回归模型对时序数据进行建模,并进行简单的时序预测和异常点检测。 |
ts_density_cluster | ts_density_cluster(x, y, z) | 使用密度聚类方法对多条时序数据进行聚类。 |
ts_hierarchical_cluster | ts_hierarchical_cluster(x, y, z) | 使用层次聚类方法对多条时序数据进行聚类。 |
ts_smooth_simple | ts_smooth_simple(x, y) | 默认平滑函数,使用Holt-Winters算法对时序数据进行滤波操作。 |
ts_smooth_fir | ts_smooth_fir(x, y,winType,winSize) ts_smooth_fir(x, y,array()) | 使用FIR滤波器对时序数据进行滤波操作。 |
ts_smooth_iir | ts_smooth_iir(x, y, array(), array()) | 使用IIR滤波器对时序数据进行滤波操作。 |
ts_cp_detect函数
寻找时序序列中具有不同统计特性的区间,区间端点即为变点。
语法
ts_cp_detect(x, y, minSize)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
minSize | 最小连续区间长度。 | 最小值为3 | 是 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的时间戳 |
src | 滤波前的数据 |
proc | 该点为变点的概率,取值范围为0~1。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_cp_detect(time, number, 3) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_breakout_detect函数
寻找时序序列中,某统计量发生陡升或陡降的点。
语法
ts_breakout_detect(x, y, winSize)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
winSize | 最小连续区间长度。最小值为3 | int | 是 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的时间戳 |
src | 滤波前的数据 |
proc | 该点为变点的概率,取值范围为0~1。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_breakout_detect(time, number, 3) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_find_peaks函数
从URL中提取Fragment信息。
语法
ts_find_peaks(x, y, winSize)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
winSize | 指定最小的检测窗口长度。最小值为1 | int | 是 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的时间戳 |
src | 未滤波前的数据 |
peak_flag | 该点是否为极大值,其中:
|
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_find_peaks(time, number, 3) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_predicate_simple函数
利用默认参数对时序数据进行建模,并进行简单的时序预测和异常点的检测。
语法
ts_predicate_simple(x, y, nPred, isSmooth)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
nPred | 预测未来的点的数量。 | int类型,取值大于等于1 | 是 |
isSmooth | 是否需要对原始数据做滤波操作。 | bool类型,默认为true表示对原始数据做滤波操作。 | 否 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的Unixtime时间戳 |
value | 原始数据 |
predict | 预测的数据 |
upper | 预测的上界 |
lower | 预测的下界 |
prob | 该点为异常点的概率,范围为0~1。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_predicate_simple(time, number, 3) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_predicate_simple(time, number, 3, false) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_predicate_ar函数
使用自回归模型对时序数据进行建模,并进行简单的时序预测和异常点的检测。
语法
ts_predicate_ar(x, y, p, nPred, isSmooth)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
p | 自回归模型的阶数。 | long类型,取值范围为2~8。 | |
nPred | 预测未来的点的数量。 | long类型,取值大于等于1 | 是 |
isSmooth | 是否需要对原始数据做滤波操作。 | bool类型,默认为true表示对原始数据做滤波操作。 | 否 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的Unixtime时间戳 |
value | 原始数据 |
predict | 预测的数据 |
upper | 预测的上界 |
lower | 预测的下界 |
prob | 该点为异常点的概率,范围为0~1。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_predicate_ar(time, number, 3, 1) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_predicate_ar(time, number, 3, 1, false) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_predicate_arma函数
使用移动自回归模型对时序数据进行建模,并进行简单的时序预测和异常点检测。
语法
ts_predicate_arma(x, y, p, q, nPred, isSmooth)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
p | 自回归模型的阶数。 | long类型,取值范围为2~8。 | 是 |
q | 移动平均模型的阶数 | long类型,取值范围为2~8。 | 是 |
nPred | 预测未来的点的数量。 | long类型,取值大于等于1 | 是 |
isSmooth | 是否需要对原始数据做滤波操作。 | bool类型,默认为true表示对原始数据做滤波操作。 | 否 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的Unixtime时间戳 |
value | 原始数据 |
predict | 预测的数据 |
upper | 预测的上界 |
lower | 预测的下界 |
prob | 该点为异常点的概率,范围为0~1。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_predicate_arma(time, number, 3, 2, 1) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_predicate_arma(time, number, 3, 2, 1, false) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_predicate_arima函数
使用带有差分的移动自回归模型对时序数据进行建模,并进行简单的时序预测和异常点检测。
语法
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 | 是 |
isSmooth | 是否需要对原始数据做滤波操作。 | bool类型,默认为true表示对原始数据做滤波操作。 | 否 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的Unixtime时间戳 |
value | 原始数据 |
predict | 预测的数据 |
upper | 预测的上界 |
lower | 预测的下界 |
prob | 该点为异常点的概率,范围为0~1。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_predicate_arima(time, number, 3, 2, 2, 1) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_predicate_arima(time, number, 3, 2, 2, 1, false) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_density_cluster函数
使用密度聚类方法对多条时序数据进行聚类。
语法
ts_density_cluster(x, y, z)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
z | 某个时刻数据对应的曲线名称。 | 字符串类型 | 是 |
返回值类型
显示项 | 说明 |
---|---|
clusterId | 聚类的类别,其中-1表示未能划分到某一聚类中心 |
rate | 该聚类中的instance占比。 |
timeSeries | 该聚类中心的时间戳序列。 |
dataSeries | 该聚类中心的数据序列。 |
instanceNames | 该聚类中心包含的instance的集合。 |
simInstance | 该类中的某一个instance名称。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_density_cluster(time, number, 'test') from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_hierarchical_cluster函数
使用层次聚类方法对多条时序数据进行聚类。
语法
ts_hierarchical_cluster(x, y, z)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
z | 某个时刻数据对应的曲线名称。 | 字符串类型 | 是 |
返回值类型
显示项 | 说明 |
---|---|
clusterId | 聚类的类别,其中-1表示未能划分到某一聚类中心 |
rate | 该聚类中的instance占比。 |
timeSeries | 该聚类中心的时间戳序列。 |
dataSeries | 该聚类中心的数据序列。 |
instanceNames | 该聚类中心包含的instance的集合。 |
simInstance | 该类中的某一个instance名称。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_hierarchical_cluster(time, number, __message__) from (select __ts__ as time, text-date1 as number, __message__ from log limit 100) |
返回结果 |
ts_smooth_simple函数
默认平滑函数,使用Holt-Winters算法对时序数据进行滤波操作。
语法
ts_smooth_simple(x, y)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的时间戳 |
src | 滤波前的数据。 |
filter | 滤波后的数据。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_smooth_simple(time, number) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_smooth_fir函数
使用FIR滤波器对时序数据进行滤波操作。
语法
ts_smooth_fir(x, y,winType,winSize)
ts_smooth_fir(x, y,array())
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
winType | 滤波的窗口类型。 | 取值包括: rectangle:矩形窗口。 hanning:汉宁窗。 hamming:汉明窗。 blackman:布莱克曼窗。 | 是 |
winSize | 滤波窗口的长度。 | long类型,取值范围为2~15。 | |
array() | FIR滤波的具体参数。 | 格式为数组 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的时间戳 |
src | 滤波前的数据。 |
filter | 滤波后的数据。
|
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_smooth_fir(time, number, 'rectangle', 2) from (select __ts__ as time, text-date1 as number from log limit 100) * | select ts_smooth_fir(time, number, array(0.2,0.3,0.5)) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |
ts_smooth_iir函数
使用IIR滤波器对时序数据进行滤波操作。
语法
ts_smooth_iir(x, y, array(), array() )
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 时间列,从小到大排列。 | 格式为Unixtime时间戳 | 是 |
y | 数值列,对应某时刻的数据。 | 数值类型 | 是 |
array() | IIR滤波算法中关于x的具体参数。 | 数组格式 | 是 |
array() | IIR滤波算法中关于y的具体参数 | 数组格式 | 是 |
返回值类型
显示项 | 说明 |
---|---|
ts | 数据的时间戳 |
src | 滤波前的数据。 |
filter | 滤波后的数据。 |
示例
类型 | 示例 |
---|---|
统计分析语句 | * | select ts_smooth_iir(time, number, array(0.2,0.3,0.5), array(0.2,0.3,0.5)) from (select __ts__ as time, text-date1 as number from log limit 100) |
返回结果 |