基于时间序列的异常检测方法
【专利摘要】本发明公开了一种基于时间序列的异常检测方法,包括节点内数据相关性分析和节点间数据相关性分析:节点内数据相关性描述的是传感器节点数据的时间相关性,计算当前数据与历史数据之间的数据相关性;节点间数据相关性描述的是不同传感器节点之间的空间数据相关性,计算传感器节点数据与其邻居节点数据之间的数据相关性。本发明提供的基于时间序列的异常检测方法,能有效地检测出异常数据,而且在有错误数据的影响下仍能保持良好的性能;同时本发明应用了一种时间序列数据的近似方法,能够有效地压缩时间序列数据,并给出了压缩时间序列之间相似性的度量方法,用于时间序列的聚类分析,从而实现基于时间序列的异常检测。
【专利说明】基于时间序列的异常检测方法
【技术领域】
[0001]本发明涉及一种无线传感器网络的异常检测方法,尤其涉及一种基于时间序列的异常检测方法。
【背景技术】
[0002]无线传感器网络异常检测主要用来检测传感器节点采集的数据是否发生异常,也就是检测哪些节点数据与大多数节点数据发生了偏离或不满足正常数据特征,并将结果反馈给用户,以便用户做出相应的决策。
[0003]在无线传感器网络中,传感器节点周期性产生的连续数据可以表示为时间序列。因而可以使用时间序列异常检测技术实现传感器网络的数据异常检测。由于时间序列是大量的流式数据,若直接对原始时间序列进行分析、处理并发送给基站,能量消耗和网络通信代价较高。因此需要对原始时间序列进行数据压缩,降低数据维度。为了能够在压缩后的时间序列上进行相似性度量、聚类分析以及异常检测,时间序列的数据压缩率需要在一定的数据误差允许范围内。这样,压缩后的时间序列间的相似度就可以近似代替原始时间序列间的相似度;同时压缩数据也可以近似恢复,实现无线传感器网络数据收集的应用需求。基于时间序列的异常检测可以在压缩时间序列上进行,减少了数据传输量和数据处理时间,降低了无线传感器网络的能量消耗。
[0004]现有的时间序列数据近似方法大多都不能直接用于无线传感器网络。文献 E.Keogh, M.Pazzan1.Scaling up Dynamic Time Warping for Data MiningApplication[C].1n:Proceeding of the Sixth ACM SIGKDD International Conferenceon Knowledge Discovery and Data Mining, 2000:285-289.和文献 E.Keogh, K.Chakrabarti, M.Pazzani,et al.Dimensionality Reduction for Fast SimilaritySearch in Large Time Series Database[C].1n: Proceedings of the ACM SIGMODInternational Conference on Management of Data, 2001:151-162.提出了分段聚集近似方法(PAA),并且给出了相应的相似性度量方法。但是,PAA在数据分段压缩时,每段都取同样的长度,且各段的值用该段的平均值来近似,压缩后的数据丢失了原始时间序列的局部特性,因而在时间序列相似性分析时存在较大的误差。文献J.Lin, E.Keogh, S.Lonardi, andB.Chiu.A Symbolic Representation of Time Series, with Implications for StreamingAlgorithms.1n:Proceedings of the2003ACM SIGMOD Workshop on Research Issues inData Mining and Knowledge Discovery, pages2-ll.ACM Press, 2003 提出 了符号化方法(SAX),是在PAA方法的基础上将时间序列转换成了符号序列,因而存在与PAA相同的问题。文献E.Keogh, K.Chakrabarti, S.Mehrotra et al.Locally Adaptive DimensionalityReduction for Indexing Large Time Series Databases[C].1n:ACM SIGM0D2001, SantaBarbara, California, 2001.提出了适应性分段常量近似方法(APCA),给出了相似性度量方法,但是较为复杂。该方法尽管数据压缩率满足给定误差要求,然而仅分析了压缩时间序列与其他原始时间序列之间的相似性度量方法,没有给出压缩时间序列之间的相似性度量方法。
【发明内容】
[0005]发明目的:为了克服现有技术中存在的不足,本发明根据无线传感器网络的时间序列数据特性,提出了一种基于时间序列的异常检测算法(Anomaly Detection AlgorithmBased on Time Series, ADTS),利用时间序列近似方法有效减少数据传输量和数据处理时间,同时还给出了压缩时间序列之间的相似性度量方法,用于时间序列的聚类分析和异常检测。
[0006]技术方案:为实现上述目的,本发明采用的技术方案为:
[0007]基于时间序列的异常检测方法,包括如下步骤:
[0008](I)各个节点获取自身的检测数据,进入步骤(2);
[0009](2)各节点对本地数据进行时间相关性分析,即计算节点当前时间窗口内数据与历史时间窗口内数据的欧几里德距离:若计算结果小于给定距离阈值,则当前时间窗口内数据与历史时间窗口内数据满足时间相关性,为正常数据,返回步骤(1);否则当前时间窗口内数据与历史时间窗口内数据不满足时间相关性,为不正常数据,进入步骤(3);
[0010](3)各节点将当前窗口内数据进行近似压缩,并将压缩后的数据发送至邻居节点,进入步骤(4);
[0011](4)各节点进行空间相关性计算,计算本节点当前时间窗口内的压缩数据与接收到的邻居节点压缩数据之间的近似欧几里德距离或下界距离:若计算结果小于给定距离阈值,则本节点当前时间窗口内的压缩 数据与接收到的邻居节点压缩数据满足空间相关性;否则本节点当前时间窗口内的压缩数据与接收到的邻居节点压缩数据不满足空间相关性;本节点将判定结果反馈给压缩数据发送方节点,进入步骤(5);
[0012](5)各节点根据邻居节点的反馈结果,对本节点的不正常数据进行审查,判别其为异常数据或是错误数据:若存在一定数量的邻居节点与本节点的不正常数据存在相关性,则该不正常数据为异常数据;若不存在邻居节点与本节点的不正常数据具有相关性,则该不正常数据为错误数据。
[0013]时间序列是由一系列数据元素组成的有序集合,这些元素本身由记录时刻和记录值构成,记为 X=Cx1=U1, V1), x2=(t2, v2),...,xn= (tn, vn)>,其中元素 Xi=Ui, Vi)表示在 h 时
刻取得记录值为Vi,这里记录时刻\是严格单调增加的,即i < j O I <?
[0014]通常时间序列的记录时间间隔Λ t=ti+1-ti是相等的,于是对于上述时间序列可以
取 tfO, Δ t=l,那么时间序列 X=Cx1=U1, V1), X2= (t2, v2),......,Xn= (tn, vn) > 可以简记为
X=〈Xl,χ2,......,χη>ο X称为时间序列XX的模,表示时间序列的长度,即元素χ的数量。
对于广义时间序列,记录值Vi可以是离散符号、结构数据、多媒体数据等,对于狭义的时间序列,记录值Vi为实数类型。
[0015]在无线传感器网络的一些应用中,如果用户给定数据允许误差为ε,那么数据X就可以用[χ- ε,χ+ ε ]范围内的任意一个数据近似代替,即每一个数据都有这样的近似范围。当连续采集数据时,为了用一个近似值代替更多的数据,只要这个近似值在每个数据的近似范围内,那么这个近似值就能代替这一段连续数据,并且满足误差要求。据此,本发明提出ULBA压缩方法,用于本发明中的近似压缩。[0016]所述ULBA压缩方法,即对于一个给定的时间序列X=Cx1, X2,…,xn>,使用ULBA产生的分段压缩序列表示为:
[0017]
【权利要求】
1.基于时间序列的异常检测方法,其特征在于:包括如下步骤: (1)各个节点获取自身的检测数据,进入步骤(2); (2)各节点对本地数据进行时间相关性分析,即计算节点当前时间窗口内数据与历史时间窗口内数据的欧几里德距离:若计算结果小于给定距离阈值,则当前时间窗口内数据与历史时间窗口内数据满足时间相关性,为正常数据,返回步骤(1);否则当前时间窗口内数据与历史时间窗口内数据不满足时间相关性,为不正常数据,进入步骤(3); (3)各节点将当前窗口内数据进行近似压缩,并将压缩后的数据发送至邻居节点,进入步骤(4); (4)各节点进行空间相 关性计算,计算本节点当前时间窗口内的压缩数据与接收到的邻居节点压缩数据之间的近似欧几里德距离或下界距离:若计算结果小于给定距离阈值,则本节点当前时间窗口内的压缩数据与接收到的邻居节点压缩数据满足空间相关性;否则本节点当前时间窗口内的压缩数据与接收到的邻居节点压缩数据不满足空间相关性;本节点将判定结果反馈给压缩数据发送方节点,进入步骤(5); (5)各节点根据邻居节点的反馈结果,对本节点的不正常数据进行审查,判别其为异常数据或是错误数据:若存在一定数量的邻居节点与本节点的不正常数据存在相关性,则该不正常数据为异常数据;若不存在邻居节点与本节点的不正常数据具有相关性,则该不正常数据为错误数据。
2.根据权利要求1所述的基于时间序列的异常检测方法,其特征在于:所述近似压缩采用ULBA压缩方法,即对于一个给定的时间序列X=〈Xl,x2,…,xn>,使用ULBA产生的分段压缩序列表示为:
夕=《龙.-ν/ι).(Λ, χι2),…,(Λ/, χι\,)) 其中,為表示第i个分段中所有数据的代替值,即第i个分段的近似值;Χα表示第i个分段的结束时间;第i个分段的时间段为Xr1-Xivi ; 具体实现过程为: a.对于数据X,使用下面的近似函数进行计算:^ = /(^) = Kef+ XVacc
_ acc _ 其中,X'表示X的近似值;Vref表示比X值域最小值还小的参考值,即对任意X, Vref<x恒成立;Va。。表示允许的最大误差,L」运算符表示向下取整; χ可以使用χ'或χ' +Vacc来代替; b.对于任意分段,分段的近似值有两个,分别为该分段起始时间点数据的近似值与近似值加上允许最大误差值;分段初始时,分段的近似值处于可选状态,近似值有上述两个可选值; C.按时间顺序依次对数据进行分段:若待分段数据不是该分段的起点,且该分段的近似值处于可选状态,数据的处理方法按d步骤执行;若待分段数据不是该分段的起点,且该分段的近似值处于确定状态,数据的处理方法按e步骤执行; d.若数据的两个代替值与分段的两个可选值均相等,则数据合并到这个分段,该分段仍然处于可选状态;若数据的两个代替值与分段的两个可选值均不相等,则数据不能合并到这个分段,该分段的近似值选取两个可选值中较小的一个,分段结束,以这个数据为起点开始一个新的分段;若数据的两个代替值与分段的两个可选值有且仅有一个相等,数据合并到这个分段,分段的近似值选取两者相等的那个值,分段状态设置为确定状态; e.若数据的两个代替值其中之一与分段的近似值相等,则数据合并到这个分段;否贝U,数据不能合并到这个分段,分段结束,以这个数据为起点开始一个新的分段;
对应ULBA压缩方法,对+ = ((.V,, A7-,), (.?-:, AT2),…,(?(/, Χ?\.)〉进行逆向解压获得的时间序列记为
3.根据权利要求2所述的基于时间序列的异常检测方法,其特征在于: 对于两个给定的时间序列QMq1, Q2,…,qn>和CMc1, C2,…,cn>,n为时间序列Q和C的长度;对时间序列Q和C进行ULBA压缩后的近似时间序列分别记为0和O,对近似时间序列0和d进行解压后获得的时间序列记为孬和 所述欧几里德距离D (Q,C)的计算方式如下:
4.根据权利要求1所述的基于时间序列的异常检测方法,其特征在于:所述节点在本地使用双缓存时间窗口交替进行自身数据的检测。
【文档编号】H04W84/18GK103561418SQ201310548853
【公开日】2014年2月5日 申请日期:2013年11月7日 优先权日:2013年11月7日
【发明者】吕建华, 张柏礼, 魏巨巍 申请人:东南大学