一种周期性时序数据的异常监测方法及装置与流程

文档序号:20998559发布日期:2020-06-05 22:26阅读:506来源:国知局
一种周期性时序数据的异常监测方法及装置与流程

本发明涉及计算机技术领域,特别涉及一种周期性时序数据的异常监测方法及装置。



背景技术:

目前,针对时序数据的异常检测经常基于领域专家给定的规则,例如按照专家经验和日常监测值,规定各项技术指标的正常区间,在正常区间内的数据判定为正常,不在正常区间内的数据判定为异常。这种方法灵活性以及准确性欠佳,特别不适用具有周期性的变化的时序数据,比如在数据中心对外提供服务时,各类资源的使用具有明显的周期性(高峰期、平稳期和低谷期),对资源的使用情况进行监控时,如果在高峰期,较高的资源占有率是正常的,但是如果在低谷期,不太高的资源占有率也是异常的,上述固定阈值的方式则无法适用。

近期来,机器学习技术被应用于异常检测,如标准差法、基于密度的聚类、孤立森林、多元高斯分布、支持向量机等。这些并不考虑时间因素,因此对时间序列数据的异常检测效果欠佳。为此,有人提出利用滑动窗口技术,将最近一段时间的数据最为分析对象,然后用上述异常检测方法,或者几种方法投票统计数据异常评分。此方法虽然能动态获取最近一段时间的数据特点,但仍然无法有效地发现时间序列的内部规律,特别是对周期性变化的时序数据很难有效处理。

有研究者利用小波分析的方法获取时间序列在频率域上的信息,从而判断序列是否异常;也有人利用历史数据建立时间序列的预测模型,通过比较预测数据和实际数据的差异,以判断是否出现异常。这些方法能够分析出时序数据的周期性变化,但是这类方法计算量通常较大,对于大规模对象的实时性监测效果欠佳。



技术实现要素:

本发明的目的在于克服上述背景技术中的不足,提高周期性变化的时序数据的异常检测结果的准确性。

为实现以上目的,一方面,提出一种周期性时序数据的异常监测方法,包括如下步骤:

获取属于正常状态的时序数据建立训练数据集,按照训练数据集中数据的数值变化特征,基于设定的分析维度得到训练数据集对应的各多维时间段;

利用训练数据集的每一条数据,与该条数据所属多维时间段的原上、下界阈值的差值,更新该多维时间段的上下界阈值,以获得各个多维时间段的上界阈值和下界阈值;

利用各多维时间段的上界阈值和下界阈值,对当前待监测时序数据进行异常监测。

进一步地,所述获取属于正常状态的时序数据建立训练数据集,按照训练数据集中数据的数值变化特征,基于设定的分析维度得到训练数据集对应的多维时间段,包括:

按照所述训练数据集的数值大小,将数值按照大小等分成m个等价类;

以所述训练数据集中数据的采集时间为统计对象,统计所述训练数据集的值变化范围;

将数据值变化范围符合设定条件的连续时间段合并,获得k个基本时间段区间;

根据基本时间段区间和各维度分析,得到所述训练数据集对应的各多维时间段。

进一步地,所述将数据值变化范围符合设定条件的连续时间段合并,获得k个基本时间段区间,包括:

将数据值变化范围区间差值小于设定的差值阈值的连续时间段合并,获得k个基本时间段区间。

进一步地,所述分析维度包括节假日维度、周维度、季度维度、年维度以及自由维度中的至少一个。

进一步地,所述分析维度包括节假日维度、周维度、季度维度、年维度以及自由维度。

其中,节假日维度分析:将国家法定的七类节假日(元旦、春节、清明节、劳动节、端午节、国庆节、中秋节)、传统节日(立春、元宵节、中和节、上已节、天贶节、夏至节、七夕节、重阳节、冬至节、腊八节、祭灶节)、外来节日(圣诞节,情人节,感恩节,父亲节,母亲节,狂欢节、愚人节)作为的时间节点,统计节假日的各个时间段的数据变化范围,以及工作日的各个时间段的数据变化范围。如果有2个以上时间段的数据变化范围减小,则增加节假日维度,维度值为(f1,f2,…,fk,nf),其中,f1,f2,…,fk为数据范围有明显减小的k个节日,nf为非上述节日;

周维度分析:以天为单位,以周(星期)为周期,统计每个时间段的数据变化范围。如果有2个以上时间段的数据变化范围减小,则增加周维度,维度值为(w1,w2,…,w7);

