一种基于同步数据流压缩的设备异常实时检测方法与流程

文档序号:11864542阅读:289来源:国知局
一种基于同步数据流压缩的设备异常实时检测方法与流程

本发明属于设备异常检测技术领域,更为具体地讲,涉及一种基于同步数据流压缩的设备异常实时检测方法。



背景技术:

随着科学技术的发展,国民经济的各个领域生产使用的各种类型设备,日趋复杂化,精细化。如何实时对这些设备进行状态检测,判断是否出现异常,预防设备故障,对减小设备故障损失,减小安全隐患有着不可估量的作用。

传统设备异常检测方法,如基于信号处理的异常检测,不仅需要大量的专家知识为前提,也无法做到实时检测设备异常,而设备的运行状态记录是实时动态产生的,异常检测系统必须在有限的时间内存条件下,对实时动态的运行状态记录,并快速准确分析预测异常,这是当前设备异常检测领域需要解决的核心问题。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于同步数据流压缩的设备异常实时检测方法,以实现对设备异常的快速准确分析。

为实现上述发明目的,本发明基于同步数据流压缩的设备异常实时检测方法,其特征在于,包括以下步骤:

(1)、收集各设备的特征;

(2)、根据设备特征中的类型对各设备进行简单分组或采用聚类方法根据设备的多个特征对各设备进行分组;

(3)、针对每组设备,初始化一个代表该组设备正常运行状态的一定条数的记录构成的群组数据集,同时,对每组设备中的单个设备,各自初始化一个代表该设备正常运行状态的一定条数的记录构成的自身数据集;

(4)、对于获取的某一设备当前的运行状态,在该设备所在的群组数据集和自身数据集分别找到与该运行状态最近的两条记录,并综合这两条记录与该运行状态记录间的差异程度,判断设备的异常情况;如未发生异常,就当前运行状态作为一条记录插入该设备所在的群组数据集和该设备的自身数据集,如发生异常,进行异常报告;

(5)、动态数据集维护:如果设备组数据集或设备数据集规模超出指定大小,采用基于同步数据流压缩方法进行压缩:将每条正常运行状态记录视为特征向量空间的一点(一个对象),利用同步原理,模拟对象间的相互作用关系,最终使得相似的对象(相似的正常运行状态记录)聚集在一起(一个聚集点),利用该聚集点代替所有相似的正常运行状态记录,即该聚集点为一条正常运行状态记录,删除所有相似的正常运行状态记录,以更新设备组数据集或设备数据集;

同时,采用基于主成分分析的概念漂移检测方法,分别检测设备的群组数据集和自身数据集中的运行状态是否发生了演变;具体而言,对于每个群组数据集以及每个自身数据集,均维护两个具有相等大小窗口的数据块,数据块大小根据具体场景设置,两个数据块由最新加入群组数据集或自身数据集的正常运行状态构成数据序列,分成前后连续两个部分得到,对两个数据块进行主成分分析,然后计算两个数据块第一主成分之间的夹角,如该夹角超过规定阈值,则认为对应的组设备或设备运行状态发生了演变,则清空群组数据集或自身数据集,以及群组数据集对应所有设备的自身数据集或自身数据集对应设备所述群组数据集,然后按照步骤(3)进行初始化,再步骤(4)进行设备异常检测。

本发明的目的是这样实现的。

本发明基于同步数据流压缩的设备异常实时检测方法,通过收集各设备的特征,然后进行分组,并构建代表该组设备正常运行状态的群组数据集以及代表设备正常运行状态的自身数据集,这样,采用两个数据集的记录进行比较,综合得到异常检测结果,提高了检测的准确性。同时,考虑到设备在不同环境下,运行状态是不同的,本发明采用基于主成分分析的概念漂移检测方法检测运行状态数据,看其发生了演变,如果发生了演变,则重新初始化两个数据集,这样进一步提高了检测的准确性。此外,本发明采用同步数据流压缩,降低的比较过程的计算量,从而实现了对设备异常实时的检测。

附图说明

图1是本发明基于同步数据流压缩的设备异常实时检测方法一种具体实施方式流程图;

图2是本发明中设备特征分组的示意图,其中,每个黑色的点表示为对应的设备特征,每一个圆圈表示划分好的设备分组;

