TDengine 中 TDgpt 的模型評估工具

在這里插入圖片描述

模型評估工具

TDgpt 在企業版中提供預測分析模型和異常檢測模型有效性評估工具 analytics_compare,該工具能夠使用 TDengine 中的時序數據作為
回測依據,評估不同預測模型或訓練模型的有效性。

該工具在開源版本中不可用

使用評估工具,需要在其相關的配置文件 taosanode.ini 中設置正確的參數,包括選取評估的數據范圍、結果輸出時間、參與評估的模型、模型的參數、是否生成預測結果圖等配置。

在具備完備的 Python 庫的運行環境中,通過 shell 調用 TDgpt 安裝路徑下的 misc 中 analytics_compare 的命令即可。
可按照如下方式體驗模型有效性評估工具:

在配置文件 analytics.ini 配置文件中設置 taosd 服務的連接信息,包括 主機地址、配置文件路徑、用戶名、登錄密碼等信息。

[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, 執行以下命令即可將示例數據寫入數據庫,用于執行評估

taos -f sample-fc.sql
  1. 設置參數
[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. 調用評估工具
python3 ./analytics_compare.py forecast

需確保激活虛擬環境并調用該虛擬環境的 Python,否則啟動的時候 Python 會提示找不到所需要的依賴庫。

  1. 檢查結果

在程序目錄下生成 fc_result.xlsx 文件,此文件即為模型評估的結果文件。預測有效性的評估使用 MSE 指標作為依據,后續還將增加 MAPEMAE 指標。
該文件中第一個卡片是模型運行結果(如下表所示),分別是模型名稱、執行調用參數、均方誤差、執行時間 4 個指標。

algorithmparamsMSEelapsed_time(ms.)
holtwinters{"trend":"add", "seasonal":"add"}351.622125.1721
arima{"time_step":3600000, "start_p":0, "max_p":10, "start_q":0, "max_q":10}433.70945577.9187

如果配置文件 analytics.ini 中設置 gen_figure 為 true,分析結果文件中的后續卡片中在針對每個模型繪制分析預測結果圖(如下圖)。

在這里插入圖片描述

評估異常檢測模型

針對異常檢測模型提供查全率(recall)和查準率(precision)兩個指標衡量模型有效性。
通過在配置文件中analysis.ini設置以下的選項可以調用需要使用的異常檢測模型,異常檢測模型測試用數據的時間范圍、是否生成標注結果的圖片、調用的異常檢測模型以及相應的參數。

  1. 準備數據

在 TDgpt 安裝目錄下的 resource 文件夾中準備了樣例數據 sample-ad.sql, 執行以下命令即可將示例數據寫入數據庫

taos -f sample-ad.sql
  1. 設置參數
[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. 調用評估工具

python3 ./analytics_compare.py anomaly-detection
  1. 檢查結果

對比程序執行完成以后,會自動生成名稱為 ad_result.xlsx 的文件,第一個卡片是模型運行結果(如下表所示),分別是模型名稱、執行調用參數、查全率、查準率、執行時間 5 個指標。

algorithmparamsprecision(%)recall(%)elapsed_time(ms.)
ksigma{"k":2}1001000.453
iqr{}1001002.727
grubbs{}1001002.811
lof{"algorithm":"auto", "n_neighbor":3}004.660

如果設置了 gen_figuretrue,比較程序會自動將每個參與比較的模型分析結果采用圖片方式呈現出來(如下圖所示為 ksigma 的異常檢測結果標注)。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917758.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【DL學習筆記】DataLoader類功能和參數說明

文章目錄一、Dataset 與 DataLoader 功能介紹抽象類Dataset的作用DataLoader 作用兩者關系二、torch.utils.data.DataLoader代碼示例常用參數圖示num_workers設置多少合適數據加載子進程如何并行的pin_memorysampler兩種sampler順序采樣 SequentialSampler隨機采樣 RandomSampl…

JVM中年輕代、老年代、永久代(或元空間)、Eden區和Survivor區概念介紹

在Java虛擬機(JVM)中,內存管理是自動化的,這主要通過垃圾回收機制實現。JVM將堆內存劃分為不同的區域,以便更高效地管理和回收對象。以下是關于年輕代、老年代、永久代(或元空間)、Eden區和Surv…

譯 | BBC Studios團隊:貝葉斯合成控制方法SCM的應用案例

來自上傳文件中的文章《Using Causal Inference for Measuring Marketing Impact: How BBC Studios Utilises Geo Holdouts and CausalPy》 本篇介紹了在傳統A/B測試不適用時,如何利用貝葉斯合成控制方法和地理區域保留來評估營銷活動效果。其亮點在于通過構建“反事…

Web開發-PHP應用TP框架MVC模型路由訪問模版渲染安全寫法版本漏洞

我們先使用/index.php/index/index/test,就是圖中的test()方法 /index.php/index/index/index,這個回顯就是111 http://127.0.0.1:83/index.php/index/index/test2?x123456 public function test2() {$x$_GET[x];return $x; } 這里再做一個案例更詳細一…

FreeRTOS列表系統深度解析

FreeRTOS列表系統深度解析 一、核心數據結構 1. 列表控制塊 (List_t) typedef struct xLIST {volatile UBaseType_t uxNumberOfItems; // 當前列表項數量ListItem_t * pxIndex; // 遍歷指針(用于輪詢調度)MiniListItem_t xListEnd; …

《Linux編譯器:gcc/g++食用指南》

堅持用 清晰易懂的圖解 代碼語言,讓每個知識點變得簡單! 🚀呆頭個人主頁詳情 🌱 呆頭個人Gitee代碼倉庫 📌 呆頭詳細專欄系列 座右銘: “不患無位,患所以立。” 《Linux編譯器:GCC…

SparkKV轉換算子實戰解析

目錄 KV算子 parallelizePairs mapToPair mapValues groupByKey reduceByKey sortByKey 算子應用理解 reduceByKey和groupByKey的區別 groupByKeymapValues實現KV數據的V的操作 改進用reduceByKey groupby通過K和通過V分組的模板代碼 問題集錦 寶貴的經驗 這里會…

深度解析 TCP 三次握手與四次揮手:從原理到 HTTP/HTTPS 的應用

TCP 的三次握手和四次揮手是網絡通信的基石,無論是 HTTP 還是 HTTPS,它們都依賴 TCP 提供可靠的傳輸層服務。本文將用萬字篇幅,結合 Mermaid 圖表和代碼示例,深入講解 TCP 三次握手、四次揮手的原理、過程、狀態變化,以…

Hyper-V + Centos stream 9 搭建K8s集群(一)

一、創建虛擬機一臺32G內存,16核心的Win11,已經安裝了Hyper-V 管理器。然后也下載了CentOS-Stream-9-latest-x86_64-dvd1.iso的鏡像文件。這里Hyper-V創建虛擬機的過程就不贅述了,如果出現虛擬機加載不到鏡像的問題,先把這個使用安…

Pygame如何制作小游戲

以下是 Pygame 的詳細使用指南,從安裝到開發完整游戲的步驟說明,包含代碼示例和最佳實踐: 一、安裝與環境配置 1. 安裝 Pygame pip install pygame2. 驗證安裝 import pygame pygame.init() print(pygame.version.ver) # 應輸出版本號&am…

@【JCIDS】【需求論證】聯合能力集成與開發系統知識圖譜

JCIDS(聯合能力集成與開發系統)知識圖譜 1. JCIDS概述 2. JCIDS的提出背景 3. JCIDS核心流程 4. JCIDS分析方法 5. JCIDS優勢 6. JCIDS與采辦系統的關系 7. JCIDS知識圖譜結構 8. 對我的啟示 9.JCIDS(聯合能力集成與開發系統)相關術語列表 10. 參考文獻 1. JCIDS概述 定義:…

每天學一個Linux命令(38):vi/vim

每天學一個 Linux 命令(38):vi/vim vi 和 vim(Vi IMproved)是 Linux 和 Unix 系統中功能強大的文本編輯器。vim 是 vi 的增強版,提供語法高亮、多級撤銷、插件支持等更多功能。掌握 vi/vim 是 Linux 系統管理員的必備技能之一。 1. 命令簡介 vi:經典的文本編輯器,幾乎…

【PZ-ZU49DR-KFB】:璞致電子 UltraScale+ RFSoC 架構下的軟件無線電旗艦開發平臺

璞致電子 PZ-ZU49DR-KFB 開發板基于 Xilinx ZYNQ UltraScale RFSoC XCZU49DR 主控制器,以 "ARMFPGA 異構架構" 為核心,融合高帶寬信號采集、高速數據處理與靈活擴展能力,專為專業工程師打造的軟件無線電(SDR&#xff09…

力扣106:從中序與后序遍歷序列構造二叉樹

力扣106:從中序與后序遍歷序列構造二叉樹題目思路代碼題目 給定兩個整數數組 inorder 和 postorder ,其中 inorder 是二叉樹的中序遍歷, postorder 是同一棵樹的后序遍歷,請你構造并返回這顆 二叉樹 。 思路 我們首先要知道中序遍歷和后序…

IDEA JAVA工程入門

Maven配置: IDEA -> settings -> Build, Execution, Deployment -> Build Tools -> MavenMaven home pathUser setting file : 特定倉庫下載依賴包,自動下載(界面右邊M圖標點開,)local repository (本地倉庫&#xff…

Spring依賴注入:從原理到實踐的自學指南

Spring依賴注入:從原理到實踐的自學指南 一、什么是依賴注入? 依賴注入(Dependency Injection, DI)是Spring框架實現控制反轉(IoC)的核心手段。其核心思想是:對象不再自己創建依賴項&#xff…

3_軟件重構_組件化開發實例方法論

1、上期回顧上次內容核心的地方有兩個,①是C多態基類的指針指向派生類,用于初始化各個插件。②是使用C語言的dlopen函數“動態加載”各個插件,實現用戶根據契約接口自定義開發插件,極大程度地實現了軟件上的解耦。③再進一步&…

C#接口的定義與使用

第1章 接口(interface)是什么1.1 定義? 接口是一組“能力”或“契約”的抽象描述,只規定“能做什么”,不規定“怎么做”。? 在 C# 中,接口是一種完全抽象的類型(fully abstract type)。 ? 關…

【STM32】HAL庫中的實現(三):PWM(脈沖寬度調制)

🔧 HAL庫中的實現:PWM(脈沖寬度調制) PWM(Pulse Width Modulation)是基于定時器(TIM)產生的周期性脈沖信號,廣泛應用于:① 電機調速;② LED 亮度控…

GitHub 趨勢日報 (2025年08月03日)

🚀 GitHub 趨勢日報 (2025年08月03日) 📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖751dyad362LLMs-from-scratch291…