季度维度分析:以季度为单位,以年为周期,统计每个时间段的数据变化范围。如果有2个以上时间段的数据变化范围减小,则增加季度维度,维度值为(s1,s2,s3,s4);

年维度分析:以年为单位,以年代为周期,统计每个时间段的数据变化范围。如果有2个以上时间段的数据变化范围减小,则增加年维度,维度值为(y0,y1,…,y9);

自由维度分析:以专家经验的时间段为单位,统计每个时间段的数据变化范围。如果有2个以上时间段的数据变化范围减小,则增加该自由维度,维度值为(e1,e2,…,el)。

进一步地,在所述按照所述训练数据集的数值大小,将数值按照大小等分成m个等价类之前,还包括:

对所述训练数据集进行预处理,剔除异常状态的数据,得到由正常状态的数据组成的训练数据集。

进一步地,所述利用训练数据集的每一条数据,与该条数据所属多维时间段的原上、下界阈值的差值,更新该多维时间段的上下界阈值,以获得各个多维时间段的上界阈值和下界阈值,包括:

根据所述各时间段区间确定训练数据对应的时间段区间,对于t时刻的训练数据xt,假设其处于第i个基本时间段(hi,hi+1],在多维空间里编号为d,将时间段区间表示为此时其变化范围上下界的阈值tlid(t)和tuid(t),对于初始的t=1的时刻,令tlid(t)和tuid(t)的值均为x1;

上界阈值tuid(t)和下界阈值tlid(t)之间的差值⊿t:

其中,xt为训练数据;

采用蚁群算法的信息素更新机制,利用⊿t对上述上界阈值和下界阈值tlid(t)进行更新,以获得各多维时间段的上界阈值和下界阈值。

进一步地,所述采用蚁群算法信息素更新机制,利用⊿t对上界阈值tuid(t)和下界阈值tlid(t)进行更新,以获得各多维时间段的上界阈值和下界阈值,包括:

在训练数据时,不对上、下界阈值进行更新;

在训练数据xt小于下界阈值tlid(t)时,更新tlid(t),公式如下:

tlid(t+1)=(1-ρ)tlid(t)+δδt

在训练数据xt大于上界阈值时,更新公式如下:

tuid(t+1)=(1-ρ)tuid(t)+δδt

其中,ρ和δ均为常数。

进一步地,所述利用各时间段区间的上界阈值和下界阈值,对当前待监测时序数据进行异常监测,包括:

判断当前待监测时序数据是否处于所属多维时间段的上界阈值和下界阈值之内;

若是,则确定当前待监测时序数据为正常状态;

若否,则确定当前待监测时序数据为异常状态。

进一步地,还包括:利用所述当前待监测时序数据的监测结果反馈,重新训练所述各时间段的上界阈值tuid(t)和下界阈值tlid(t)。

另一方面,提出一种周期性时序数据的异常监测装置,包括:时间段构建模块、自适应阈值训练模块和监测模块;

时间段构建模块用于将属于正常状态的时序数据集合作为训练数据集,按照训练数据集中数据的数值变化特征,基于设定的分析维度得到训练数据集对应的多维时间段;

自适应阈值训练模块用于利用训练数据集的每一条数据,与该条数据所属多维时间段的原上、下界阈值的差值,更新该多维时间段的上下界阈值,以获得各个多维时间段的上界阈值和下界阈值;

监测模块用于利用各多维时间段的上界阈值和下界阈值,对当前待监测时序数据进行异常监测。

与现有技术相比,本发明存在以下技术效果:本发明根据时序数据本身的分布特点,自动产生多个维度的时间段,建立多个维度下多个时间段构成的时间模型。再以多维时间段为单位,依据时序数据的数值变化范围,自动生成各个时间段的自适应上下界阈值。利用自适应阈值对不同时段的数据进行监测,改变了传统的固定阈值的方式,更加适用于呈周期性变化的时序数据的异常监测。

附图说明

下面结合附图,对本发明的具体实施方式进行详细描述:

图1是一种周期性时序数据的异常监测方法的流程示意图;

图2是一种周期性时序数据的异常监测方法的原理框图;

图3是构建时间段区间的流程示意图;

图4是24小时为周期,某时序数据的值的变化范围示意图;

图5是多维时间段的阈值示意图;

图6是一种周期性时序数据的异常监测装置的结构示意图。

具体实施方式

为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。

如图1至图2所示,本实施例公开了一种周期性时序数据的异常监测方法,包括如下步骤s1至s3:

s1、获取属于正常状态的时序数据建立训练数据集,按照训练数据集中数据的数值变化特征,基于设定的分析维度得到训练数据集对应的各多维时间段;