图3是本发明中同步压缩的示意图,其中yi表示状态记录,Pi表示压缩后的状态记录;

图4是本发明中,基于主成分分析的概念漂移检测的示意图,其中,dr1、dr2分别表示前后两个数据块的第一主成分方向,θ表示它们之间的夹角;

图5是本发明基于同步数据流压缩的设备异常实时检测方法一种具体实施方式的分析检测异常的系统框架图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

图1是本发明基于同步数据流压缩的设备异常实时检测方法一种具体实施方式流程图。

在本实施例中,如图1所示,本发明基于同步数据流压缩的设备异常实时检测方法包括一项步骤:

S1:收集各设备的特征

设备特征包括设备基本信息,如:设备厂家、设备型号、设备大小、设备价格和设备性能指标等。

以网络环境中的路由器为例,设备特征为路由器的基本信息,包括路由器型号、设备端口数、传输频率、内存大小、天线增益等。用一个特征向量yi表示第i个路由器的多个特征,表示第i个路由器的第j个特征。如yi=[4,1200,3],可以表示该设备即路由器有个4个端口(第j=1个特征)、无线传输率1200Mbps(第j=2个特征)、天线增益为3dBi(第j=3个特征)。

S2:设备分组

在具体实施过程中,设备分组可利用设备型号进行简单分组,或利用聚类方法,如K均值、谱聚类、DBSCAN等,根据设备的多个特征对各设备进行分组。

在本实施例中,如图2所示,根据设备特征向量xi,即路由器的设备端口数和内存大小两个特征,把路由器划分为两个分组。由于同一分组内的路由器存在一定的相似性,所以根据一个分组的设备运行状态记录,判断该分组下的某个设备运行状态是否异常,能够增加样本数据,进一步提高准确性。在实际过程中,也可直接利用设备型号等将设备直接进行更为细粒度的分组。

S3:初始化群组数据集和自身数据集

针对每组设备,初始化一个代表该组设备正常运行状态的一定条数的记录构成的群组数据集,同时,对每组设备中的单个设备,各自初始化一个代表该设备正常运行状态的一定条数的记录构成的自身数据集。

对每组设备和单个设备对应的数据集进行初始化,可以将群组和单个设备运行正常状态的一定数量的记录插入到群组数据集和自身数据集中来实现。

S4:设备异常实时检测

一旦获取某个设备当前的运行状态,则可以根据该设备对应的两个数据集:设备所在的群组数据集和自身数据集,分别找到与该运行状态记录最近的两条记录,并综合这两条记录与该运行状态记录间的差异程度,判断设备的异常情况。在本实施例中,利用同步压缩后数据点的特性,根据其中心点及半径进行基于距离(差异程度用距离表示)的异常检测。如未发生异常,就当前运行状态作为一条记录插入该设备所在的群组数据集和该设备的自身数据集,如发生异常,进行异常报告。

在本实施例中,设备异常实时检测具体方法为:

4.1)、分别找到获取的当前运行状态xk距离该设备对应的群组数据集合和自身数据集最近的数据点即正常运行状态记录xc1、xc2,按以下公式,分别计算差值d1和d2:

d1=dist(xk,xc1)-rc1

d2=dist(xk,xc2)-rc2

其中,dist为距离函数,在本实施例中,采用欧式距离,xc1为群组数据集合中,与当前运行状态距离xk最近的正常运行状态记录,rc1为正常运行状态记录xc1的半径,如果正常运行状态记录xc1是压缩得到的聚集点,则rc1为用于压缩得到该聚集点正常运行记录的半径,如果是为压缩的正常运行记录,则rc1=0;xc2为自身数据集合中,与当前运行状态距离xk最近的正常运行状态记录,rc2为正常运行状态记录xc2的半径,如果正常运行状态记录xc2是压缩得到的聚集点,则rc2为用于压缩得到该聚集点正常运行记录的半径,如果是为压缩的正常运行记录,则rc2=0;

计算该设备当前运行状态的异常程度:

<mrow> <msub> <mi>O</mi> <mi>k</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mn>1</mn> <mo>-</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>d</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </msup> </mrow> <mrow> <mn>1</mn> <mo>+</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>d</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </msup> </mrow> </mfrac> </mrow>

