首页 > 其他分享 >时间序列 工具库学习(18)adtk模块-异常类型

时间序列 工具库学习(18)adtk模块-异常类型

时间:2022-11-24 19:31:53浏览次数:66  
标签:季节性 18 adtk 时间 模块 序列 detector 异常


1.异常类型

异常是一个广义的概念,它可以指代时间序列中许多不同类型的事件。根据具体情况,价值飙升、波动性转变、违反季节性模式等都可能是异常的或正常的。ADTK 提供了一组通用组件,可以针对不同场景组合成各种类型的异常检测模型。但是,ADTK 不会自动为用户选择或构建模型。用户应该知道要检测哪种类型的异常,因此可以相应地构建模型。

​https://adtk.readthedocs.io/en/stable/index.html​

(1)离群值

离群值是其值与其他值显着不同的数据点。时间序列时间中的异常点超出了该序列的正常范围,没有考虑数据点之间的时间关系。换句话说,即使将所有数据点都视为与时间无关的,异常点仍然很突出。

时间序列 工具库学习(18)adtk模块-异常类型_python


为了检测异常值,时间序列值的正常范围是检测器需要学习的。它可以用用户给定的绝对阈值 ( ​​adtk.detector.ThresholdAD​​​) 来定义。或者,用户可以创建一个检测器以从历史数据( ​​adtk.detector.QuantileAD、adtk.detector.InterQuartileRangeAD 和adtk.detector.GeneralizedESDTestA​​D )中学习正常范围 。

异常值【离群值】是最基本的异常类型。针对其他类型的异常检测方法通常将时间序列转换为应用异常值检测的新时间序列。ADTK 中的大多数高级检测器都遵循此策略。

(2)尖峰和水平偏移(Spike and Level Shift)

在某些情况下,一个时间点是否正常取决于它的值是否与其最近的时间一致。如果变化是暂时的,则值的突然增加或减少称为尖峰,如果变化是永久性的,则称为水平偏移。请注意,虽然尖峰看起来与异常值相似,但它是时间相关的,而异常值是时间无关的。如果在不考虑时间顺序的情况下检查所有数据点,则峰值的值可能是正常的(见下图)。

时间序列 工具库学习(18)adtk模块-异常类型_时间序列_02


可以并排滑动两个时间窗口,并继续跟踪它们的平均值或中值之间的差异。这种随时间的差异是一个新的时间序列,由异常值检测器检查。每当左右窗口中的统计数据显着不同时,就表明在这个时间点附近发生了突变。时间窗口长度控制检测变化的时间尺度:对于尖峰,左侧窗口比右侧窗口长,以捕获近期的代表性信息;另一方面,对于电平转换,两个窗口都应该足够长以捕捉稳定状态。

​adtk.detector.PersistAD​​​和​​adtk.detector.LevelShiftAD​​​分别是尖峰和电平偏移的检测器。两者都是使用转换器实现的,转换器​​adtk.transformer.DoubleRollingAggregate​​将时间序列转换为具有上述两个时间窗口的新序列。

​使用DoubleRollingAggregate转换具有水平移位的时间序列,将均值作为时间窗口统计量:​

时间序列 工具库学习(18)adtk模块-异常类型_python_03

(3)模式变化

上面提到的策略可以推广到检测除价值之外的模式的变化。例如,如果对波动率的变化感兴趣,则在时间窗口中跟踪的统计数据可以是标准差而不是平均值/中位数。​​adtk.transformer.DoubleRollingAggregate​​支持 16 种常见统计数据,可用于量化感兴趣的模式。

​使用以标准差为指标的DoubleRollingAggregate转换具有波动率水平变化的时间序列:​

时间序列 工具库学习(18)adtk模块-异常类型_adtk模块_04

对于检测模式的时间变化,​​adtk.transformer.RollingAggregate​​也可能是一个不错的选择。它滑动一个时间窗口并返回一个在窗口内测量的统计数据,该统计数据量化了一个时间模式。例如,如果用户想要检测对系统的临时异常高访问次数,则在滑动窗口中跟踪访问次数是一种有效的方法。

时间序列 工具库学习(18)adtk模块-异常类型_时间序列_05

(4)季节性

当时间序列受季节性因素(例如一天中的小时、一周中的一天、一年中的月份)影响时,就会出现季节性模式。检测器​​adtk.detector.SeasonalAD​​​使用转换器​​adtk.transformer.ClassicSeasonalDecomposition​​从原始时间序列中去除季节性模式,并通过检查剩余序列来突出时间序列不正常遵循季节性模式的时间段。

