相关文章
用于评估各类时间序列异常检测(Time Series Anomaly Detection) 算法的框架源码+项目说明.zip
2024-12-20 00:49
# TSAD_evaluator TSAD_evaluator是一个用于评估各类时间序列异常检测(Time Series Anomaly Detection) 算法的框架,主要目的是能让研究人员专心于实现算法,而无需关心其他例如数据集处理、评估、可视化等流程,将算法之外的流程标准化、简易化、可配置化,其特性主要有以下几点: - **可扩展**:内置对多种数据集的支持,将多种数据集处理成统一格式 - **可视化**:将数据和结果持久化存储到influxdb,用grafana进行可视化 - **通用性**:适配各类算法以及应用场景,只需实现相应的接口即可 - **简易性**:支持一键脚本化运行,快速评估单个算法/多个算法在一个数据集/多个数据集上的结果 - **全面性**:提供通用评价指标、针对时序数据设计的评价指标、自研指标、性能指标对算法进行全方位评估 ## 目录 - [系统介绍](#系统介绍) - [数据集支持](#数据集支持) - [可视化支持](#可视化支持) - [算法抽象](#算法抽象) - [检测流程标准化](#检测流程标准化) - [效果评估](#效果评估) - [如何使用](#如何使用) - [安装所需依赖](#安装所需依赖) - [导入数据集](#导入数据集) - [实现算法](#实现算法) - [评估算法](#评估算法) - [拓展实现](#拓展实现) - [对聚合函数的扩展](#对聚合函数的扩展) - [对自动确立阈值方法的扩展](#对自动确立阈值方法的扩展) - [对评价指标的扩展](#对评价指标的扩展) - [联系方式](#联系方式) - [参考文献](#参考文献) ## 系统介绍 <!-- 这边是不是应该有一张overview,整个系统的模块图 --> ### 数据集支持 在TSAD_evaluator中,Dataset代表一个数据集,而一个数据集下会有多个时间序列数据TimeSeries,我们把TimeSeries处理成统一的格式: ``` timestamp col1 col2 ... colN ``` - 其中N是时间序列的维度,对于单维度的时间序列数据N=1 - 如果原来的数据集中有timestamp,则会沿用;否则会从2022-01-01 00:00:00开始认为每一分钟一个点的方式填充时间戳 目前已经支持的数据集 <!-- 之后可以显示下这些数据集的维度信息、点数、异常率等等,搞个表格--> | 数据集 | 维度| 时间序列数| 总采样点数 | 总异常点数 | 异常比例| |-----------------------------------------------------------------------------------------------------|----|-------|---------|--------|----------| | [Yahoo](https://webscope.sandbox.yahoo.com/catalog.php?datatype=s&did=70) | 1 | 367 | 572966 | 3915 | 0.68% | | [KPI](https://github.com/NetManAIOps/KPI-Anomaly-Detection) | 1 | 29 | 5922913 | 134114 | 2.26% | | [Industry](https://github.com/OpsPAI/ADSketch) | 1 | 70 | 695293 | 7614 | 1.10% | | [UCR](https://wu.renjie.im/research/anomaly-benchmarks-are-flawed/#ucr-time-series-anomaly-archive) | 1 | 250 | 19353766 | 49363 | 2.55% | | [SMD](https://github.com/NetManAIOps/OmniAnomaly) | 38 | 28 | 1416825 | 29444 | 2.08% | | [JumpStarter](https://github.com/NetManAIOps/JumpStarter) | 19 | 60 | 777600 | 55101 | 7.09% | | [SKAB](https://github.com/waico/SKAB) | 9 | 34 | 37401 | 13067 | 34.94% | | [PSM](https://github.com/eBay/RANSynCoders) | 26 | 1 | 220322 | 24381 | 11.07% | > 打算但是暂未支持的数据集:NAB,SMAP,MSL,SWaT、WADI ### 可视化支持 我们提供对数据、检测结果包括中间结果的一些可视化支持,主要原因是: - 研究算法前:可以了解数据集的特点(是否是周期性、为什么是异常、异常的密度如何等信息),也能启发研究者想出针对的解决方案 - 研究算法中:观察算法的中间输出(例如预测类算法可以输出每个点的预测值),从而对算法拟合的效果有所了解(可能欠拟合or过拟合),可以进一步调优 - 研究算法后:直观了解算法对一个序列的检测结果(一般是检测分数)是否契合异常标注(而不仅仅是依赖评估指标的数字),并且可以与其他算法的结果进行对比 但为了减少依赖,避免该框架过于冗余,我们选择将数据和结果全部持久化到[Influxdb](https://github.com/influxdata/influxdb) ,然后用[Granfana](https://github.com/grafana/grafana) 来展示其中的数据,目前我们新建了5个Dashboard来展示特定的界面: - 原数据查看:查看「选定数据集」的「选定时间序列」的统计信息、时间序列信息、标签 ![](doc/1.png) - 检测结果查看:查看「选定算法」在「选定数据集」的「选定序列」上的异常分数、中间结果、检测耗时和指标 ![](doc/2.png) ![](doc/3.png) - 检测结果对比:查看「多个选定算法」在「选定数据集」的「选定序列」上的异常分数、检测耗时和指标对比 ![](doc/4.png) - 数据集结果查看:查看「选定算法」在「选定数据集」下的整体检测指标和「各个序列」的检测指标 ![](doc/5.png) - 数据集结果对比:查看「多个选定算法」在「选定数据集」下的整体检测指标的对比 ![](doc/6.png) ### 算法抽象 我们根据输入的数据维度、训练是否需要有标注数据、应用场景将一个检测算法解耦,拆成三个可灵活组合的模块: - 输入的数据维度:单维度/多维度 - 训练是否有标注:有监督/无监督/无需训练 - 应用场景:离线/流式/触发式 > 关于触发式 > - 定义:主要是对于某些时间序列数据,我们只对它在**特定时间范围**内有没有发生异常感兴趣,而不需要算法在每个时间点给出它是否异常或者异常分数,这在某些故障定位场景(而不是故障发现)中是比较常见的 > - 实现:需要输入窗口大小和正负样本比例,我们对于测试集中的每一个(段)异常,都挑选其开头前后共计窗口大小的数据作为正例,然后再按照正负样本比例采样若干完全正常的数据作为负例组成触发异常检测的**时间范围**,在前端会用蓝色区域标识我们选择的区间 实现算法时,需根据每一模块所属的具体类别继承特定的类,实现其中的接口即可 ### 检测流程标准化 除了基本的算法外,我们也提供将单维度检测算法应用于多维度数据集以及多个算法集成的功能,思路比较简单,具体来讲就是通过提供一个聚合函数,可以把单个算法在不同维度的检测结果 / 不同算法在同一数据集上的检测结果聚合成一个最终的检测结果,该聚合函数可以自定义(内置了取max和取mean)并且配置 因此总体来讲,对于一个「特定算法」在「特定时间序列数据」上的检测,我们有以下几步: 1. 训练:根据算法所需数据喂给算法 2. 对于触发式,要根据配置生成正负例 3. 预测:根据算法应用场景进行预测 1. 离线:把测试数据全部喂给算法,得到检测的异常分数 2. 流式:每次喂一个时间点的数据给算法,拼接起来得到检测的异常分数 3. 触发式:将第2步中生成的**时间范围**以及一个获取历史数据的接口(具体获取多少依赖于算法内部调用)逐个喂给算法,得到一个检测的异常分数
    以上就是本篇文章【用于评估各类时间序列异常检测(Time Series Anomaly Detection) 算法的框架源码+项目说明.zip】的全部内容了,欢迎阅览 ! 文章地址:http://dh99988.xhstdz.com/news/11864.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://dh99988.xhstdz.com/mobile/ , 查看更多   