同时,结合前一时刻k-1的获取正常运行状态xk-1下获取的异常程度Ok-1的均值μk-1和标准差σk-1,增量式维护当前异常程度Ok的均值μk和标准差σk,更新公式如下:

<mrow> <msub> <mi>&mu;</mi> <mi>k</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> <mo>&times;</mo> <msub> <mi>&mu;</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>O</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mrow> <mi>k</mi> </mfrac> </mrow>

<mrow> <msub> <mi>&sigma;</mi> <mi>k</mi> </msub> <mo>=</mo> <msqrt> <mfrac> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> <mo>&times;</mo> <mo>(</mo> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> <mn>2</mn> </msubsup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <mrow> <msub> <mi>&mu;</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>&mu;</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>)</mo> <mo>+</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>&mu;</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>O</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> <mi>k</mi> </mfrac> </msqrt> </mrow>

如果当前时刻是初始时刻,即k=0,则不需要计算,此时均值μ0=O0,标准差σ0=0;

4.2)、异常判别

在获取当前运行状态的异常程度Ok后,利用下面规则进行异常判别,方法如下:

第一、若d1和d2同时小于0,不是异常;将该运行状态记录作为正常运行状态插入到对应群组数据集和自身数据集中;

第二、若其中一个大于0,根据异常程度Ok进行判断,如该运行状态的异常程度Ok的值与均值μk的差的绝对值大于三倍均方差,即:|Okk|>3σk,则认为该状态记录存在异常,否者将该运行状态记录作为正常运行状态插入到对应群组数据集和自身数据集中。

S5:动态数据集维护

5.1)、设备正常运行状态记录实时压缩

如果设备组数据集或设备数据集规模超出指定大小(根据运行系统的硬件能力确定),采用基于同步数据流压缩方法进行压缩:将每条正常运行状态记录视为特征向量空间的一点(一个对象),利用同步原理,模拟对象间的相互作用关系,最终使得相似的对象(相似的正常运行状态记录)聚集在一起(一个聚集点),利用该聚集点代替所有相似的正常运行状态记录,即该聚集点为一条正常运行状态记录,删除所有相似的正常运行状态记录,以更新设备组数据集或设备数据集,从而达到压缩的目的。

在本实施例中,基于同步数据流压缩方法具体如下:

5.1.1)、将数据集中每一条正常运行状态记录(用特征向量表示xi)视为特征向量空间的一点(一个对象);

5.1.2)、每个对象与距离为ε的邻居对象Nbε(xi)进行交互,其交互模型如公式(1)所示:

