From 894ddb3ebb83755a45d9a58c56dd25302c69bb61 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:17:21 +0800 Subject: [PATCH 01/17] doc: update the docs. --- .../02-anomaly-detection.md | 23 --------------- .../02-statistics-approach.md | 29 +++++++++++++++++++ .../05-anomaly-detection/03-data-density.md | 11 +++++++ .../04-machine-learning.md | 7 +++++ 4 files changed, 47 insertions(+), 23 deletions(-) create mode 100644 docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md create mode 100644 docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md create mode 100644 docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-anomaly-detection.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-anomaly-detection.md index 42ab04ad44..b7da6ef627 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-anomaly-detection.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-anomaly-detection.md @@ -9,32 +9,9 @@ sidebar_label: "检测算法" 分析平台内置了6个异常检查模型,分为3个类别,分别是基于统计学的模型、基于数据密度的模型、以及基于深度学习的模型。在不指定异常检测使用的方法的情况下,默认调用 iqr 进行异常检测。 -### 统计学异常检测方法 - -- k-sigma[1]: 即 ***68–95–99.7 rule*** 。***k***值默认为 3,即序列均值的 3 倍标准差范围为边界,超过边界的是异常值。KSigma 要求数据整体上服从正态分布,如果一个点偏离均值 K 倍标准差,则该点被视为异常点. - -|参数|说明|是否必选|默认值| -|---|---|---|---| -|k|标准差倍数|选填|3| -- IQR[2]:Interquartile range(IQR),四分位距是一种衡量变异性的方法。四分位数将一个按等级排序的数据集划分为四个相等的部分。即 Q1(第 1 个四分位数)、Q2(第 2 个四分位数)和 Q3(第 3 个四分位数)。 $IQR=Q3-Q1$,对于 $v$, $Q1-(1.5 \times IQR) \le v \le Q3+(1.5 \times IQR)$ 是正常值,范围之外的是异常值。无输入参数。 -- Grubbs[3]: Grubbs' test,即最大标准残差测试。Grubbs 通常用作检验最大值、最小值偏离均值的程度是否为异常,要求单变量数据集遵循近似标准正态分布。非正态分布数据集不能使用该方法。无输入参数。 - -- SHESD[4]: 带有季节性的 ESD 检测算法。ESD 可以检测时间序列数据的多异常点。需要指定异常点比例的上界***k***,最差的情况是至多 49.9%。数据集的异常比例一般不超过 5% - -|参数|说明|是否必选|默认值| -|---|---|---|---| -|k|异常点在输入数据集中占比 $1 \le K \le 49.9$ |选填|5| - - -### 基于数据密度的检测方法 -LOF[5]: Local Outlier Factor(LOF),局部离群因子/局部异常因子,是 Breunig 在 2000 年提出的一种基于密度的局部离群点检测算法,该方法适用于不同类簇密度分散情况迥异的数据。根据数据点周围的数据密集情况,首先计算每个数据点的一个局部可达密度,然后通过局部可达密度进一步计算得到每个数据点的一个离群因子,该离群因子即标识了一个数据点的离群程度,因子值越大,表示离群程度越高,因子值越小,表示离群程度越低。最后,输出离群程度最大的 $topK$ 个点。 - - -### 基于自编码器的检测方法 -使用自动编码器的异常检测模型。可以对具有周期性的数据具有较好的检测结果。但是使用该模型需要针对输入的时序数据进行训练,同时将训练完成的模型部署到服务目录中,才能够运行与使用。 ### 参考文献 diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md new file mode 100644 index 0000000000..4f23c3f4e0 --- /dev/null +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md @@ -0,0 +1,29 @@ +--- +title: "检测算法" +sidebar_label: "检测算法" +--- + +### 统计学异常检测方法 + +- k-sigma[1]: 即 ***68–95–99.7 rule*** 。***k***值默认为 3,即序列均值的 3 倍标准差范围为边界,超过边界的是异常值。KSigma 要求数据整体上服从正态分布,如果一个点偏离均值 K 倍标准差,则该点被视为异常点. + +|参数|说明|是否必选|默认值| +|---|---|---|---| +|k|标准差倍数|选填|3| + + +- IQR[2]:Interquartile range(IQR),四分位距是一种衡量变异性的方法。四分位数将一个按等级排序的数据集划分为四个相等的部分。即 Q1(第 1 个四分位数)、Q2(第 2 个四分位数)和 Q3(第 3 个四分位数)。 $IQR=Q3-Q1$,对于 $v$, $Q1-(1.5 \times IQR) \le v \le Q3+(1.5 \times IQR)$ 是正常值,范围之外的是异常值。无输入参数。 + +- Grubbs[3]: Grubbs' test,即最大标准残差测试。Grubbs 通常用作检验最大值、最小值偏离均值的程度是否为异常,要求单变量数据集遵循近似标准正态分布。非正态分布数据集不能使用该方法。无输入参数。 + +- SHESD[4]: 带有季节性的 ESD 检测算法。ESD 可以检测时间序列数据的多异常点。需要指定异常点比例的上界***k***,最差的情况是至多 49.9%。数据集的异常比例一般不超过 5% + +|参数|说明|是否必选|默认值| +|---|---|---|---| +|k|异常点在输入数据集中占比 $1 \le K \le 49.9$ |选填|5| + +### 参考文献 +1. [https://en.wikipedia.org/wiki/68–95–99.7 rule](https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule) +2. https://en.wikipedia.org/wiki/Interquartile_range +3. Adikaram, K. K. L. B.; Hussein, M. A.; Effenberger, M.; Becker, T. (2015-01-14). "Data Transformation Technique to Improve the Outlier Detection Power of Grubbs's Test for Data Expected to Follow Linear Relation". Journal of Applied Mathematics. 2015: 1–9. doi:10.1155/2015/708948. +4. Hochenbaum, O. S. Vallis, and A. Kejariwal. 2017. Automatic Anomaly Detection in the Cloud Via Statistical Learning. arXiv preprint arXiv:1704.07706 (2017). diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md new file mode 100644 index 0000000000..fa275f9f85 --- /dev/null +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md @@ -0,0 +1,11 @@ +--- +title: "检测算法" +sidebar_label: "检测算法" +--- + +### 基于数据密度的检测方法 +LOF[1]: Local Outlier Factor(LOF),局部离群因子/局部异常因子, +是 Breunig 在 2000 年提出的一种基于密度的局部离群点检测算法,该方法适用于不同类簇密度分散情况迥异的数据。根据数据点周围的数据密集情况,首先计算每个数据点的一个局部可达密度,然后通过局部可达密度进一步计算得到每个数据点的一个离群因子, +该离群因子即标识了一个数据点的离群程度,因子值越大,表示离群程度越高,因子值越小,表示离群程度越低。最后,输出离群程度最大的 $topK$ 个点。 + +1. Breunig, M. M.; Kriegel, H.-P.; Ng, R. T.; Sander, J. (2000). LOF: Identifying Density-based Local Outliers (PDF). Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data. SIGMOD. pp. 93–104. doi:10.1145/335191.335388. ISBN 1-58113-217-4. diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md new file mode 100644 index 0000000000..7b7c752dad --- /dev/null +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md @@ -0,0 +1,7 @@ +--- +title: "检测算法" +sidebar_label: "检测算法" +--- + +### 基于自编码器的检测方法 +使用自动编码器的异常检测模型。可以对具有周期性的数据具有较好的检测结果。但是使用该模型需要针对输入的时序数据进行训练,同时将训练完成的模型部署到服务目录中,才能够运行与使用。 From 5ce8d6d7bcb2c23c1312d26778e0bb423186efdb Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:18:37 +0800 Subject: [PATCH 02/17] Update 02-statistics-approach.md --- .../06-TDgpt/05-anomaly-detection/02-statistics-approach.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md index 4f23c3f4e0..10d296d2dd 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md @@ -1,10 +1,8 @@ --- -title: "检测算法" -sidebar_label: "检测算法" +title: "统计学方法" +sidebar_label: "统计学方法" --- -### 统计学异常检测方法 - - k-sigma[1]: 即 ***68–95–99.7 rule*** 。***k***值默认为 3,即序列均值的 3 倍标准差范围为边界,超过边界的是异常值。KSigma 要求数据整体上服从正态分布,如果一个点偏离均值 K 倍标准差,则该点被视为异常点. |参数|说明|是否必选|默认值| From 018b4f0ef1c848abb94fc83013d2d8691301ca1b Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:19:02 +0800 Subject: [PATCH 03/17] Update 03-data-density.md --- .../06-TDgpt/05-anomaly-detection/03-data-density.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md index fa275f9f85..f52c12b07e 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md @@ -1,6 +1,6 @@ --- -title: "检测算法" -sidebar_label: "检测算法" +title: "数据密度方法" +sidebar_label: "数据密度方法" --- ### 基于数据密度的检测方法 From 32b9141785818579d9dd6420daa1a19bd020b335 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:19:26 +0800 Subject: [PATCH 04/17] Update 04-machine-learning.md --- .../06-TDgpt/05-anomaly-detection/04-machine-learning.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md index 7b7c752dad..608d757218 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md @@ -1,6 +1,6 @@ --- -title: "检测算法" -sidebar_label: "检测算法" +title: "机器学习算法" +sidebar_label: "机器学习算法" --- ### 基于自编码器的检测方法 From da30d611cca3c9a5ae5356b7d62ae1f88413a888 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:20:49 +0800 Subject: [PATCH 05/17] Update index.md --- .../zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md index 42aeab08b9..cd1fc188f8 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md @@ -65,9 +65,5 @@ Query OK, 1 row(s) in set (0.028946s) ### 内置异常检测算法 -- iqr -- ksigma -- grubbs -- lof -- shesd -- tac +分析平台内置了6个异常检查模型,分为3个类别,分别是基于统计学的算法、基于数据密度的算法、以及基于深度学习的算法。在不指定异常检测使用的方法的情况下,默认调用 IQR 进行异常检测。 + From 960d784cf19ea5520a596de774678691dd8b29b6 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:24:47 +0800 Subject: [PATCH 06/17] refactor: update docs. --- .../02-anomaly-detection.md | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-anomaly-detection.md diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-anomaly-detection.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-anomaly-detection.md deleted file mode 100644 index b7da6ef627..0000000000 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-anomaly-detection.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "检测算法" -sidebar_label: "检测算法" ---- - -本节介绍内置异常检测算法模型的定义和使用方法。 - -## 概述 -分析平台内置了6个异常检查模型,分为3个类别,分别是基于统计学的模型、基于数据密度的模型、以及基于深度学习的模型。在不指定异常检测使用的方法的情况下,默认调用 iqr 进行异常检测。 - - - - - - - -### 参考文献 -1. [https://en.wikipedia.org/wiki/68–95–99.7 rule](https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule) -2. https://en.wikipedia.org/wiki/Interquartile_range -3. Adikaram, K. K. L. B.; Hussein, M. A.; Effenberger, M.; Becker, T. (2015-01-14). "Data Transformation Technique to Improve the Outlier Detection Power of Grubbs's Test for Data Expected to Follow Linear Relation". Journal of Applied Mathematics. 2015: 1–9. doi:10.1155/2015/708948. -4. Hochenbaum, O. S. Vallis, and A. Kejariwal. 2017. Automatic Anomaly Detection in the Cloud Via Statistical Learning. arXiv preprint arXiv:1704.07706 (2017). -5. Breunig, M. M.; Kriegel, H.-P.; Ng, R. T.; Sander, J. (2000). LOF: Identifying Density-based Local Outliers (PDF). Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data. SIGMOD. pp. 93–104. doi:10.1145/335191.335388. ISBN 1-58113-217-4. - From 3b3ad317f4c7129e265486e2df0111a0644ba172 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:25:46 +0800 Subject: [PATCH 07/17] Update 03-data-density.md --- .../06-TDgpt/05-anomaly-detection/03-data-density.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md index f52c12b07e..629ba57756 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/03-data-density.md @@ -1,6 +1,6 @@ --- -title: "数据密度方法" -sidebar_label: "数据密度方法" +title: "数据密度算法" +sidebar_label: "数据密度算法" --- ### 基于数据密度的检测方法 From 0ddf5391d54e479ec003cb22a29fddb9682f5e54 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:26:03 +0800 Subject: [PATCH 08/17] Update 02-statistics-approach.md --- .../06-TDgpt/05-anomaly-detection/02-statistics-approach.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md index 10d296d2dd..463f2a398d 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/02-statistics-approach.md @@ -1,6 +1,6 @@ --- -title: "统计学方法" -sidebar_label: "统计学方法" +title: "统计学算法" +sidebar_label: "统计学算法" --- - k-sigma[1]: 即 ***68–95–99.7 rule*** 。***k***值默认为 3,即序列均值的 3 倍标准差范围为边界,超过边界的是异常值。KSigma 要求数据整体上服从正态分布,如果一个点偏离均值 K 倍标准差,则该点被视为异常点. From 76d427108899d5f94d55b7bdd83f8a87c2e3f881 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:29:53 +0800 Subject: [PATCH 09/17] Update 02-management.md --- docs/zh/06-advanced/06-TDgpt/02-management.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/zh/06-advanced/06-TDgpt/02-management.md b/docs/zh/06-advanced/06-TDgpt/02-management.md index 07f1136549..cc85b158c4 100644 --- a/docs/zh/06-advanced/06-TDgpt/02-management.md +++ b/docs/zh/06-advanced/06-TDgpt/02-management.md @@ -5,6 +5,7 @@ sidebar_label: "安装部署" ### 环境准备 使用 TDgpt 的高级时序数据分析功能需要在 TDengine 集群中安装部署 AI node(Anode)。Anode 可以运行在 Linux/Windows/MacOS 等平台上,同时需要 3.10 或以上版本的 Python 环境支持。 +> 部署 ANode 需要 TDengine Enterprise 3.3.4.3 及以后版本,请首先确认安装的版本。 ### 安装及卸载 不同操作系统上安装及部署 Anode 有一些差异,主要是卸载操作、安装路径、服务启停等方面。本文以 Linux 系统为例,说明安装部署的流程。 From 84903c4a4a8e90d86e0adc84882b578adfcc0193 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:30:43 +0800 Subject: [PATCH 10/17] Update 02-management.md --- docs/zh/06-advanced/06-TDgpt/02-management.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/06-advanced/06-TDgpt/02-management.md b/docs/zh/06-advanced/06-TDgpt/02-management.md index cc85b158c4..de52dc2cf0 100644 --- a/docs/zh/06-advanced/06-TDgpt/02-management.md +++ b/docs/zh/06-advanced/06-TDgpt/02-management.md @@ -5,7 +5,7 @@ sidebar_label: "安装部署" ### 环境准备 使用 TDgpt 的高级时序数据分析功能需要在 TDengine 集群中安装部署 AI node(Anode)。Anode 可以运行在 Linux/Windows/MacOS 等平台上,同时需要 3.10 或以上版本的 Python 环境支持。 -> 部署 ANode 需要 TDengine Enterprise 3.3.4.3 及以后版本,请首先确认安装的版本。 +> 部署 Anode 需要 TDengine Enterprise 3.3.4.3 及以后版本,请首先确认搭配 Anode 使用的 TDengine 能够支持 Anode。 ### 安装及卸载 不同操作系统上安装及部署 Anode 有一些差异,主要是卸载操作、安装路径、服务启停等方面。本文以 Linux 系统为例,说明安装部署的流程。 From 1d033418f84c99400e7e5ecbc88c80ab0b48a4ba Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:47:20 +0800 Subject: [PATCH 11/17] Update index.md --- docs/zh/06-advanced/06-TDgpt/06-dev/index.md | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md index c6e6e9097a..cc7f902290 100644 --- a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md +++ b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md @@ -68,20 +68,12 @@ SELECT COUNT(*) FROM foo ANOMALY_DETECTION(col_name, 'algo=name') ## 添加具有模型的分析算法 -基于统计学的分析算法可以直接针对输入时间序列数据进行分析,整体分析流程比较快捷,但是某些深度学习算法对于输入数据的训练需要较长的时间,并且形成相应的模型。这种情况下,同一个分析算法对应不同的输入数据集有不同的分析模型。 +基于统计学的分析算法可以直接针对输入时间序列数据进行分析,但是某些深度学习算法对于输入数据需要较长的时间训练,并且生成相应的模型。这种情况下,同一个分析算法对应不同的输入数据集有不同的分析模型。 将具有模型的分析算法添加到 Anode 中,首先需要在 `model` 目录中建立该算法对应的目录(目录名称可自拟),将采用该算法针对不同的输入时间序列数据生成的训练模型均需要保存在该目录下,同时目录结构要在分析算法中确定,以便能够固定加载该目录下的分析模型。如下图所示,针对不同的数据集,采用自编码器(Autoencoder)训练的数据异常检测算法模型均保存在该目录下。为了确保模型能够正常读取加载,要求存储的模型使用`joblib`库进行序列化保存。 -调用已经保存的模型,需要首先调用`set_params`方法,并在参数中指定调用模型的名称 `{"model": "ad_encoder_keras"}` 即可调用该模型进行计算。调用方式如下: +调用已经保存的模型,需要在调用参数中增加指定模型名称,以便能够调用正确的模型,示例 SQL 语句如下所示。 -```python -def test_autoencoder_ad(self): - # 获取特定的算法对象 - # ... - - # 指定调用的模型,该模型是之前针对该数据集进行训练获得 - s.set_params({"model": "ad_encoder_keras"}) - - # 执行检查动作,并返回结果 - r = s.execute() +```SQL +--- 在 options 中增加 model 的名称,ad_autoencoder_foo, 针对 foo 数据集(表)训练的采用自编码器的异常检测模型进行异常检测 +SELECT COUNT(*), _WSTART FROM foo ANOMALY_DETECTION(col1, 'algo=encoder, model=ad_autoencoder_foo'); ``` - From 10e97506373aacd9c7d420235bf2dfa0dfe98661 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:55:39 +0800 Subject: [PATCH 12/17] Update 03-holtwinters.md --- docs/zh/06-advanced/06-TDgpt/04-forecast/03-holtwinters.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/zh/06-advanced/06-TDgpt/04-forecast/03-holtwinters.md b/docs/zh/06-advanced/06-TDgpt/04-forecast/03-holtwinters.md index 38662ca2b3..7e92a8ae1a 100644 --- a/docs/zh/06-advanced/06-TDgpt/04-forecast/03-holtwinters.md +++ b/docs/zh/06-advanced/06-TDgpt/04-forecast/03-holtwinters.md @@ -23,11 +23,16 @@ HoltWinters 有两种不同的季节性组成部分,当季节变化在该时 参数 `trend` 和 `seasonal`的均可以选择 `add` (加法模型)或 `mul`(乘法模型)。 ### 示例及结果 -针对 i32 列进行数据预测,输入列 i32 每 10 个点是一个周期,趋势采用乘法模型,季节采用乘法模型 +针对 i32 列进行数据预测,输入列 i32 每 10 个点是一个周期,趋势参数采用乘法模型,季节参数采用乘法模型 ``` FORECAST(i32, "algo=holtwinters,period=10,trend=mul,seasonal=mul") ``` +完整的调用SQL语句如下: +```SQL +SELECT _frowts, FORECAST(i32, "algo=holtwinters, peroid=10,trend=mul,seasonal=mul") from foo +``` + ```json5 { "rows": rows, // 返回结果的行数 From 163d315b650785899290e467ea2a645189530870 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 09:57:38 +0800 Subject: [PATCH 13/17] Update 02-arima.md --- docs/zh/06-advanced/06-TDgpt/04-forecast/02-arima.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/zh/06-advanced/06-TDgpt/04-forecast/02-arima.md b/docs/zh/06-advanced/06-TDgpt/04-forecast/02-arima.md index d34d2f8be9..469f557984 100644 --- a/docs/zh/06-advanced/06-TDgpt/04-forecast/02-arima.md +++ b/docs/zh/06-advanced/06-TDgpt/04-forecast/02-arima.md @@ -38,6 +38,11 @@ ARIMA 模型是一种自回归模型,只需要自变量即可预测后续的 FORECAST(i32, "algo=arima,alpha=95,period=10,start_p=1,max_p=5,start_q=1,max_q=5") ``` +完整的调用SQL语句如下: +```SQL +SELECT _frowts, FORECAST(i32, "algo=arima,alpha=95,period=10,start_p=1,max_p=5,start_q=1,max_q=5") from foo +``` + ```json5 { "rows": fc_rows, // 返回结果的行数 From f28d5efae8465b12accd8fb90a7d5ed11d048f2a Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 10:49:35 +0800 Subject: [PATCH 14/17] Update index.md --- .../06-advanced/06-TDgpt/04-forecast/index.md | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/04-forecast/index.md b/docs/zh/06-advanced/06-TDgpt/04-forecast/index.md index 41461a26fd..5d791fb598 100644 --- a/docs/zh/06-advanced/06-TDgpt/04-forecast/index.md +++ b/docs/zh/06-advanced/06-TDgpt/04-forecast/index.md @@ -5,6 +5,27 @@ description: 预测算法 时序数据预测处理以持续一个时间段的时序数据作为输入,预测接下来一个连续时间区间内时间序列数据趋势。用户可以指定输出的(预测)时间序列数据点的数量,因此其输出的结果行数不确定。为此,TDengine 使用新函数 `FORECAST` 提供时序数据预测服务。基础数据(用于预测的历史时间序列数据)是该函数的输入,预测结果是该函数的输出。用户可以通过 `FORECAST` 函数调用 Anode 提供的预测算法提供的服务。 +在后续章节中,使用时序数据表`foo`作为示例,介绍预测和异常检测算法的使用方式,`foo` 表的模式如下: + +|列名称|类型|说明| +|---|---|---| +|ts| timestamp| 主时间戳列| +|i32| int32| 4字节整数,设备测量值 metric| + +```bash +taos> select * from foo; + ts | k | +======================================== + 2020-01-01 00:00:12.681 | 13 | + 2020-01-01 00:00:13.727 | 14 | + 2020-01-01 00:00:14.378 | 8 | + 2020-01-01 00:00:15.774 | 10 | + 2020-01-01 00:00:16.170 | 16 | + 2020-01-01 00:00:17.558 | 26 | + 2020-01-01 00:00:18.938 | 32 | + 2020-01-01 00:00:19.308 | 27 | +``` + ### 语法 ```SQL FORECAST(column_expr, option_expr) @@ -54,16 +75,16 @@ FROM foo; taos> select _flow, _fhigh, _frowts, forecast(i32) from foo; _flow | _fhigh | _frowts | forecast(i32) | ======================================================================================== - 10.5286684 | 41.8038254 | 2020-01-01 00:01:35.001 | 26 | - -21.9861946 | 83.3938904 | 2020-01-01 00:01:36.001 | 30 | - -78.5686035 | 144.6729126 | 2020-01-01 00:01:37.001 | 33 | - -154.9797363 | 230.3057709 | 2020-01-01 00:01:38.001 | 37 | - -253.9852905 | 337.6083984 | 2020-01-01 00:01:39.001 | 41 | - -375.7857971 | 466.4594727 | 2020-01-01 00:01:40.001 | 45 | - -514.8043823 | 622.4426270 | 2020-01-01 00:01:41.001 | 53 | - -680.6343994 | 796.2861328 | 2020-01-01 00:01:42.001 | 57 | - -868.4956665 | 992.8603516 | 2020-01-01 00:01:43.001 | 62 | - -1076.1566162 | 1214.4498291 | 2020-01-01 00:01:44.001 | 69 | + 10.5286684 | 41.8038254 | 2020-01-01 00:01:35.000 | 26 | + -21.9861946 | 83.3938904 | 2020-01-01 00:01:36.000 | 30 | + -78.5686035 | 144.6729126 | 2020-01-01 00:01:37.000 | 33 | + -154.9797363 | 230.3057709 | 2020-01-01 00:01:38.000 | 37 | + -253.9852905 | 337.6083984 | 2020-01-01 00:01:39.000 | 41 | + -375.7857971 | 466.4594727 | 2020-01-01 00:01:40.000 | 45 | + -514.8043823 | 622.4426270 | 2020-01-01 00:01:41.000 | 53 | + -680.6343994 | 796.2861328 | 2020-01-01 00:01:42.000 | 57 | + -868.4956665 | 992.8603516 | 2020-01-01 00:01:43.000 | 62 | + -1076.1566162 | 1214.4498291 | 2020-01-01 00:01:44.000 | 69 | ``` From f6688ff7bf8b4287f67ce04d43047a38e6273c1b Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 11:07:51 +0800 Subject: [PATCH 15/17] Update 03-preprocess.md --- docs/zh/06-advanced/06-TDgpt/03-preprocess.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/03-preprocess.md b/docs/zh/06-advanced/06-TDgpt/03-preprocess.md index 3f791fb2e9..9efd2bdf11 100644 --- a/docs/zh/06-advanced/06-TDgpt/03-preprocess.md +++ b/docs/zh/06-advanced/06-TDgpt/03-preprocess.md @@ -11,8 +11,8 @@ import wndata from './pic/white-noise-data.png' 预处理流程 -TDgpt 首先对输入数据进行白噪声检查(White Noise Data check), 检查通过以后针对预测分析,还需要进行输入(历史)数据的重采样和时间戳对齐处理操作,如果是异常检测则跳过数据重采样和时间戳对齐的预处理。 -预处理完成以后,在进行后续的预测或异常检测操作。 +TDgpt 首先对输入数据进行白噪声检查(White Noise Data check), 检查通过以后针对预测分析,还要进行输入(历史)数据的重采样和时间戳对齐处理(异常检测跳过数据重采样和时间戳对齐步骤)。 +预处理完成以后,再进行预测或异常检测操作。预处理过程部署于预测或异常检测处理逻辑的一部分。 ### 白噪声检查 From 870d41c7b4f4fa93af248eb6d7793ede04f3873d Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 11:12:41 +0800 Subject: [PATCH 16/17] Update index.md --- docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md index cd1fc188f8..71bc9a0ff6 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md @@ -65,5 +65,5 @@ Query OK, 1 row(s) in set (0.028946s) ### 内置异常检测算法 -分析平台内置了6个异常检查模型,分为3个类别,分别是基于统计学的算法、基于数据密度的算法、以及基于深度学习的算法。在不指定异常检测使用的方法的情况下,默认调用 IQR 进行异常检测。 +分析平台内置了6个异常检查模型,分为3个类别,分别是[基于统计学的算法](./02-statistics-approach.md)、[基于数据密度的算法](./03-data-density.md)、以及[基于机器学习的算法](./04-machine-learning.md)。在不指定异常检测使用的方法的情况下,默认调用 IQR 进行异常检测。 From 47867188ed8d4210fbaa87727d5418c4817a80df Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 18 Nov 2024 11:13:53 +0800 Subject: [PATCH 17/17] Update index.md --- docs/zh/06-advanced/06-TDgpt/04-forecast/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/04-forecast/index.md b/docs/zh/06-advanced/06-TDgpt/04-forecast/index.md index f41a8c267c..c7388ab9c0 100644 --- a/docs/zh/06-advanced/06-TDgpt/04-forecast/index.md +++ b/docs/zh/06-advanced/06-TDgpt/04-forecast/index.md @@ -89,5 +89,5 @@ taos> select _flow, _fhigh, _frowts, forecast(i32) from foo; ## 内置预测算法 -- arima -- holtwinters +- [arima](./02-arima.md) +- [holtwinters](./03-holtwinters.md)