最新文章
云南uc神马搜索广告怎么开户
在互联网广告日益发展的今天,企业的市场推广已成为提升业绩的重要组成部分。云南作为一个旅游和文化丰富的省份,吸引了大量用户
wordpress插件,免费蜘蛛统计分析插件,wordpres翻译插件「附下载」
Wordpress采集插件不需要任何采集规则,完全实现一键抓取任务。支持365天无限循环挂机采集维护所有网站。设置好相关参数后,软件
2024年区块链技术培训:全新课件发布
2024年区块链技术培训:全新课件发布汇报人:2024-11-16区块链技术基础区块链核心技术详解区块链平台与开发工具介绍区块链安全性
Dynadot支持哪些中文域名后缀
Dynadot是一家知名的国外域名注册商,成立于2002年,其官网支持中文、英文、法语、西班牙语等多种语言切换,主要提供域名注册、
如何轻松应对Nginx配置文件大小限制提高网站性能与稳定性
为什么需要关注Nginx配置文件大小限制 在使用Nginx作为网站服务器的过程中,配置文件的大小限制是一个常见的问题。当配置文件过大时,会导致服务器性能下降,影响网站的稳定性和访问速度。因此,及时优化和调整配置文件大小非常重要。 如何
打造健康生活新选择:养生馆推广文案写作技巧揭秘
引言:健康生活的追求 在现代社会中,健康已经成为人们最看重的财富之一。快节奏的生活和不断加重的工作压力,使得越来越多的人开始关注自己的身心健康。养生馆作为一种创新的健康生活方式应运而生,它不仅为人们提供了放松身心的场所,还
探索兰州魅力:一份全面的兰州旅游攻略揭开牛肉面与黄河的秘密
探索兰州:邂逅西北的魅力之城 兰州,作为甘肃省的省会,坐落于黄河上游,是一座历史悠久而又充满活力的城市。这里不仅拥有丰富的文化遗产,还有壮观的自然景观。兰州以其独特的地理位置、深厚的文化底蕴和美味的地方美食吸引着越来越多的
如何设置服务器配置提高系统性能?
提高系统性能的重要性 在当今数字化时代,服务器的性能直接影响到企业的竞争力和运营效率。一个高效的服务器配置不仅可以提升系统的稳定性和响应速度,还能提高员工的工作效率和客户体验。 选择适合的硬件和软件配置 首先,要根据企业的实
如何成功启动社区团购:从运营模式到实战技巧的全方位解析
引言:社区团购的崛起 在当今的互联网时代,社区团购以其高效、便捷的特点迅速崛起,成为许多消费者购物的新选择。社区团购不仅能满足居民对日常生活用品的需求,还能通过规模化采购为消费者带来实惠。如何成功启动社区团购,成为了许多创
海底捞学生证折扣使用时间详解:让你的就餐更划算
海底捞学生证折扣使用时间详解 海底捞作为国内知名的火锅连锁品牌,一直以高质量的服务和美味的火锅享誉全国。而对于学生党来说,海底捞更是一个不可多得的福利之地。学生持有效学生证可以享受折扣优惠,让你的就餐更划算。 折扣使用时间
相关文章