1.一种基于离群检测的数据传输异常识别方法,其特征在于,所述方法包括以下步骤:
S100,对数据流进行数据分割,得到N个数据段;
S200,依次计算N个数据段的线性离群度;
S300,根据N个数据段的线性离群度计算异常解离值;
S400,通过异常解离值识别出数据流中的异常数据段;
步骤S100中,所述数据流,具体为:在传感器节点采集到数据后,通过传感器节点向服务器发送数据,以dat(a)作为服务器在时刻p(a)时所接收到的来自于传感器节点的数据,以数组dat[]存储dat(a),将数组dat[]作为所述数据流;
其中,时刻p(a)为时段tN内的第a秒,a为序号,a的取值范围为a=1,2,…,tA,tA为时段tN的长度,tA的取值区间为[18000,28800],时段tN为传感器节点向服务器发送数据的过程中的任意一个时段;
dat(a)对应的取值为dat(a)=dat(1),dat(2),…,dat(tA),则数组dat[]的长度为tA;
步骤S100中,对数据流进行数据分割,得到N个数据段的方法具体为:创建N个空白的数组Psen(1),Psen(2),…,Psen(N),以这N个数组组成一个数组序列P_sen
其中,N=INT(tA/K0),K0为分割长度,K0的取值为区间[8,20]中的任意一个整数,INT()表示对()内的数进行向上取整;
按照均匀填充法将数组dat[]中的tA个元素分配至数组序列P_sen
将P1(i)和P2(i)中的序号i从i=1遍历至i=N,从而完成数组序列P_sen
步骤S200中,依次计算N个数据段的线性离群度的方法为:
S201,创建一个空白的数组ach[],计算解离初值R1,创建一个空白的数组RPIV[],将解离初值R1加入到数组RPIV[]中;
以Psen(i)表示数组序列P_sen
S202,记数组Psen(k)中的第j个元素为Psen(k,j),j为序号,j的取值范围为j=1,2,…,M,M为数组Psen(k)的长度,以Psen(k,jm)表示数组Psen(k)中元素值最小的元素,以Psen(k,jg)表示数组Psen(k)中元素值最大的元素,jm、jg都为序号,jm,jg∈[1,M];
将数组Psen(k)中位于Psen(k,jm)与Psen(k,jg)之间的所有元素加入数组ach[]中,以Aach表示数组ach[]中所有元素的平均值,转至S203;
S203,如果Aach的值大于解离初值R1,则将解离初值R1的值更新为当前Aach的值,同时清空数组ach[]内的所有元素;
如果Aach的值小于或等于解离初值R1,则通过第一离群算法更新R1的值,同时清空数组ach[]内的所有元素;
将当前R1的值加入到数组RPIV[]中,转至S204;
S204,如果当前变量k的值小于N,则将变量k的值增加1,并转到S202;如果当前变量k的值大于或等于N,则转至S205;
S205,以OR_r(i)表示Psen(i)所对应的线性离群度,OR_r(i)的计算方法为:将数组Psen(i)内的M个元素依次减去RPIV(i)的值,从而得到M个第一数值,取这M个第一数值的绝对值作为离群度,则共有M个离群度;以数组Psen(i)内的最大值除以M个离群度,得到M个第二数值,依次将这M个第二数值进行累加,进而得到线性离群度;
将Psen(i)中的i从i=1遍历至i=N,从而得到N个数组Psen(1),Psen(2),…,Psen(N)所对应的N个线性离群度OR_r(1),OR_r(2),…,OR_r(N)。
2.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,所述在传感器节点采集到数据后,其中,所述数据为温度值、压力值、湿度值、光照值、噪音值、信号值、位移值、功率值中的其中一种,且传感器节点在每一秒至多采集一个数据。
3.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,通过第一离群算法更新R1的值的方法具体为:记Rs=round(M/2),round()表示对括号内的值进行向上取整,将序号jm的值与Rs的值进行比较;
如果jm的值小于或者等于Rs的值,则将数组Psen(k)中位于Psen(k,1)与Psen(k,jm)之间的所有元素组成离群数据段;如果jm的值大于Rs的值,则将数组Psen(k)中位于Psen(k,jm)与Psen(k,M)之间的所有元素组成离群数据段;
将离群数据段中元素值最小的元素记为Psen(k,jp),jp为序号,jp∈[1,M];
将R1的值更新为:数组Psen(k)中位于Psen(k,jp)与Psen(k,jg)之间的所有元素的平均值。
4.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,解离初值R1的计算方法为:在数组序列P_sen
分别以Psen(X,jm)和Psen(X,jg)表示数组Psen(X)中元素值最小的元素和元素值最大的元素,将数组Psen(X)中位于Psen(X,jm)与Psen(X,jg)之间的所有元素的平均值记为解离初值R1。
5.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,步骤S300中,根据N个数据段的线性离群度计算异常解离值的方法具体为:以N个线性离群度OR_r(1),OR_r(2),…,OR_r(N)的平均值作为异常解离值。
6.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,步骤S400中,通过异常解离值识别出数据流中的异常数据段的方法具体为:在数据流中经过数据分割后的N个数据段中,以OR_r(i)表示所述N个数据段中的第i个数据段Psen(i)的线性离群度,则所述N个数据段Psen(1),Psen(2),…,Psen(N)对应着N个线性离群度OR_r(1),OR_r(2),…,OR_r(N),将线性离群度的值大于异常解离值的数据段标记为异常数据段。