TDengine 中 TDgpt 的模型评估工具

模型评估工具

TDgpt 在企业版中提供预测分析模型和异常检测模型有效性评估工具 analytics_compare,该工具能够使用 TDengine 中的时序数据作为

回测依据,评估不同预测模型或训练模型的有效性。

该工具在开源版本中不可用

使用评估工具,需要在其相关的配置文件 taosanode.ini 中设置正确的参数,包括选取评估的数据范围、结果输出时间、参与评估的模型、模型的参数、是否生成预测结果图等配置。

在具备完备的 Python 库的运行环境中,通过 shell 调用 TDgpt 安装路径下的 misc 中 analytics_compare 的命令即可。

可按照如下方式体验模型有效性评估工具:

在配置文件 analytics.ini 配置文件中设置 taosd 服务的连接信息,包括 主机地址、配置文件路径、用户名、登录密码等信息。

ini 复制代码
[taosd]
# taosd 服务主机名
host = 127.0.0.1
# 登录用户名
user = root

# 登录密码
password = taosdata

# 配置文件路径
conf = /etc/taos/taos.cfg

[input_data]

# 用于预测评估的数据库名称
db_name = test

# 读取数据的表名称
table_name = passengers

# 读取列名称
column_name = val, _c0

评估预测分析模型

  1. 准备数据

在 TDgpt 安装目录下的 resource 文件夹中准备了样例数据 sample-fc.sql, 执行以下命令即可将示例数据写入数据库,用于执行评估

shell 复制代码
taos -f sample-fc.sql
  1. 设置参数
ini 复制代码
[forecast]
# 评估用数据每个周期包含的数据点数量
period = 12

# 预测生成结果的数据点数量
rows = 10

# 评估用数据起始时间
start_time = 1949-01-01T00:00:00

# 评估用数据结束时间
end_time = 1960-12-01T00:00:00

# 返回结果的时间戳起始值
res_start_time = 1730000000000

# 是否绘制预测结果
gen_figure = true

[forecast.algos]
# 评估用的模型及参数
holtwinters={"trend":"add", "seasonal":"add"}
arima={"time_step": 3600000, "start_p": 0, "max_p": 5, "start_q": 0, "max_q": 5}
  1. 调用评估工具
shell 复制代码
python3 ./analytics_compare.py forecast

需确保激活虚拟环境并调用该虚拟环境的 Python,否则启动的时候 Python 会提示找不到所需要的依赖库。

  1. 检查结果

在程序目录下生成 fc_result.xlsx 文件,此文件即为模型评估的结果文件。预测有效性的评估使用 MSE 指标作为依据,后续还将增加 MAPEMAE 指标。

该文件中第一个卡片是模型运行结果(如下表所示),分别是模型名称、执行调用参数、均方误差、执行时间 4 个指标。

algorithm params MSE elapsed_time(ms.)
holtwinters {"trend":"add", "seasonal":"add"} 351.622 125.1721
arima {"time_step":3600000, "start_p":0, "max_p":10, "start_q":0, "max_q":10} 433.709 45577.9187

如果配置文件 analytics.ini 中设置 gen_figure 为 true,分析结果文件中的后续卡片中在针对每个模型绘制分析预测结果图(如下图)。

评估异常检测模型

针对异常检测模型提供查全率(recall)和查准率(precision)两个指标衡量模型有效性。

通过在配置文件中analysis.ini设置以下的选项可以调用需要使用的异常检测模型,异常检测模型测试用数据的时间范围、是否生成标注结果的图片、调用的异常检测模型以及相应的参数。

  1. 准备数据

在 TDgpt 安装目录下的 resource 文件夹中准备了样例数据 sample-ad.sql, 执行以下命令即可将示例数据写入数据库

shell 复制代码
taos -f sample-ad.sql
  1. 设置参数
ini 复制代码
[ad]
# 数据集起始时间戳
start_time = 2021-01-01T01:01:01

# 数据集结束时间戳
end_time = 2021-01-01T01:01:11

# 是否绘制检测结果
gen_figure = true

# 标注异常检测结果
anno_res = [9]

# 用于比较的模型及相关参数设置
[ad.algos]
ksigma={"k": 2}
iqr={}
grubbs={}
lof={"algorithm":"auto", "n_neighbor": 3}
  1. 标注异常检测结果

    调用异常检测模型比较之前,需要人工标注异常监测数据集结果,即在 anno_res 选项下标注异常点在测试数组中的位置。

    例如:在 sample-ad 测试数据集中第 9 个点是异常点。需要在 anno_res 下异常标注 9。如果第 0 个点和第 9 个点是异常点,则

    设置为 0, 9

  2. 调用评估工具

shell 复制代码
python3 ./analytics_compare.py anomaly-detection
  1. 检查结果

对比程序执行完成以后,会自动生成名称为 ad_result.xlsx 的文件,第一个卡片是模型运行结果(如下表所示),分别是模型名称、执行调用参数、查全率、查准率、执行时间 5 个指标。

algorithm params precision(%) recall(%) elapsed_time(ms.)
ksigma {"k":2} 100 100 0.453
iqr {} 100 100 2.727
grubbs {} 100 100 2.811
lof {"algorithm":"auto", "n_neighbor":3} 0 0 4.660

如果设置了 gen_figuretrue,比较程序会自动将每个参与比较的模型分析结果采用图片方式呈现出来(如下图所示为 ksigma 的异常检测结果标注)。

相关推荐
小雨笙笙几秒前
机器学习:线性回归学习
学习·机器学习·线性回归
微财经观圈1 分钟前
酒店配送机器人如何选型:普渡和优地从安全到场景的全面对比
大数据·安全·机器人
bgy66667 分钟前
MariaDB 数据库 基础详解
数据库·mariadb
自动化监测Learner10 分钟前
QGIS 把geojson数据导入 PostgreSQL/PostGIS 的完整流程
数据库·postgresql
学着改变27511 分钟前
2026便携式超声波流量计性能白皮书 户外巡检适用性横评
大数据·网络·人工智能·科技·产品运营·量子计算
天远Date Lab28 分钟前
零信任架构实战:基于天远车信盟出险构建自动化汽车消费贷合规网关
人工智能·机器学习·计算机视觉·ocr
虎虎(_ _)。゜zzZ34 分钟前
Qdrant向量数据库工程实战
数据库·人工智能·大模型·向量数据库·rag·qdrant
智途 Tech40 分钟前
2026年分析多个Excel、CSV和网页数据的AI工具清单:Tabbit 浏览器多源引用
大数据·人工智能·excel
ZGG0031 小时前
线程池详解:从 7 大参数到生产避坑
java·数据库·后端
龙亘川1 小时前
数智赋能退役军人服务:V1.0 系统搭建全生命周期闭环服务体系
大数据·数据库·人工智能