s2、利用训练数据集的每一条数据,与该条数据所属多维时间段的原上、下界阈值的差值,更新该多维时间段的上下界阈值,以获得各个多维时间段的上界阈值和下界阈值;

s3、利用各多维时间段的上界阈值和下界阈值,对当前待监测时序数据进行异常监测。

具体来说,如图3所示,上述步骤s1:获取属于正常状态的时序数据建立训练数据集,按照训练数据集的数值特征,基于设定的分析维度得到训练数据集对应的各时间段区间,具体包括如下细分步骤s11至s14:

s11、按照所述训练数据集的数值大小,将区间按照长度等分成m个等价类;

需要说明的是,本实施例中按照训练数据集的数值大小,按照设定的长度,将区间等分成z1、z2、z3、……、zm等m个等价类。通过等价类操作可减少数据的复杂度。

s12、以所述训练序数据的采集时间单位为统计对象,统计所述训练数据集的值变化范围;

需要说明的是,时序数据的采集时间单位可根据具体情况而定,比如每间隔1分钟采集一次,则采集时间单位为1分钟。

s13、将数据值变化范围区间符合设定条件的连续时间段合并,获得k个基本时间段区间;

具体地,本实施例中是将数据变化范围区间基本相似的连续时间段进行合并,得到基本时间段区间。这里判断数据变化范围区间是否相似的方法可采用数据变化范围区间的差值是否小于某阈值,并将数据变化范围区间的差值小于某阈值的连续时间段进行合并。

需要说明的是,这里的阈值是预先给定的用于与数据变化范围区间的差值进行比较的某个值。

s14、根据基本时间段和各维度分析结果,得到所述训练数据集对应的各维度时间段。

需要说明的是,利用基本时间段结合多个分析维度,对于每个维度值下的基本时间段内的数据变化进行分析,将整个空间分为多个时间段区间。

具体来说,所述分析维度包括节假日维度、周维度、季度维度、年维度以及自由维度中的至少一个。

需要说明的是,节假日维度分析是将国家法定的七类节假日(元旦、春节、清明节、劳动节、端午节、国庆节、中秋节)、传统节日(立春、元宵节、中和节、上已节、天贶节、夏至节、七夕节、重阳节、冬至节、腊八节、祭灶节)、外来节日(圣诞节、情人节、感恩节、父亲节、母亲节、狂欢节、愚人节)作为的时间节点,统计节假日的各个时间段的数据变化范围,以及工作日的各个时间段的数据变化范围。

如果在节假日维度下的基本时间段区间中有较多的时间段的数据变化范围减小,则增加节假日维度,节假日维度值为(f1,f2,…,fk,nf),其中,f1,f2,…,fk为数据范围有明显减小的k个节日,nf为非上述节日。

周维度分析是指以天为单位,以周(星期)为周期,统计该维度下每个基本时间段区间的数据变化范围。如果周维度下的基本时间段区间中有较多的时间段的数据变化范围减小,则增加周维度,维度值为(w1,w2,…,w7)。

季度维度分析是指以季度为单位,以年为周期,统计该维度下每个基本时间段区间的数据变化范围。如果季度维度下的基本时间段区间中有较多的时间段的数据变化范围减小,则增加季度维度,维度值为(s1,s2,s3,s4)。

年维度分析是指以年为单位,以年代为周期,统计该维度下每个基本时间段区间的数据变化范围。如果年维度下的基本时间段区间中有较多的时间段的数据变化范围减小,则增加年维度,维度值为(y0,y1,…,y9)。

自由维度分析是指以专家经验的时间段为单位,统计该维度下每个基本时间段区间的数据变化范围。如果自由维度下的基本时间段区间中有较多的时间段的数据变化范围减小,则增加该自由维度,维度值为(e1,e2,…,el)。

需要说明的是,本领域技术人员也可根据实际情况的不同,设置不同的分析维度,来构建时序数据的时间段区间。

进一步地,在上述步骤s11:按照所述训练数据集的数值大小,将区间按照长度等分成m个等价类之前,还包括:

对所述训练数据集进行预处理,剔除异常状态的数据,得到由正常状态的数据组成的训练数据集。

需要说明的是,在对时序数据构建时间段区间之前,还需对时序数据进行预处理,预处理过程包括去除噪声数据、缺失值数据等。另外,时序数据中部分可能存在异常状态的数据,也需将其删除,只保留正常数据。

