CN117650995A - 一种基于离群检测的数据传输异常识别方法 - Google Patents

一种基于离群检测的数据传输异常识别方法 Download PDF

Info

Publication number
CN117650995A
CN117650995A CN202311605953.6A CN202311605953A CN117650995A CN 117650995 A CN117650995 A CN 117650995A CN 202311605953 A CN202311605953 A CN 202311605953A CN 117650995 A CN117650995 A CN 117650995A
Authority
CN
China
Prior art keywords
psen
value
array
data
outlier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311605953.6A
Other languages
English (en)
Other versions
CN117650995B (zh
Inventor
许红龙
梁忠豪
黄国顺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Foshan University
Original Assignee
Foshan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Foshan University filed Critical Foshan University
Priority to CN202311605953.6A priority Critical patent/CN117650995B/zh
Publication of CN117650995A publication Critical patent/CN117650995A/zh
Application granted granted Critical
Publication of CN117650995B publication Critical patent/CN117650995B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及数据传输领域,并提供了一种基于离群检测的数据传输异常识别方法,对数据流进行数据分割,得到N个数据段,依次计算N个数据段的线性离群度,根据N个数据段的线性离群度计算异常解离值,通过异常解离值识别出数据流中的异常数据段。所述方法能够准确高效地对数据流中的异常数据段进行识别和检测,优化数据传输过程的稳定性,无需人工干预实时检测,通过线性离群度对数据流进行快速异常响应,以数据分割的方式降低异常检测过程对计算资源的消耗,充分提升数据采集过程的效率以及数据质量,避免由数据异常而引起更多的风险事件,保证数据能够安全、稳定地完成传输。

Description

一种基于离群检测的数据传输异常识别方法
技术领域
本发明涉及数据传输领域,特别涉及一种基于离群检测的数据传输异常识别方法。
背景技术
随着信息技术的发展,数据在传输方面其速度和数量的要求不断提升,对于大型传感器网络而言,数据在传感器节点至服务器之间的传输是连续且稠密的,当数据采集或数据处理的过程中出现错误、延迟或丢失等异常数据事件,数据中目标信息的完整性和准确性将受到破坏,同时影响后续数据发送与接收的速度和时效,因此,在数据的传输过程中需要借助异常检测或异常识别等手段,以保证数据能够安全、稳定地完成传输。
面对频发的网络拥堵、设备故障、恶意攻击等风险事件,现有的对于数据传输异常的识别技术中,往往存在处理延迟过高以及对微小异常的敏感性不足等缺陷,而云计算或实时监控等领域要求对传感数据的时效性有一定保证,当出现异常数据事件,需要在其发生前就对潜在的异常信号进行快速、准确的捕捉,以确保异常事件能被迅速处理,因此,一种以高实时性、高敏感性和低延迟性的数据传输异常识别方法,是提高数据在传输过程中的可靠性和高效性的关键。
发明内容
本发明的目的在于提出一种基于离群检测的数据传输异常识别方法,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
本发明提供了一种基于离群检测的数据传输异常识别方法,对数据流进行数据分割,得到N个数据段,依次计算N个数据段的线性离群度,根据N个数据段的线性离群度计算异常解离值,通过异常解离值识别出数据流中的异常数据段。所述方法能够准确高效地对数据流中的异常数据段进行识别和检测,优化数据传输过程的稳定性,无需人工干预实时检测,通过线性离群度对数据流进行快速异常响应,以数据分割的方式降低异常检测过程对计算资源的消耗,充分提升数据采集过程的效率以及数据质量,避免由数据异常而引起更多的风险事件,保证数据能够安全、稳定地完成传输。
为了实现上述目的,根据本发明的一方面,提供一种基于离群检测的数据传输异常识别方法,所述方法包括以下步骤:
S100,对数据流进行数据分割,得到N个数据段;
S200,依次计算N个数据段的线性离群度;
S300,根据N个数据段的线性离群度计算异常解离值;
S400,通过异常解离值识别出数据流中的异常数据段。
进一步地,步骤S100中,所述数据流,具体为:在传感器节点采集到数据后,通过传感器节点向服务器发送数据,以dat(a)作为服务器在时刻p(a)时所接收到的来自于传感器节点的数据(每个时刻接收且仅接收一个数据,即每个dat(a)只存在唯一的对应数值),以数组dat[]存储dat(a),将数组dat[]作为所述数据流;
其中,时刻p(a)为时段tN内的第a秒,a为序号,a的取值范围为a=1,2,…,tA,tA为时段tN的长度,tA的取值区间为[18000,28800](即[5,8]小时,[18000,28800]秒),时段tN为传感器节点向服务器发送数据的过程中的任意一个时段;
dat(a)对应的取值为dat(a)=dat(1),dat(2),…,dat(tA),则数组dat[]的长度为tA(即数组dat[]内共含有tA个元素)。
进一步地,所述在传感器节点采集到数据后,其中,所述数据为温度值、压力值、湿度值、光照值、噪音值、信号值、位移值、功率值中的其中一种,且传感器节点在每一秒(即每个时刻)至多采集一个数据。
进一步地,步骤S100中,对数据流进行数据分割,得到N个数据段的方法具体为:创建N个空白的数组Psen(1),Psen(2),…,Psen(N),以这N个数组组成一个数组序列P_sen<N>,以Psen(i)表示数组序列P_sen<N>中的第i个数组,i为序号,i的取值范围为i=1,2,…,N,按照均匀填充法将数组dat[]中的tA个元素分配至数组序列P_sen<N>中的每一个数组,以数组序列P_sen<N>中的N个数组作为N个数据段(Psen(i)为N个数据段中的第i个数据段);
其中,N=INT(tA/K0),K0为分割长度,K0的取值为区间[8,20]中的任意一个整数,INT()表示对()内的数进行向上取整;
按照均匀填充法将数组dat[]中的tA个元素分配至数组序列P_sen<N>中的每一个数组的方法为:以dat(a)表示数组dat[]中的第a个元素,a为序号,a的取值范围为a=1,2,…,tA,将数组dat[]中的第P1(i)个元素至第P2(i)个元素加入Psen(i)中,P1(i)=(i-1)*K0+1,P2(i)=i*K0;
将P1(i)和P2(i)中的序号i从i=1遍历至i=N,从而完成数组序列P_sen<N>中N个数组Psen(1),Psen(2),…,Psen(N)的数据写入。
本步骤的有益效果为:以数据分割的形式对数据进行预处理,充分降低计算开销,同时增强数据流中异常数据的筛选准确率,避免数据过量而引发的计算超负荷,提高异常检测的效率和精度。
进一步地,步骤S200中,依次计算N个数据段的线性离群度的方法为:
S201,创建一个空白的数组ach[],计算解离初值R1,创建一个空白的数组RPIV[],将解离初值R1加入到数组RPIV[]中;
以Psen(i)表示数组序列P_sen<N>的N个数组中的第i个数组,i为序号,i的取值范围为i=1,2,…,N,初始化变量k(变量k用于遍历Psen(i)),k的取值范围与i的取值范围相同,从k=1开始遍历变量k,以Psen(k)表示变量k在数组序列P_sen<N>的N个数组中所对应的第k个数组,转至S202;
S202,记数组Psen(k)中的第j个元素为Psen(k,j),j为序号,j的取值范围为j=1,2,…,M,M为数组Psen(k)的长度(即数组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的值);
如果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)。
本步骤的有益效果为:在传感器节点的持续工作过程中,由于网络拥堵或设备故障等因素,传感器节点采集到的数据容易出现异常,如果未能对其及时发现并处理,容易引发更大规模的数据问题,因此需要对数据传输的过程进行实时监测,以便快速定位出异常的数据段以及发生时间,本步骤的方法通过截取数据传输过程中任意子时段的数据,将其进行数据分割,并计算每个数据段的线性离群度,以线性离群度作为衡量各个数据段在当前时段内相对于数据流的稳定度,相对于整段数据流而言,线性离群度较高的数据段在当前时段tN的数据特征并不稳定,发生异常的概率相当高,而传感器节点的工作特点是采集到的数据连续且稠密、数据量大、更新速度快,当数据流中的部分数据出现异常时,这部分异常容易表现在数据的连续变化中,因此,通过线性离群度作为数据段的异常筛选衡量标准,在快速响应以及异常管控方面,具有更高的精确度以及反应速度,能够实时、准确地筛选出异常数据段,大幅提高异常数据检测和处理的效率,保证数据采集过程能够持续稳定地运行。
进一步地,通过第一离群算法更新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)之间的所有元素的平均值。
进一步地,解离初值R1的计算方法为:在数组序列P_sen<N>的N个数组中,依次计算每个数组内所有元素的平均值,以APsen(i)表示Psen(i)内所有元素的平均值,则N个数组Psen(1),Psen(2),…,Psen(N)对应着N个所述平均值APsen(1),APsen(2),…,APsen(N),在这N个数组Psen(1),Psen(2),…,Psen(N)中筛选出平均值最大的数组并记该数组为Psen(X),X为序号,X∈[1,N];
分别以Psen(X,jm)和Psen(X,jg)表示数组Psen(X)中元素值最小的元素和元素值最大的元素,将数组Psen(X)中位于Psen(X,jm)与Psen(X,jg)之间的所有元素的平均值记为解离初值R1。
进一步地,步骤S300中,根据N个数据段的线性离群度计算异常解离值的方法具体为:以N个线性离群度OR_r(1),OR_r(2),…,OR_r(N)的平均值作为异常解离值(即[OR_r(1)+OR_r(2)+…+OR_r(N)]/N)。
进一步地,步骤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),将线性离群度的值大于异常解离值的数据段标记为异常数据段。
可选地,通过异常解离值识别出数据流中的异常数据段,还包括:生成一份异常日志,所述异常日志包括时段tN的起始时刻和结束时刻、数据流(数组dat[])、异常数据段以及异常数据段在数据流的相对位置(数据段由数据流分割所得,异常数据段为所有数据段中的部分数据段,称异常数据段在未分割前的数据流中所在的位置为相对位置);
通过服务器发送所述异常日志至数据中心。
由于传感器节点的工作周期通常较长,持续采集的情况下会产生大量数据,因此发送至服务器的数据流量也较高,如果对异常数据段的筛选条件设置得过为灵敏或宽泛,容易导致实时运算压力过大,造成服务器超载,因此,为进一步地有效地筛选出更为精确的异常数据段,通过异常解离值识别出数据中的异常数据段的方法还可以为:
S401,创建一个空白的数组OR_r[],将N个线性离群度OR_r(1),OR_r(2),…,OR_r(N)依次加入数组OR_r[]中;创建一个长度为N的空白数组swa[],以swa(i)表示数组swa[]内的第i个元素,i为序号,i的取值范围为i=1,2,…,N;通过响应阶式计算swa(i)的值:
swa(i)=exp(1/N*(OR_r(i)-ORm));
其中,OR_r(i)为数组OR_r[]中的第i个元素,Orm为数组OR_r[]内的最小值,exp()表示对()内的数取以自然常数e为底的指数运算;
创建一个空白的数组Lev{},初始化变量k,k的取值范围与i的取值范围相同,从k=1开始遍历变量k,转至S402;
S402,如果swa(k)的值大于ORW的值,则将当前k的值加入数组Lev{}中,转至S403;其中,swa(k)表示变量k的值在数组swa[]中所对应的第k个元素;
ORW为异常解离值,ORW通过下式计算:
式中,N1=round(N/2),round()表示对括号内的值进行向上取整;swaT(i1)表示数组swaT[]内的第i1个元素,数组swaT[]是数组swa[]的升序排序数组(即将swa[]内的所有元素全部升序排序后,得到一组有序的元素排列,将这组有序的元素排列以swaT[]储存),i1为序号,i1的取值范围与序号i的取值范围相同;
S403,如果当前变量k的值小于N,则将变量k的值增加1,并转到S402;如果当前变量k的值大于或等于N,则转至S404;
S404,记Lev(c)为数组Lev{}中的第c个元素,c为序号,c的取值范围为c=1,2,…,C,C为数组Lev{}内所有元素的数量;
将N个数据段的第Lev(1)个,第Lev(2)个,…,第Lev(C)个数据段Psen(Lev(1)),Psen(Lev(2)),…,Psen(Lev(C))标记为异常数据段。
本步骤的有益效果为:以N个数据段的线性离群度计算得到异常解离值,在数据的全面性考量与实时性反馈之间实现了两者的有效平衡,大幅增强了异常检测系统对于异常数据的敏感性,通过持续地实时计算异常解离值,使得当数据流的数据特征出现微小波动时,都能基于异常解离值对异常进行快速发现和响应,从而更早地进行干预和处理,防止因数据异常引发的问题对传感器节数据采集的影响扩大。
本发明的有益效果为:所述方法能够准确高效地对数据流中的异常数据段进行识别和检测,优化数据传输过程的稳定性,无需人工干预实时检测,通过线性离群度对数据流进行快速异常响应,以数据分割的方式降低异常检测过程对计算资源的消耗,充分提升数据采集过程的效率以及数据质量,避免由数据异常而引起更多的风险事件,保证数据能够安全、稳定地完成传输。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本发明的上述以及其他特征将更加明显,本发明附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种基于离群检测的数据传输异常识别方法的流程图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
如图1所示为根据本发明的一种基于离群检测的数据传输异常识别方法的流程图,下面结合图1来阐述根据本发明的实施方式的一种基于离群检测的数据传输异常识别方法。
本发明提出一种基于离群检测的数据传输异常识别方法,所述方法包括以下步骤:
S100,对数据流进行数据分割,得到N个数据段;
S200,依次计算N个数据段的线性离群度;
S300,根据N个数据段的线性离群度计算异常解离值;
S400,通过异常解离值识别出数据流中的异常数据段。
进一步地,步骤S100中,所述数据流,具体为:在传感器节点采集到数据后,通过传感器节点向服务器发送数据,以dat(a)作为服务器在时刻p(a)时所接收到的来自于传感器节点的数据(每个时刻接收且仅接收一个数据,即每个dat(a)只存在唯一的对应数值),以数组dat[]存储dat(a),将数组dat[]作为所述数据流;
其中,时刻p(a)为时段tN内的第a秒,a为序号,a的取值范围为a=1,2,…,tA,tA为时段tN的长度,tA的取值为28800,时段tN为传感器节点向服务器发送数据的过程中的任意一个时段;
dat(a)对应的取值为dat(a)=dat(1),dat(2),…,dat(tA),则数组dat[]的长度为tA(即数组dat[]内共含有tA个元素)。
进一步地,所述在传感器节点采集到数据后,其中,所述数据为温度值、压力值、湿度值、光照值、噪音值、信号值、位移值、功率值中的其中一种,且传感器节点在每一秒(即每个时刻)至多采集一个数据。
进一步地,步骤S100中,对数据流进行数据分割,得到N个数据段的方法具体为:创建N个空白的数组Psen(1),Psen(2),…,Psen(N),以这N个数组组成一个数组序列P_sen<N>,以Psen(i)表示数组序列P_sen<N>中的第i个数组,i为序号,i的取值范围为i=1,2,…,N,按照均匀填充法将数组dat[]中的tA个元素分配至数组序列P_sen<N>中的每一个数组,以数组序列P_sen<N>中的N个数组作为N个数据段(Psen(i)为N个数据段中的第i个数据段);
其中,N=INT(tA/K0),K0为分割长度,K0的取值具体为10,INT()表示对()内的数进行向上取整;
按照均匀填充法将数组dat[]中的tA个元素分配至数组序列P_sen<N>中的每一个数组的方法为:以dat(a)表示数组dat[]中的第a个元素,a为序号,a的取值范围为a=1,2,…,tA,将数组dat[]中的第P1(i)个元素至第P2(i)个元素加入Psen(i)中,P1(i)=(i-1)*K0+1,P2(i)=i*K0;
将P1(i)和P2(i)中的序号i从i=1遍历至i=N,从而完成数组序列P_sen<N>中N个数组Psen(1),Psen(2),…,Psen(N)的数据写入。
进一步地,步骤S200中,依次计算N个数据段的线性离群度的方法为:
S201,创建一个空白的数组ach[],计算解离初值R1,创建一个空白的数组RPIV[],将解离初值R1加入到数组RPIV[]中;
以Psen(i)表示数组序列P_sen<N>的N个数组中的第i个数组,i为序号,i的取值范围为i=1,2,…,N,初始化变量k(变量k用于遍历Psen(i)),k的取值范围与i的取值范围相同,从k=1开始遍历变量k,以Psen(k)表示变量k在数组序列P_sen<N>的N个数组中所对应的第k个数组,转至S202;
S202,记数组Psen(k)中的第j个元素为Psen(k,j),j为序号,j的取值范围为j=1,2,…,M,M为数组Psen(k)的长度(即数组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的值);
如果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);
具体地,其数学表达为:
式中,n为累加变量,n的累加范围为[1,M],Psen(i)_M为数组Psen(i)内元素值最大的元素,Psen(i,n)为数组Psen(i)内的第n个元素,RPIV(i)表示数组RPIV[]中的第i个元素。
进一步地,通过第一离群算法更新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)之间的所有元素的平均值。
进一步地,解离初值R1的计算方法为:在数组序列P_sen<N>的N个数组中,依次计算每个数组内所有元素的平均值,以APsen(i)表示Psen(i)内所有元素的平均值,则N个数组Psen(1),Psen(2),…,Psen(N)对应着N个所述平均值APsen(1),APsen(2),…,APsen(N),在这N个数组Psen(1),Psen(2),…,Psen(N)中筛选出平均值最大的数组并记该数组为Psen(X),X为序号,X∈[1,N];
分别以Psen(X,jm)和Psen(X,jg)表示数组Psen(X)中元素值最小的元素和元素值最大的元素,将数组Psen(X)中位于Psen(X,jm)与Psen(X,jg)之间的所有元素的平均值记为解离初值R1。
进一步地,步骤S300中,根据N个数据段的线性离群度计算异常解离值的方法具体为:以N个线性离群度OR_r(1),OR_r(2),…,OR_r(N)的平均值作为异常解离值(即[OR_r(1)+OR_r(2)+…+OR_r(N)]/N)。
进一步地,步骤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),将线性离群度的值大于异常解离值的数据段标记为异常数据段。
具体地,通过异常解离值识别出数据流中的异常数据段,还包括:生成一份异常日志,所述异常日志包括时段tN的起始时刻和结束时刻、数据流(数组dat[])、异常数据段以及异常数据段在数据流的相对位置(数据段由数据流分割所得,异常数据段为所有数据段中的部分数据段,称异常数据段在未分割前的数据流中所在的位置为相对位置);
通过服务器发送所述异常日志至数据中心。
由于传感器节点的工作周期通常较长,持续采集的情况下会产生大量数据,因此发送至服务器的数据流量也较高,如果对异常数据段的筛选条件设置得过为灵敏或宽泛,容易导致实时运算压力过大,造成服务器超载,因此,为进一步地有效地筛选出更为精确的异常数据段,通过异常解离值识别出数据中的异常数据段的方法还可以为:
S401,创建一个空白的数组OR_r[],将N个线性离群度OR_r(1),OR_r(2),…,OR_r(N)依次加入数组OR_r[]中;创建一个长度为N的空白数组swa[],以swa(i)表示数组swa[]内的第i个元素,i为序号,i的取值范围为i=1,2,…,N;通过响应阶式计算swa(i)的值:
swa(i)=exp(1/N*(OR_r(i)-ORm));
其中,OR_r(i)为数组OR_r[]中的第i个元素,Orm为数组OR_r[]内的最小值,exp()表示对()内的数取以自然常数e为底的指数运算;
创建一个空白的数组Lev{},初始化变量k,k的取值范围与i的取值范围相同,从k=1开始遍历变量k,转至S402;
S402,如果swa(k)的值大于ORW的值,则将当前k的值加入数组Lev{}中,转至S403;其中,swa(k)表示变量k的值在数组swa[]中所对应的第k个元素;
ORW为异常解离值,ORW通过下式计算:
式中,N1=round(N/2),round()表示对括号内的值进行向上取整;swaT(i1)表示数组swaT[]内的第i1个元素,数组swaT[]是数组swa[]的升序排序数组(即将swa[]内的所有元素全部升序排序后,得到一组有序的元素排列,将这组有序的元素排列以swaT[]储存),i1为序号,i1的取值范围与序号i的取值范围相同;
S403,如果当前变量k的值小于N,则将变量k的值增加1,并转到S402;如果当前变量k的值大于或等于N,则转至S404;
S404,记Lev(c)为数组Lev{}中的第c个元素,c为序号,c的取值范围为c=1,2,…,C,C为数组Lev{}内所有元素的数量;
将N个数据段的第Lev(1)个,第Lev(2)个,…,第Lev(C)个数据段Psen(Lev(1)),Psen(Lev(2)),…,Psen(Lev(C))标记为异常数据段。
本发明提供了一种基于离群检测的数据传输异常识别方法,对数据流进行数据分割,得到N个数据段,依次计算N个数据段的线性离群度,根据N个数据段的线性离群度计算异常解离值,通过异常解离值识别出数据流中的异常数据段。所述方法能够准确高效地对数据流中的异常数据段进行识别和检测,优化数据传输过程的稳定性,无需人工干预实时检测,通过线性离群度对数据流进行快速异常响应,以数据分割的方式降低异常检测过程对计算资源的消耗,充分提升数据采集过程的效率以及数据质量,避免由数据异常而引起更多的风险事件,保证数据能够安全、稳定地完成传输。尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,从而有效地涵盖本发明的预定范围。此外,上文以发明人可预见的实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。