<mrow> <msubsup> <mi>x</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>x</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <mfrac> <mn>1</mn> <mrow> <mo>|</mo> <msub> <mi>Nb</mi> <mi>&epsiv;</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>(</mo> <mi>t</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>|</mo> </mrow> </mfrac> <mo>&CenterDot;</mo> <msub> <mo>&Sigma;</mo> <mrow> <msub> <mi>x</mi> <mi>m</mi> </msub> <mo>&Element;</mo> <msub> <mi>Nb</mi> <mi>&epsiv;</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>(</mo> <mi>t</mi> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </msub> <mi>sin</mi> <mrow> <mo>(</mo> <msubsup> <mi>x</mi> <mi>m</mi> <mi>j</mi> </msubsup> <mo>(</mo> <mi>t</mi> <mo>)</mo> <mo>-</mo> <msubsup> <mi>x</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>(</mo> <mi>t</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中表示第i正常运行状态记录xi第j维度上第(t+1)时刻的值;Nbε(xi)表示以正常运行状态记录xi(特征向量空间的一点)为中心,欧式距离ε的范围除xi外的数据点集合,|Nbε(x)|表示Nbε(xi)包含的状态记录的条数;

5.1.3)、经过多次相互作用,相似的正常运行状态记录将聚集在一起,具有相同的值。如图3所示,在图3(a)中正常运行状态记录x1和x3在周围的正常运行状态记录在同步作用下,向箭头指向的方向移动,多次作用后,每个灰色圈里的正常运行状态记录都被聚集到了一起,分别为聚集点P1、P2。而正常运行状态记录x2和x4周围没有状态记录,则一直保持不变,直接表聚集点P3、P4,最终所有记录将达到一个稳定的状态,如图3(b)所示。

5.1.4)、最后针对交互后的数据集,利用聚集点(同步点)来代表原始数据即作为正常运行状态记录,从而完成对数据流的有效压缩。同时,对于压缩后的数据集中的每个点,存储它的特征向量xc及它的所对应原始数据记录的半径rc。计算公式如下:

<mrow> <msub> <mi>r</mi> <mi>c</mi> </msub> <mo>=</mo> <msqrt> <mrow> <mfrac> <mn>1</mn> <msub> <mi>N</mi> <mi>c</mi> </msub> </mfrac> <msub> <mo>&Sigma;</mo> <mrow> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>&Element;</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> </mrow> </msub> <mrow> <mo>(</mo> <msubsup> <mi>x</mi> <mi>i</mi> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>x</mi> <mi>c</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中xc为第c个同步点对应的特征向量,Ci为xc同步点所包含原始状态记录的集合,Nc为Ci中的状态记录数目。最后通过同步压缩我们可以得到如图3(b)所示的4个数据点,其表现形式为:

D={(xc,rc)|c=1,2,3,4}

对于数据集初始化或设备的新进入的运行状态数据,其半径为0。即数据集表示为数据本身的特征向量和半径为0的二元组(xi,0)集合。

鉴于该基于同步压缩得方式可以利用新的正常运行状态记录进行重新压缩,所以原理上可进行无限压缩。因此,通过同步压缩,能够对潜在无限且实时设备状态记录进行管理,实时维护群组和自身正常运行的数据集。

5.2)、设备运行状态的演变检测

由于设备的运行状态是动态演化的,潜含在正常运行状态记录中的异常模式也会随之动态改变,导致当前设备的异常模式可能与历史异常模式有很大不同。因此,在这种条件下,对新来的正常状态运行状态记录的异常判断不能基于历史数据,需要进行概念漂移检测,从而维护代表当前正常运行的动态数据集。

本发明中,在整个动态数据维护过程中,采用基于主成分分析的概念漂移检测方法,分别检测该组设备数据集和每个设备数据集中的运行状态是否发生了突变。具体而言,在整个过程中,维护两个具有相等大小窗口的连续数据块,该数据块大小根据具体场景设置。对每个数据块进行主成分分析,然后计算对应第一主成分之间的夹角。如该夹角超过规定阈值,则认为设备的运行状态是否发生了突变。若发生突变,分别清空对应数据集,并用最新的正常运行状态下的数据进行重新初始化。

在本实施例中,概念漂移检测方法具体如下:

5.2.1)、对每组设备和单个设备的正常运行状态记录,动态维护两个连续数据块,数据块的大小根据具体应用而定(如1000条记录);

5.2.2)、采用主成分方法对两个数据块进行分析,获取各自第一主成分;

5.2.3)、在本实施例中,如图4所示,比较两个数据块第一主成分方向dr1、dr2的差异。这里采用角度进行计算。假设前一个时刻的数据块的第一主成分为V1,当前时刻的数据块的第一主成分为V2,利用公式(3)计算其夹角θ:

<mrow> <mi>&theta;</mi> <mo>=</mo> <mi>a</mi> <mi>r</mi> <mi>cos</mi> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>V</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msub> <mi>V</mi> <mn>2</mn> </msub> </mrow> <mrow> <mrow> <mo>|</mo> <msub> <mi>V</mi> <mn>1</mn> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <msub> <mi>V</mi> <mn>2</mn> </msub> <mo>|</mo> </mrow> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

如果θ大于一定阈值,如60°,则认为历史到当前的设备运行状态整体发生了突变,所以历史数据集中已经不适用于检测设备的异常情况。因此将清空历史数据集,然后重新进行初始化。

图5是本发明基于同步数据流压缩的设备异常实时检测方法一种具体实施方式的分析检测异常的系统框架图。

在本实施例中,如图5所示,分析检测异常的系统运行时,包括以下步骤(1)根据设备所在的群组数据集和自身数据集,分别找到与该运行状态记录最近的两条记录;(2)当前数据集数据量过大则进行同步压缩;(3)当前数据集有较大变化,则重新初始化数据集;(4)结合群组数据集与自身数据集分析设备是否异常。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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