具体来说,上述步骤s2:利用训练数据集的每一条数据,与该条数据所属多维时间段的原上、下界阈值的差值,更新该多维时间段的上下界阈值,以获得各个多维时间段的上界阈值和下界阈值,包括如下细分步骤s21至s23:

s21、根据所述各时间段区间确定训练数据对应的时间段,对于数据xt,假设其处于第i个基本时间段(hi,hi+1],在多维空间里编号为d,将时间段区间表示为

s22、更新数据xt所属时间段上午上下界的阈值tlid(t)和tuid(t),对于初始的t=1的时刻,令tlid(t)和tuid(t)的值均为x1;

计算xt与上界阈值tuid(t)和下界阈值tlid(t)之间的差值⊿t:

s23、采用蚁群算法信息素更新机制,对上界阈值tuid(t)和下界阈值tlid(t)进行更新。

具体来说,上述步骤s23包括如下细分步骤s231至s233:

s231、在训练数据时,不对上、下界阈值进行更新;

s232、在训练数据xt小于下界阈值tlid(t)时,更新tlid(t),公式如下:

tlid(t+1)=(1-ρ)tlid(t)+δδt

s233、在训练数据xt大于上界阈值时,更新公式如下:

tuid(t+1)=(1-ρ)tuid(t)+δδt

其中,ρ和δ均为常数,分别用于调节衰减速度和新信息影响系数。

本实施例通过利用属于正常状态的时序数据集,按照上述确定的多维时间段,确定训练数据对应的时间段,并对该时间段的上下界阈值采用蚁群算法信息素更新机制,更新当前时间段区间的上下界阈值,以实现上下界阈值的动态更新,从而适用状态变化的时序数据的异常监测。

具体来说,上述步骤s3:利用各维度时间段的上界阈值和下界阈值,对当前待监测时序数据进行异常监测,包括如下细分步骤s31至s33:

s31、判断当前待监测时序数据是否处于所属多维时间段的上界阈值和下界阈值之内,若是则执行步骤s32,若否则执行步骤s33;

s32、确定当前待监测时序数据为正常状态;

s33、确定当前待监测时序数据为异常状态。

优选地,本实施例中还利用当前待监测时序数据的监测结果,重新分析所述训练数据集对应的各时间段区间,以动态更新时间段区间。

优选地,本实施例中时间段区间的构建以及时间段区间的上下界阈值的训练过程可根据业务需求和系统硬件条件,进行在线训练或离线训练实现。

以下通过一个具体实例对本实施例方案进行详细解释如下:

对于给定一个用于训练的时序数据集合x={x1,x2,…,xn},n为数据个数,每一条数据xi是一个包括j个分量的向量,记为(xi1,xi2,…,xij),其中至少有一个分量表示监测时间。下面为了便于表述,我们假设只有一个分量需要检测,时序数据集合x可以简化表示为{(t1,x1),(t2,x2),…,(tn,xn)}。对于多个分量需要监测时,只要将待检测时序数据分为多个子时序数据,每一个子时序数据均包括一个时间分量和一个待检测分量即可。

1)对数据集进行预处理,剔除异常状态的数据,得到由正常状态的数据组成的训练数据集;

2)构造等价类:按照{x1,x2,…,xn}数值的大小,假设取值范围为[a,b],将区间按照长度(b-1)/m等分成z1、z2、z3、……、zm等m个等价类;

3)原始时间统计:以训练数据集采集时间为统计对象,以24小时为周期,统计时序数据中的值变化范围如图4所示;

4)构造时间段区间:根据上述时序数据的统计,将数据变化范围区间基本相似的连续时间段合并,将1天时间构造成9个基本时间段,假设为[0:00,7:30],(7:30,8:00],(8:00,9:00],…,(22:00,24:00];

5)以上述9个时间段为单位,统计时序数据中每个时间段的数据变化范围[tl1,tu1],[tl2,tu2],[tl3,tu3],…,[tl9,tu9];

6)节假日维度分析:将国家法定的七类节假日、传统节日、外来节日作为的时间节点,统计节假日的各个时间段的数据变化范围,以及非上述节日的各个时间段的数据变化范围。统计发现七类节假日和传统节日的4个的时间段的数据变化范围减小,故增加节假日维度,维度值为(f1,f2,…,f11,nf),其中,f1,f2,…,f11分别表示元旦、春节、元宵节、清明节、劳动节、端午节、七夕节、国庆节、中秋节、重阳节、祭灶节,nf表示非上述11个节日;

7)周维度分析:对于非节日的时序数据,以天为单位,以周(星期)为周期,统计各个时间段的数据变化范围。统计发现有较多的时间段的数据变化范围减小,则增加周维度,维度值为(w1,w2,…,w7),分别表示一周的7天;