使用以一周为周期的ClassicSeasonalDecomposition从 NYC 流量的时间序列中删除季节性模式(来自​​Numenta Anomaly Benchmark​​​的数据):【​​链接​​】

时间序列 工具库学习(18)adtk模块-异常类型_时间序列_06


用户需要注意区分季节性系列和循环系列。季节性系列总是有一个固定的,通常是可解释和已知的,因为它的季节性性质。由于其物理性质,循环时间序列不遵循固定的周期模式,即使它看起来重复类似的子序列。例如,旋转设备中运动部件的轨迹是一个 3-D 循环时间序列,其周期长度取决于旋转速度,不一定是固定的。对其应用季节性分解将是有问题的,因为每个周期的持续时间可能略有不同,并且分解残差会误导异常检测。​​将ClassicSeasonalDecomposition应用于循环序列无法检测到异常行为:​

时间序列 工具库学习(18)adtk模块-异常类型_异常检测_07


ADTK 不提供从循环(但不是季节性)时间序列中删除循环模式的转换器。但是,​​adtk.detector.AutoregressionAD​​可以捕捉自回归关系的变化(数据点与其近期点之间的关系),并且在某些情况下可用于循环(但不是季节性)序列。


标签:季节性,18,adtk,时间,模块,序列,detector,异常
From: https://blog.51cto.com/tony/5884624

相关文章

  • centos安装php模块之后还是提示not found解决方法
    我的centos服务器是7.3版本,我装了php5.6版本,然后再装memcached等扩展的时候,一直用不了,方法没找到。在网上找了很多资料,都说重启nginx服务器,然而行不通。。。。正确做法应该......
  • 动环监控模块--关于数壳
    动环监控模块的一些功能特性:通过温湿度传感器,监控机房内各个位置的温湿度情况,实时显示机房内温湿度,保持良好的运行环境,能使服务器发挥更好的性能,可以根据温湿度的变化,了......
  • Node.js使用path模块处理文件路径
    首先需要引入path模块varpath=require('path');1.文件路径处理:path.normalize(p)。path模块中的normalize()方法用来规范化路径字符串。可用于处理路径中的”//”、”........
  • 兄弟打印机DCP-7180DN清零方法
    兄弟打印机DCP-7180DN清零方法兄弟打印机DCP-7180DN清零方法如下:1,首先,打开打印机的前盖。2,按住“OK”按键至少三到五秒,液晶显示屏将会显示“更换硒鼓”,如果需要对鼓架进......
  • Codeforces Round #418 (Div. 2) D. An overnight dance in discotheque 题解
    圆由于没有相交,之间的关系要么毫无关系,要么就是包含,所以能形成树。直接包含的就是父节点。如果只有一组,不分前半夜后半夜的话,那么舒适度就是每棵树的根节点(深度为0)面积......
  • luogu1253 [yLOI2018] 扶苏的问题 题解
    扶苏的问题题目题目描述给定一个长度为\(n\)的序列\(a\),要求支持如下三个操作:给定区间\([l,r]\),将区间内每个数都修改为\(x\)。给定区间\([l,r]\),将区间内每......
  • day07 自定义模块&常见内置模块
    什么是模块和包?模块,就是指py文件,我们可以将一些功能按照某个维度划分自定义内置第三方包,就是指文件夹里面包含多个py文件一般情况下,大家平时的讨论和沟通时......
  • 光模块的参数有哪些呢?
    在现代信息网络汇总,光纤通信占据着主导地位,随着网络的覆盖越来越广泛和通信容量的不断增加,通信链路的提升也是必然的发展,光模块在光通信网络中实现着光电信号的转换,是光纤通......
  • 双系统 win10+Ubuntu18+Linux系统维护
    文章目录​​一.Ubuntu的安装​​​​1.1Ubuntu独立安装​​​​1.1.1制作Ubuntu启动U盘​​​​1.1.2win10系统安装双系统Ubuntu​​​​a.开辟Ubuntu系统空间​​​......
  • 189. Rotate Array
    Rotateanarrayof n elementstotherightby k steps.Forexample,with n =7and k =3,thearray [1,2,3,4,5,6,7] isrotatedto [5,6,7,1,2,3,4].N......