Merge pull request #28658 from taosdata/feat/contrib

docs: data analysis
This commit is contained in:
Shengliang Guan 2024-11-06 09:47:05 +08:00 committed by GitHub
commit d8c880bc61
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 40 additions and 38 deletions

View File

@ -8,11 +8,11 @@ sidebar_label: "ARIMA"
## 功能概述 ## 功能概述
ARIMA 即自回归移动平均模型Autoregressive Integrated Moving Average, ARIMA也记作 ARIMA(p,d,q),是统计模型中最常见的一种用来进行时间序列预测的模型。 ARIMA 即自回归移动平均模型Autoregressive Integrated Moving Average, ARIMA也记作 ARIMA(p,d,q),是统计模型中最常见的一种用来进行时间序列预测的模型。
ARIMA 模型是一种自回归模型只需要自变量即可预测后续的值。ARIMA 模型要求时序数据**平稳**,或经过差分处理后平稳,如果是不平稳的数据,**无法**获得正确的结果。 ARIMA 模型是一种自回归模型只需要自变量即可预测后续的值。ARIMA 模型要求时间序列**平稳**,或经过差分处理后平稳,如果是不平稳的数据,**无法**获得正确的结果。
>平稳的时间序列:其性质不随观测时间的变化而变化。具有趋势或季节性的时间序列不是平稳时间序列——趋势和季节性使得时间序列在不同时段呈现不同性质。 >平稳的时间序列:其性质不随观测时间的变化而变化。具有趋势或季节性的时间序列不是平稳时间序列——趋势和季节性使得时间序列在不同时段呈现不同性质。
以下参数可以动态输入控制预测过程中生成 合适的 ARIMA 模型。 以下参数可以动态输入控制预测过程中生成合适的 ARIMA 模型。
- p= 自回归模型阶数 - p= 自回归模型阶数
- d= 差分阶数 - d= 差分阶数
@ -21,9 +21,9 @@ ARIMA 模型是一种自回归模型,只需要自变量即可预测后续的
### 参数 ### 参数
分析平台中使用自动化的 ARIMA 模型进行计算,因此每次计算的时候会根据输入的数据自动拟合最合适的模型,然后根据该模型进行预测输出结果。 分析平台中使用自动化的 ARIMA 模型进行计算,因此每次计算的时候会根据输入的数据自动拟合最合适的模型,然后根据该模型进行预测输出结果。
|参数名称|说明|必填项| |参数|说明|必填项|
|---|---|---| |---|---|-----|
|period|输入时间序列每个周期包含的数据点个数如果不设置该参数或该参数设置为 0将使用非季节性/周期性的 ARIMA 模型预测|选填| |period|输入时间序列每个周期包含的数据点个数如果不设置该参数或该参数设置为 0将使用非季节性/周期性的 ARIMA 模型预测|选填|
|start_p|自回归模型阶数的起始值0 开始的整数,不推荐大于 10|选填| |start_p|自回归模型阶数的起始值0 开始的整数,不推荐大于 10|选填|
|max_p|自回归模型阶数的结束值0 开始的整数,不推荐大于 10|选填| |max_p|自回归模型阶数的结束值0 开始的整数,不推荐大于 10|选填|
|start_q|移动平均模型阶数的起始值0 开始的整数,不推荐大于 10|选填| |start_q|移动平均模型阶数的起始值0 开始的整数,不推荐大于 10|选填|
@ -40,11 +40,11 @@ FORECAST(i32, "algo=arima,alpha=95,period=10,start_p=1,max_p=5,start_q=1,max_q=5
```json5 ```json5
{ {
"rows": fc_rows, // 预测结果的行数 "rows": fc_rows, // 返回结果的行数
"period": period, // 返回结果的周期性,同输入 "period": period, // 返回结果的周期性,同输入
"alpha": alpha, // 返回结果的置信区间,同输入 "alpha": alpha, // 返回结果的置信区间,同输入
"algo": "arima", // 返回结果使用的算法 "algo": "arima", // 返回结果使用的算法
"mse":mse, // 拟合输入时序数据时候生成模型的最小均方误差(MSE) "mse": mse, // 拟合输入时间序列时候生成模型的最小均方误差(MSE)
"res": res // 列模式的结果 "res": res // 列模式的结果
} }
``` ```

View File

@ -8,13 +8,13 @@ sidebar_label: "HoltWinters"
## 功能概述 ## 功能概述
HoltWinters 模型又称为多次指数平滑模型EMA。适用于含有线性趋势和周期波动的非平稳序列利用指数平滑法让模型参数不断适应非平稳序列的变化并对未来趋势进行**短期**预测。 HoltWinters 模型又称为多次指数平滑模型EMA。适用于含有线性趋势和周期波动的非平稳序列利用指数平滑法让模型参数不断适应非平稳序列的变化并对未来趋势进行**短期**预测。
HoltWinters 有两种不同的季节性组成部分,当季节变化在该时间序列中大致保持不变时,通常选择**加法模型**;而当季节变化与时间序列的水平成比例变化时,通常选择**乘法模型**。 HoltWinters 有两种不同的季节性组成部分,当季节变化在该时间序列中大致保持不变时,通常选择**加法模型**;而当季节变化与时间序列的水平成比例变化时,通常选择**乘法模型**。
该模型对于返回数据也不提供计算的置信区间范围结果。在 95% 置信区间的上下界结果与预测结果相同。 该模型对于返回数据不提供计算的置信区间范围结果,在 95% 置信区间的上下界结果与预测结果相同。
### 参数 ### 参数
分析平台中使用自动化的 ARIMA 模型进行计算,因此每次计算的时候会根据输入的数据自动拟合最合适的模型,然后根据该模型进行预测输出结果。 分析平台中使用自动化的 HoltWinters 模型进行计算,因此每次计算的时候会根据输入的数据自动拟合最合适的模型,然后根据该模型进行预测输出结果。
|参数名称|说明|必填项| |参数|说明|必填项|
|---|---|---| |---|---|---|
|period|输入时间序列每个周期包含的数据点个数。如果不设置该参数或该参数设置为 0将使用一次简单指数平滑方式进行数据拟合并据此进行未来数据的预测|选填| |period|输入时间序列每个周期包含的数据点个数。如果不设置该参数或该参数设置为 0将使用一次简单指数平滑方式进行数据拟合并据此进行未来数据的预测|选填|
|trend|趋势模型使用加法模型还是乘法模型|选填| |trend|趋势模型使用加法模型还是乘法模型|选填|
@ -30,7 +30,7 @@ FORECAST(i32, "algo=holtwinters,period=10,trend=mul,seasonal=mul")
```json5 ```json5
{ {
"rows": rows, // 结果的行数 "rows": rows, // 返回结果的行数
"period": period, // 返回结果的周期性,该结果与输入的周期性相同,如果没有周期性,该值为 0 "period": period, // 返回结果的周期性,该结果与输入的周期性相同,如果没有周期性,该值为 0
"algo": 'holtwinters' // 返回结果使用的计算模型 "algo": 'holtwinters' // 返回结果使用的计算模型
"mse": mse, // 最小均方误差minmum square error "mse": mse, // 最小均方误差minmum square error

View File

@ -13,7 +13,7 @@ sidebar_label: "Anomaly-detection"
- k-sigma<sup>[1]</sup>: 即 ***689599.7 rule*** 。***k***值默认为 3即序列均值的 3 倍标准差范围为边界超过边界的是异常值。KSigma 要求数据整体上服从正态分布,如果一个点偏离均值 K 倍标准差,则该点被视为异常点. - k-sigma<sup>[1]</sup>: 即 ***689599.7 rule*** 。***k***值默认为 3即序列均值的 3 倍标准差范围为边界超过边界的是异常值。KSigma 要求数据整体上服从正态分布,如果一个点偏离均值 K 倍标准差,则该点被视为异常点.
|参数名称|说明|是否必选|默认值| |参数|说明|是否必选|默认值|
|---|---|---|---| |---|---|---|---|
|k|标准差倍数|选填|3| |k|标准差倍数|选填|3|
@ -24,7 +24,7 @@ sidebar_label: "Anomaly-detection"
- SHESD<sup>[4]</sup> 带有季节性的 ESD 检测算法。ESD 可以检测时间序列数据的多异常点。需要指定异常点比例的上界***k***,最差的情况是至多 49.9%。数据集的异常比例一般不超过 5% - SHESD<sup>[4]</sup> 带有季节性的 ESD 检测算法。ESD 可以检测时间序列数据的多异常点。需要指定异常点比例的上界***k***,最差的情况是至多 49.9%。数据集的异常比例一般不超过 5%
|参数名称|说明|是否必选|默认值| |参数|说明|是否必选|默认值|
|---|---|---|---| |---|---|---|---|
|k|异常点在输入数据集中占比,范围是$`1\le K \le 49.9`$ |选填|5| |k|异常点在输入数据集中占比,范围是$`1\le K \le 49.9`$ |选填|5|

View File

@ -3,7 +3,7 @@ title: "addins"
sidebar_label: "addins" sidebar_label: "addins"
--- ---
本节说明如何将自己开发的预测算法和异常检测算法整合到 TDengine 分析平台, 并能够通过 SQL 语句进行调用。 本节说明如何将自己开发的预测算法和异常检测算法整合到 TDengine 分析平台,并能够通过 SQL 语句进行调用。
## 目录结构 ## 目录结构
@ -27,33 +27,35 @@ sidebar_label: "addins"
### 类继承约定 ### 类继承约定
异常检测算法需要从 `AbstractAnomalyDetectionService` 继承,并实现其核心抽象方法 `execute`. - 异常检测算法需要从 `AbstractAnomalyDetectionService` 继承,并实现其核心抽象方法 `execute`
预测算法需要从 `AbstractForecastService` 继承,同样需要实现其核心抽象方法 `execute` - 预测算法需要从 `AbstractForecastService` 继承,同样需要实现其核心抽象方法 `execute`
### 类属性初始化 ### 类属性初始化
每个算法实现的类需要静态初始化两个类属性,分别是 每个算法实现的类需要静态初始化两个类属性,分别是
`name`: 的触发调用关键词,全小写英文字母。 - `name`:触发调用的关键词,全小写英文字母
`desc`算法的描述信息 - `desc`:算法的描述信息
### 核心方法输入与输出约定 ### 核心方法输入与输出约定
`execute` 是算法处理的核心方法。调用该方法的时候,`self.list` 已经设置好输入数组。 `execute` 是算法处理的核心方法。调用该方法的时候,`self.list` 已经设置好输入数组。
异常检测输出结果 异常检测输出结果
`execute` 的返回值是长度与 `self.list` 相同的数组,数组位置为 -1 的即为异常值点。例如:输入数组是 [2, 2, 2, 2, 100] 如果 100 是异常点,那么返回值是 [1, 1, 1, 1, -1]。 `execute` 的返回值是长度与 `self.list` 相同的数组,数组位置为 -1 的即为异常值点。例如:输入数组是 [2, 2, 2, 2, 100] 如果 100 是异常点,那么返回值是 [1, 1, 1, 1, -1]。
预测输出结果 预测输出结果
对于预测算法,`AbstractForecastService` 的对象属性说明如下: 对于预测算法,`AbstractForecastService` 的对象属性说明如下:
|属性名称|说明|默认值| |属性名称|说明|默认值|
|---|---|---| |---|---|---|
|period|输入时序数据的周期性,多少个数据点表示一个完整的周期。如果没有周期性,那么设置为 0 即可| 0| |period|输入时间序列的周期性,多少个数据点表示一个完整的周期。如果没有周期性,那么设置为 0 即可| 0|
|start_ts|预测数据的开始时间| 0| |start_ts|预测结果的开始时间| 0|
|time_step|预测结果的两个数据点之间时间间隔|0 | |time_step|预测结果的两个数据点之间时间间隔|0 |
|fc_rows|预测结果数量| 0 | |fc_rows|预测结果数量| 0 |
|return_conf|返回结果中是否包含执行区间范围,如果算法计算结果不包含置信区间,那么上界和下界与自身相同| 1| |return_conf|预测结果中是否包含置信区间范围,如果不包含置信区间,那么上界和下界与自身相同| 1|
|conf|执行区间分位数 0.05| |conf|置信区间分位数 0.05|
预测返回结果如下: 预测返回结果如下:

View File

@ -156,7 +156,7 @@ SHOW ANODES;
SHOW ANODES FULL; SHOW ANODES FULL;
``` ```
#### 强制刷新 TDengine 集群中分析算法缓存 #### 强制刷新集群中分析算法缓存
```SQL ```SQL
UPDATE ANODE {node_id} UPDATE ANODE {node_id}
UPDATE ALL ANODES UPDATE ALL ANODES