8)季度维度分析:以季度为单位,以年为周期,统计每个时间段的数据变化范围。统计发现时间段的数据变化范围不明显,不增加季度维度;

9)年维度分析:以年为单位,以年代为周期,统计每个时间段的数据变化范围。统计发现时间段的数据变化范围不明显,不增加年维度;

10)自由维度分析:没有专家经验的时间周期,故不增加自由维度。

通过上述训练,得到基本时间段维度、假日维度、周维度3个维度。其中基本时间段9个(维度值为[0,h1],(h1,h2],(h2,h3],…,(h9,24]);节假日维度(维度值为f1,f2,…,f11,nf);周维度(维度值为w1,w2,…,w7)。因此将整个空间分为162个时间段区间((11+1*7)*9),分别表示为:{[h01,h11],(h11,h21],…,(h81,h91]},{[h02,h12],(h12,h22],…,(h82,h92]},…,{[h018,h118],(h118,h218],…,(h818,h918]}。

11)对于t时刻属于正常状态的时序数据xt,确定其对应的时间段区间,假设为此时间段的上下界的阈值tlid(t)和tuid(t),对于初始的t=1的时刻,令tlid(t)和tuid(t)的值均为x1;

12)采用蚁群算法信息素更新机制,对当前时间段区间的上下界阈值进行更新。

13)对训练数据集的所有元素,重复上述11)12),最终可得到所有时间段的上下界阈值,得到的时间段区间的阈值如图5所示。

14)利用得到的不同时间段的上下界阈值,检查当前监测数据是否处于上下界阈值之内:

例如,对于实时监测数据(2019-10-3100:07:20,0.59),时间上属于非节日的周四,按照上述时间段区间的构造,其所属区域为[h015,h115],对应的上下界阈值分别为:tl015(t)=0.45,tu015(t)=0.60,为正常状态;

例如,对于实时监测数据(2018-09-1312:01:40,0.48),时间上属于中秋节、周五,按照上述时间段区间的构造,其所属区域为[h091,h191],对应的上下界阈值分别为:tl59(t)=0.50,tu59(t)=0.65,为异常状态,发出警示信息。

如图6所示,本实施例还公开了一种周期性时序数据的异常监测装置,包括:时间段构建模块10、自适应阈值训练模块20和监测模块30;

时间段构建模块10用于获取多维时间段模型,将属于正常状态的时序数据集合作为训练数据集,按照训练数据集的数值变化特征,基于设定的分析维度得到训练数据集对应的各多维时间段;

自适应阈值训练模块20用于利用各时间段区间确定训练数据的区间,以获得各时间段区间的上界阈值和下界阈值;

监测模块30用于利用各时间段区间的上界阈值和下界阈值,对当前待监测时序数据进行异常监测。

具体来说,时间段构建模块10包括等价类构造单元、时间统计单元、基本时间段区间构造单元和维度空间构造单元:

等价类构造单元用于按照所述训练数据的数值大小,将数值按照大小等分成m个等价类;

时间统计单元用于以所述训练序数据的采集时间为统计对象,统计所述训练数据集的值变化范围;

基本时间段区间构造单元用于将数据值变化范围区间符合设定条件的连续时间段合并,获得k个基本时间段区间;

维度空间构造单元用于根据基本时间段区间和各维度分析,得到所述训练数据集对应的多维度时间段。

具体来说,自适应阈值训练模块20包括时间段区间确定单元、阈值训练单元:

时间段区间确定单元用于根据所述多维时间段区间确定训练数据对应的时间段;

阈值训练单元用于根据训练数据所属的时间段的上界阈值tlid(t)和下界阈值tuid(t),定义差值为:

其中,xt为训练数据;

采用蚁群算法信息素更新机制,对上界阈值tlid(t)和下界阈值tuid(t)进行更新,以获得各时间段区间的上界阈值和下界阈值。

具体来说,监测模块30包括判断单元和确定单元:

判断单元用于判断当前待监测时序数据是否处于所属时间段的上界阈值和下界阈值之内;

确定单元用于在判断单元输出结果为是时,确定当前待监测时序数据为正常状态;

确定单元用于在判断单元输出结果为否时,确定当前待监测时序数据为异常状态。

需要说明的是,本实施例公开的一种周期性时序数据的异常监测装置对应与上述实施例公开的时序数据的异常监测方法,其具有相应的技术特征,实现相同或相应的技术效果,该处不再赘述。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1