Claims (9)

1.一种基于离群检测的数据传输异常识别方法,其特征在于,所述方法包括以下步骤:
S100,对数据流进行数据分割,得到N个数据段;
S200,依次计算N个数据段的线性离群度;
S300,根据N个数据段的线性离群度计算异常解离值;
S400,通过异常解离值识别出数据流中的异常数据段。
2.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,步骤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。
3.根据权利要求2所述的一种基于离群检测的数据传输异常识别方法,其特征在于,所述在传感器节点采集到数据后,其中,所述数据为温度值、压力值、湿度值、光照值、噪音值、信号值、位移值、功率值中的其中一种,且传感器节点在每一秒至多采集一个数据。
4.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,步骤S100中,对数据流进行数据分割,得到N个数据段的方法具体为:创建N个空白的数组Psen(1),Psen(2),…,Psen(N),以这N个数组组成一个数组序列P_sen<N>,以Psen(i)表示数组序列P_sen<N>中的第i个数组,i为序号,i的取值范围为i=1,2,…,N,按照均匀填充法将数组dat[]中的tA个元素分配至数组序列P_sen<N>中的每一个数组,以数组序列P_sen<N>中的N个数组作为N个数据段;
其中,N=INT(tA/K0),K0为分割长度,K0的取值为区间[8,20]中的任意一个整数,INT()表示对()内的数进行向上取整;
按照均匀填充法将数组dat[]中的tA个元素分配至数组序列P_sen<N>中的每一个数组的方法为:以dat(a)表示数组dat[]中的第a个元素,a为序号,a的取值范围为a=1,2,…,tA,将数组dat[]中的第P1(i)个元素至第P2(i)个元素加入Psen(i)中,P1(i)=(i-1)*K0+1,P2(i)=i*K0;
将P1(i)和P2(i)中的序号i从i=1遍历至i=N,从而完成数组序列P_sen<N>中N个数组Psen(1),Psen(2),…,Psen(N)的数据写入。
5.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,步骤S200中,依次计算N个数据段的线性离群度的方法为:
S201,创建一个空白的数组ach[],计算解离初值R1,创建一个空白的数组RPIV[],将解离初值R1加入到数组RPIV[]中;
以Psen(i)表示数组序列P_sen<N>的N个数组中的第i个数组,i为序号,i的取值范围为i=1,2,…,N,初始化变量k,k的取值范围与i的取值范围相同,从k=1开始遍历变量k,以Psen(k)表示变量k在数组序列P_sen<N>的N个数组中所对应的第k个数组,转至S202;
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)。
6.根据权利要求5所述的一种基于离群检测的数据传输异常识别方法,其特征在于,通过第一离群算法更新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)之间的所有元素的平均值。
7.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,解离初值R1的计算方法为:在数组序列P_sen<N>的N个数组中,依次计算每个数组内所有元素的平均值,以APsen(i)表示Psen(i)内所有元素的平均值,则N个数组Psen(1),Psen(2),…,Psen(N)对应着N个所述平均值APsen(1),APsen(2),…,APsen(N),在这N个数组Psen(1),Psen(2),…,Psen(N)中筛选出平均值最大的数组并记该数组为Psen(X),X为序号,X∈[1,N];
分别以Psen(X,jm)和Psen(X,jg)表示数组Psen(X)中元素值最小的元素和元素值最大的元素,将数组Psen(X)中位于Psen(X,jm)与Psen(X,jg)之间的所有元素的平均值记为解离初值R1。
8.根据权利要求1所述的一种基于离群检测的数据传输异常识别方法,其特征在于,步骤S300中,根据N个数据段的线性离群度计算异常解离值的方法具体为:以N个线性离群度OR_r(1),OR_r(2),…,OR_r(N)的平均值作为异常解离值。
9.根据权利要求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),将线性离群度的值大于异常解离值的数据段标记为异常数据段。
CN202311605953.6A 2023-11-28 2023-11-28 一种基于离群检测的数据传输异常识别方法 Active CN117650995B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311605953.6A CN117650995B (zh) 2023-11-28 2023-11-28 一种基于离群检测的数据传输异常识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311605953.6A CN117650995B (zh) 2023-11-28 2023-11-28 一种基于离群检测的数据传输异常识别方法

Publications (2)

Publication Number Publication Date
CN117650995A true CN117650995A (zh) 2024-03-05
CN117650995B CN117650995B (zh) 2024-06-14

Family

ID=90048895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311605953.6A Active CN117650995B (zh) 2023-11-28 2023-11-28 一种基于离群检测的数据传输异常识别方法

Country Status (1)

Country Link
CN (1) CN117650995B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128583A (ja) * 2010-12-14 2012-07-05 Mitsubishi Electric Corp 異常検知装置、異常検知方法及び異常検知プログラム
CN104462379A (zh) * 2014-12-10 2015-03-25 深圳大学 一种基于距离的高准确率全局离群点检测算法
CN106708647A (zh) * 2016-12-30 2017-05-24 浙江工商大学 大数据环境下的分布式跨维度异常数据检测方法
US20170339168A1 (en) * 2016-05-20 2017-11-23 Informatica Llc Method, apparatus, and computer-readable medium for detecting anomalous user behavior
CN107480258A (zh) * 2017-08-15 2017-12-15 佛山科学技术学院 一种基于多种支撑点的度量空间离群检测方法
CN108108253A (zh) * 2017-12-26 2018-06-01 北京航空航天大学 一种面向多数据流的异常状态检测方法
CN112733904A (zh) * 2020-12-30 2021-04-30 佛山科学技术学院 一种水质异常检测方法及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128583A (ja) * 2010-12-14 2012-07-05 Mitsubishi Electric Corp 異常検知装置、異常検知方法及び異常検知プログラム
CN104462379A (zh) * 2014-12-10 2015-03-25 深圳大学 一种基于距离的高准确率全局离群点检测算法
US20170339168A1 (en) * 2016-05-20 2017-11-23 Informatica Llc Method, apparatus, and computer-readable medium for detecting anomalous user behavior
CN106708647A (zh) * 2016-12-30 2017-05-24 浙江工商大学 大数据环境下的分布式跨维度异常数据检测方法
CN107480258A (zh) * 2017-08-15 2017-12-15 佛山科学技术学院 一种基于多种支撑点的度量空间离群检测方法
CN108108253A (zh) * 2017-12-26 2018-06-01 北京航空航天大学 一种面向多数据流的异常状态检测方法
CN112733904A (zh) * 2020-12-30 2021-04-30 佛山科学技术学院 一种水质异常检测方法及电子设备

Also Published As

Publication number Publication date
CN117650995B (zh) 2024-06-14

Similar Documents

Publication Publication Date Title
CN114024837B (zh) 一种微服务系统的故障根因定位方法
CN108664603B (zh) 一种修复时序数据的异常聚合值的方法及装置
CN108107086B (zh) 一种基于阵列气体传感器的气体检测方法及气体传感器
US20210224383A1 (en) Abnormality detection device
CN114244751A (zh) 无线传感器网络异常检测方法和系统
EP3712728A1 (en) Apparatus for predicting equipment damage
CN110971488A (zh) 一种数据处理方法、装置、服务器和存储介质
CN113098912B (zh) 用户账户异常的识别方法、装置、电子设备及存储介质
CN111813644A (zh) 系统性能的评价方法、装置、电子设备和计算机可读介质
CN117633479B (zh) 一种充电桩故障分析处理方法及系统
CN117650995B (zh) 一种基于离群检测的数据传输异常识别方法
KR20200108199A (ko) 이상 감지를 이용한 모니터링 자동화 방법 및 장치
CN116720983A (zh) 一种基于大数据分析的供电设备异常检测方法及系统
CN114500615B (zh) 基于物联传感技术的智能终端
CN115600747A (zh) 一种基于物联网的隧道状态监测管理方法及系统
CN114331688A (zh) 一种银行柜面系统业务批量运行状态检测方法及装置
CN112149546B (zh) 一种信息处理方法、装置、电子设备及存储介质
CN114598627A (zh) 一种基于知识图谱的异常网络信息检测方法
CN117835197B (zh) 基于5g信息的气象信息服务系统和方法
CN115511106B (zh) 基于时序数据生成训练数据的方法、设备和可读存储介质
CN115636103B (zh) 一种piu子系统的工况分离方法、装置、设备及存储介质
CN116070963B (zh) 一种基于大数据的线上客户服务系统健康度检测方法
US20220188669A1 (en) Prediction method for system errors
CN111522678B (zh) 故障检测方法和装置
US20240192095A1 (en) State detection system, state detection method, and computer readable medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant