一种异常数据的识别方法、装置、存储介质及计算机设备转让专利

申请号 : CN202210839496.6

文献号 : CN115001853B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李峰夏国栋杨家林

申请人 : 山东云天安全技术有限公司

摘要 :

本发明涉及数据处理技术领域,尤其涉及一种异常数据的识别方法、装置、存储介质及计算机设备。包括获取目标RTU在当前的检测时间窗口内的数据集A;根据A,确定A对应的数据均值A0;获取目标RTU在第一历史周期内对应的多个检测时间窗口的历史数据均值集;获取最大历史数据均值和最小历史数据均值;当A0>B0max或者A0<B0min时,进入异常标记环节,确定正常浮动区间;当A0>D0max或者A0<D0min时,将A对应的目标RTU的上传数据标记为异常状态。在本发明中无需对具体的数据内容进行解析分析,即可识别异常数据,由此可以提高数据进行异常检测的效率,进而对异常数据进行快速识别。

权利要求 :

1.一种异常数据的识别方法,其特征在于,包括:

获取目标远程终端单元RTU在当前的检测时间窗口内的数据集A={A1,…,Ai,…,Am},其中,Ai是指在检测时间窗口内目标RTU上的传感器采集周围环境所产生的第i个数据的大小,m为目标RTU在检测时间窗口内产生的数据总数量;

根据所述A,确定A对应的数据均值A0,A0符合如下条件:m

A0=∑i=1Ai/m;

获取所述目标RTU在第一历史周期内对应的多个所述检测时间窗口的历史数据均值集B0={B01,…,B0j,…,B0n},B0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据均值,n为第一历史周期内检测时间窗口的总数量,其中,所述第一历史周期是指在时间上早于所述当前的检测时间窗口的任一时段;

获取最大历史数据均值B0max和最小历史数据均值B0min,其中,B0max为B0中的目标最大值,B0min为B0中的目标最小值;

当所述A0>B0max或者所述A0<B0min时,进入异常标记环节,所述异常标记环节包括如下步骤:根据所述B0、所述B0max及所述B0min,确定正常浮动区间[D0min,D0max],其中,所述D0min和D0max满足如下条件:D0min=B0min‑Avg(B0)×[2B0min‑Avg(B0)]/B0min;

D0max=B0max+Avg(B0)×[2Avg(B0)‑B0max]/B0max;

其中,Avg()为预设的均值处理函数;

当所述A0>D0max或者所述A0<D0min时,将所述A对应的目标RTU的上传数据标记为异常状态。

2.根据权利要求1所述的方法,其特征在于,在所述获取最大历史数据均值B0max和最小历史数据均值B0min之后,所述方法还包括:当所述B0min≤A0≤B0max时,将所述A对应的目标RTU的上传数据标记为正常状态。

3.根据权利要求1所述的方法,其特征在于,所述B0中的历史数据均值符合正态分布,所述获取最大历史数据均值B0max和最小历史数据均值B0min,包括:根据所述B0中的每一所述历史数据均值,确定所述B0对应的正态分布图;

根据所述正态分布图,确定目标取值面积S0;

根据 ,确定B0max=a,B0min=b;

其中,μ为所述B0中的所有所述历史数据均值的平均数,σ为所述B0中的所有所述历史数据均值的标准差,a和b为关于μ对称的上取值边界值与下取值边界值,S0∈[0.8,1]。

4.根据权利要求3所述的方法,其特征在于,所述S0=0.8。

5.根据权利要求1所述的方法,其特征在于,在所述获取所述目标RTU在第一历史周期内对应的多个所述检测时间窗口的历史数据均值集B0之前,所述方法还包括:

1 1 1 1

获取所述目标RTU在第一历史周期内的第一初始数据集E0={A01,…,A0j,…,A 0w},A0j是指第一历史周期内第j个已经过异常标记的检测时间窗口内目标RTU对应的历史数据均值,w为第一历史周期内已经过异常标记的检测时间窗口的总数量;

确定E0中被标记为异常状态的历史数据均值的数量Q;

当Q>K1时,更换所述第一历史周期对应的时段,其中,K1为第一预设阈值。

6.根据权利要求5所述的方法,其特征在于,在所述确定E0中被标记为异常状态的历史数据均值的数量Q之后,所述方法还包括:当Q≤K1时,将所述E0确定为B0。

7.根据权利要求1所述的方法,其特征在于,所述获取所述目标RTU在第一历史周期内对应的多个所述检测时间窗口的历史数据均值集B0,包括:获取所述目标RTU在第一历史周期内的第二初始数据集F0={F01,…,F0j,…,F0z},F0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据大小列表,z为第一历史周期内的检测时间窗口的总数量;

获取P1j和P2j,所述P1j为F0中第j个所述历史数据大小列表对应的第一比例值,所述P2j为F0中第j个所述历史数据大小列表对应的第二比例值,所述P1j和P2j满足如下条件:max

P1j=F0j /Avg(F0j);

min

P2j=Avg(F0j)/F0j ;

max min

其中,F0j 和F0j 分别为F0j中的数据最大值及数据最小值,Avg(F0j)为F0j中的数据均值;

当所述P1j>K2或所述P2j>K3时,在F0中去除所述F0j,其中,所述K2为第二预设阈值,所述K3为第三预设阈值;

根据所述F0中剩余的历史数据大小列表,确定第二数据均值集G0={G01,…,G0v,…,G0y},其中,G0v是指G0中第v个历史数据大小列表对应的数据均值,y为G0内的数据均值的总数量,y≤z;

将所述G0确定为B0。

8.一种异常数据的识别装置,其特征在于,包括:

第一获取模块,用于获取目标远程终端单元RTU在当前的检测时间窗口内的数据集A={A1,…,Ai,…,Am},其中,Ai是指在检测时间窗口内目标RTU上的传感器采集周围环境所产生的第i个数据的大小,m为目标RTU在检测时间窗口内产生的数据总数量;

第一确定模块,用于根据所述A,确定A对应的数据均值A0,A0符合如下条件:m

A0=∑i=1Ai/m;

第二获取模块,用于获取所述目标RTU在第一历史周期内对应的多个所述检测时间窗口的历史数据均值集B0={B01,…,B0j,…,B0n},B0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据均值,n为第一历史周期内检测时间窗口的总数量,其中,所述第一历史周期是指在时间上早于所述当前的检测时间窗口的任一时段;

第三获取模块,用于获取最大历史数据均值B0max和最小历史数据均值B0min,其中,B0max为B0中的目标最大值,B0min为B0中的目标最小值;

判定模块,用于当所述A0>B0max或者所述A0<B0min时,触发第二确定模块;

第二确定模块,用于响应于所述判定模块的触发执行异常标记环节,所述异常标记环节包括:根据所述B0、所述B0max及所述B0min,确定正常浮动区间[D0min,D0max],其中,所述D0min和D0max满足如下条件:D0min=B0min‑Avg(B0)×[2B0min‑Avg(B0)]/B0min;

D0max=B0max+Avg(B0)×[2Avg(B0)‑B0max]/B0max;

其中,Avg()为预设的均值处理函数;

标记模块,用于当所述A0>D0max或者所述A0<D0min时,将所述A对应的目标RTU的上传数据标记为异常状态。

9.一种非瞬时性计算机可读存储介质,所述可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种异常数据的识别方法。

10.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至

7任一项所述的异常数据的识别方法。

说明书 :

一种异常数据的识别方法、装置、存储介质及计算机设备

技术领域

[0001] 本发明涉及数据处理技术领域,尤其涉及一种异常数据的识别方法、装置、存储介质及计算机设备。

背景技术

[0002] 数据传输主要依照对应的传输协议而进行,在工业领域中,很多数据传输协议在进行数据传输时采用明文的方式进行传输。由此,传输的数据格式容易被仿造,进而容易受到网络攻击,使得传输的数据中存在异常数据,存在安全隐患。
[0003] 但是,相关技术中对传输数据中的异常数据异常检测时,需要需要解析分析对应的报文数据,由此,使得数据进行异常检测的效率较低,无法对大量的传输数据中的异常数据进行快速识别。

发明内容

[0004] 有鉴于此,本发明提供一种异常数据的识别方法、装置、存储介质及计算机设备,至少部分解决现有技术中存在的数据进行异常检测的效率较低,无法对大量的传输数据中的异常数据进行快速识别的问题。
[0005] 根据本发明的第一个方面,提供了一种异常数据的识别方法,包括:
[0006] 获取目标RTU( Remote Terminal Unit,远程终端单元)在当前的检测时间窗口内的数据集A={A1,…,Ai,…,Am},其中,Ai是指在检测时间窗口内目标RTU上的传感器采集周围环境所产生的第i个数据的大小,m为目标RTU在检测时间窗口内产生的数据总数量;
[0007] 根据所述A,确定A对应的数据均值A0,A0符合如下条件:
[0008]  A0=∑mi=1Ai/m;
[0009] 获取所述目标RTU在第一历史周期内对应的多个所述检测时间窗口的历史数据均值集B0={B01,…,B0j,…,B0n},B0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据均值,n为第一历史周期内检测时间窗口的总数量,其中,所述第一历史周期是指在时间上早于所述当前的检测时间窗口的任一时段;
[0010] 获取最大历史数据均值B0max和最小历史数据均值B0min,其中,B0max为B0中的目标最大值,B0min为B0中的目标最小值;
[0011] 当所述A0>B0max或者所述A0<B0min时,进入异常标记环节,所述异常标记环节包括如下步骤:
[0012] 根据所述B0、所述B0max及所述B0min,确定正常浮动区间[D0min,D0max],其中,所述D0min和D0max满足如下条件:
[0013] D0min=B0min‑Avg(B0)×[2B0min‑Avg(B0)]/B0min;
[0014] D0max=B0max+Avg(B0)×[2Avg(B0)‑B0max]/B0max;
[0015] 其中,Avg()为预设的均值处理函数;
[0016] 当所述A0>D0max或者所述A0<D0min时,将所述A对应的目标RTU的上传数据标记为异常状态。
[0017] 在本发明中进一步的,在所述获取最大历史数据均值B0max和最小历史数据均值B0min之后,所述方法还包括:
[0018] 当所述B0min≤A0≤B0max时,将所述A对应的目标RTU的上传数据标记为正常状态。
[0019] 在本发明中进一步的,所述B0中的历史数据均值符合正态分布,
[0020] 所述获取最大历史数据均值B0max和最小历史数据均值B0min,包括:
[0021] 根据所述B0中的每一所述历史数据均值,确定所述B0对应的正态分布图;
[0022] 根据所述正态分布图,确定目标取值面积S0;
[0023] 根据 ,确定B0max=a,B0min=b;
[0024] 其中,μ为所述B0中的所有所述历史数据均值的平均数,σ为所述B0中的所有所述历史数据均值的标准差,a和b为关于μ对称的上取值边界值与下取值边界值,S0∈[0.8,1]。
[0025] 在本发明中进一步的,所述S0=0.8。
[0026] 在本发明中进一步的,在所述获取所述目标RTU在第一历史周期内对应的多个所述检测时间窗口的历史数据均值集B0之前,所述方法还包括:
[0027] 获取所述目标RTU在第一历史周期内的第一初始数据集E0={A101,…,A10j,…,1 1
A0w},A0j是指第一历史周期内第j个已经过异常标记的检测时间窗口内目标RTU对应的历史数据均值,w为第一历史周期内已经过异常标记的检测时间窗口的总数量;
[0028] 确定E0中被标记为异常状态的历史数据均值的数量Q;
[0029] 当Q>K1时,更换所述第一历史周期对应的时段,其中,K1为第一预设阈值。
[0030] 在本发明中进一步的,在所述确定E0中被标记为异常状态的历史数据均值的数量Q之后,所述方法还包括:
[0031] 当Q≤K1时,将所述E0确定为B0。
[0032] 在本发明中进一步的,所述获取所述目标RTU在第一历史周期内对应的多个所述检测时间窗口的历史数据均值集B0,包括:
[0033] 获取所述目标RTU在第一历史周期内的第二初始数据集F0={F01,…,F0j,…,F0z},F0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据大小列表,z为第一历史周期内的检测时间窗口的总数量;
[0034] 获取P1j和P2j,所述P1j为F0中第j个所述历史数据大小列表对应的第一比例值,所述P2j为F0中第j个所述历史数据大小列表对应的第二比例值,所述P1j和P2j满足如下条件:
[0035] P1j=F0jmax/Avg(F0j);
[0036] P2j=Avg(F0j)/F0jmin;
[0037] 其中,F0jmax和F0jmin分别为F0j中的数据最大值及数据最小值,Avg(F0j)为F0j中的数据均值;
[0038] 当所述P1j>K2或所述P2j>K3时,在F0中去除所述F0j,其中,所述K2为第二预设阈值,所述K3为第三预设阈值;
[0039] 根据所述F0中剩余的历史数据大小列表,确定第二数据均值集G0={G01,…,G0v,…,G0y},其中,G0v是指G0中第v个历史数据大小列表对应的数据均值,y为G0内的数据均值的总数量,y≤z;
[0040] 将所述G0确定为B0。
[0041] 根据本发明的第二个方面,提供了一种异常数据的识别装置,包括:
[0042] 第一获取模块,用于获取目标RTU在当前的检测时间窗口内的数据集A={A1,…,Ai,…,Am},其中,Ai是指在检测时间窗口内目标RTU上的传感器采集周围环境所产生的第i个数据的大小,m为目标RTU在检测时间窗口内产生的数据总数量;
[0043] 第一确定模块,用于根据所述A,确定A对应的数据均值A0,A0符合如下条件:
[0044] A0=∑mi=1Ai/m;
[0045] 第二获取模块,用于获取所述目标RTU在第一历史周期内对应的多个所述检测时间窗口的历史数据均值集B0={B01,…,B0j,…,B0n},B0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据均值,n为第一历史周期内检测时间窗口的总数量,其中,所述第一历史周期是指在时间上早于所述当前的检测时间窗口的任一时段;
[0046] 第三获取模块,用于获取最大历史数据均值B0max和最小历史数据均值B0min,其中,B0max为B0中的目标最大值,B0min为B0中的目标最小值;
[0047] 判定模块,用于当所述A0>B0max或者所述A0<B0min时,触发第二确定模块;
[0048] 第二确定模块,用于响应于所述判定模块的触发执行异常标记环节,所述异常标记环节包括:根据所述B0、所述B0max及所述B0min,确定正常浮动区间[D0min,D0max],其中,所述D0min和D0max满足如下条件:
[0049] D0min=B0min‑Avg(B0)×[2B0min‑Avg(B0)]/B0min;
[0050] D0max=B0max+Avg(B0)×[2Avg(B0)‑B0max]/B0max;
[0051] 其中,Avg()为预设的均值处理函数;
[0052] 标记模块,用于当所述A0>D0max或者所述A0<D0min时,将所述A对应的目标RTU的上传数据标记为异常状态。
[0053] 根据本发明的第三个方面,提供了一种非瞬时性计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的一种异常数据的识别方法。
[0054] 根据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的异常数据的识别方法。
[0055] 本公开的实施例提供的技术方案可以包括以下有益效果:
[0056] 由于RTU传输的数据基本为采集的对应传感器的采集数据,所以,一个RTU上传的每一个采集数据的数据大小偏低且数据大小基本一致,如均在2kb‑4kb的范围内。但是,当攻击方为了实现对应的攻击目的,会根据RTU上传的采集数据的报文格式而生成对应的攻击数据,由此,攻击数据不仅具有与正常上传的采集数据一致的数据格式,还在携带的数据中加入了对应的恶意代码,通常,由于恶意代码要达到破坏网络内部设备正常运行或窃取对应数据内容的目的,所以,使得攻击数据的数据量远大于RTU上传的正常的采集数据的数据大小。如在100kb‑1mb的范围内。并且,当一个攻击数据的数据量太大而需要切分成多个子攻击数据进行上传时,为了保证攻击数据的时效性,多个子攻击数据会连续进行上传,由此,会导致在一个时间段内RTU上传的数据的大小整体偏大。
[0057] 由此,在本发明中可以通过RTU传输的数据的大小特征来对传输的数据快速进行异常检测识别,具体为,通过将目标RTU在当前的检测时间窗口内的数据均值A0,与历史的数据进行对别来对传输的数据快速进行异常检测识别。
[0058] 与现有技术相比,由于无需对具体的数据内容进行解析分析,即可识别异常数据,由此可以提高数据进行异常检测的效率,进而,可以实现对大量的传输数据中的异常数据进行快速识别。

附图说明

[0059] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0060] 图1为本发明一实施例中公开的一种异常数据的识别方法的流程示意图。
[0061] 图2为本发明一实施例中公开的一种异常数据的识别装置的结构示意框图。

具体实施方式

[0062] 下面结合附图对本发明实施例进行详细描述。
[0063] 需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0064] 需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
[0065] 根据本发明的第一个方面,如图1所示,提供了一种异常数据的识别方法,包括:
[0066] 步骤S100:获取目标RTU在当前的检测时间窗口内的数据集A={A1,…,Ai,…,Am},其中,Ai是指在检测时间窗口内目标RTU上的传感器采集周围环境所产生的第i个数据的大小,m为目标RTU在检测时间窗口内产生的数据总数量。
[0067] 具体的,检测时间窗口可以根据实际的使用场景进行确定,如时间窗口可以为一天或者是一天中的某个时段,如每天的上午8‑10点的时间段为检测时间窗口。获取目标RTU的数据集A,可以为目标RTU上传的同一类型的采集数据或数据传输协议中的心跳帧,心跳帧可以为IEC104中U帧数据包。由此,每一个数据的大小基本一致,且由于上传的数据内容基本为数值,如温度值,湿度值等,所以每一个数据的大小均在2kb‑4kb的范围内。
[0068] 步骤S200:根据A,确定A对应的数据均值A0,A0符合如下条件:
[0069]  A0=∑mi=1Ai/m;
[0070] 步骤S300:获取目标RTU在第一历史周期内对应的多个检测时间窗口的历史数据均值集B0={B01,…,B0j,…,B0n},B0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据均值,n为第一历史周期内检测时间窗口的总数量,其中,第一历史周期是指在时间上早于当前的检测时间窗口的任一时段。
[0071] 具体的,第一历史周期的长度可以自行设定,如第一历史周期为当前的检测时间窗口的前30天,当检测时间窗口为每天的上午8‑10点的时间段,则B0中会存在30个对应的历史数据均值。当检测时间窗口为两个小时的时间段,则一天中会存在12个检测时间窗口,随着检测时间窗口的增加对应的历史数据均值也会增多,由此,使得在具有较大数据量的情况下异常检测计算的精度更高,计算结果更准确。
[0072] 步骤S400:获取最大历史数据均值B0max和最小历史数据均值B0min,其中,B0max为B0中的目标最大值,B0min为B0中的目标最小值。
[0073] 步骤S500:当A0>B0max或者A0<B0min时,进入异常标记环节。
[0074] 具体的,由于,获取的B0中的数据通常情况下均是稳定且正常的,且由于B0为由某一第一历史周期确定出来的,其并不能与真实的数据完全一致,通常由B0确定出来的B0max和B0min所划定的范围小于由真实数据的最大值和最小值划定的范围。所以,若以由B0max和B0min所划定的范围来直接进行异常判定,则会将较多的正常数据误判为异常数据。由此导致异常检测的精度下降,在本实施例中,需要通过步骤S600对异常判定的范围进行调整,由此,来提高异常检测的精度。
[0075] 异常标记环节包括如下步骤:
[0076] 步骤S600:根据B0、B0max及B0min,确定正常浮动区间[D0min,D0max],其中,D0min和D0max满足如下条件:
[0077] D0min=B0min‑Avg(B0)×[2B0min‑Avg(B0)]/B0min;
[0078] D0max=B0max+Avg(B0)×[2Avg(B0)‑B0max]/B0max;
[0079] 其中,Avg()为预设的均值处理函数;Avg()为求取平均数的函数,Avg(B0)具体为,将B0中的所有数据的值进行加和,然后除以B0中的所有数据的总个数。
[0080] 由上述D0min和D0max的计算公式可知,D0min≤B0min,D0max≥B0max,由此,可以扩大正常数据对应的判定区间,进而使得D0min和D0max与由真实数据的最小值和最大值更加接近,由此,可以减少误判进而提高本实施例中异常判定的准确率。
[0081] 另外,由D0min=B0min‑Avg(B0)×[2B0min‑Avg(B0)]/B0min可知,在D0min的变化过程中,D0min的大小会与B0min的大小成反相关。由于,获取的B0中的数据较多且基本均是正常的,所以不同的B0对应的Avg(B0)变化较小,基本可以认为是不变的。在D0min变小的过程中,虽然,较小的B0min对应的D0min小于较大的B0min对应的D0min,但是,较小的B0min对应的D0min与较大的B0min对应的D0min之间的差距极小。
[0082] 在实际获取不同的B0的过程中,不可避免的会出现不同的B0对应的B0min的值会出现较大的变动的情况。而通过本实施例中的算法可以使得D0min不会随着B0min的变化而发生较大的变动,而是基本在一个较小的范围内浮动,由此,可以保证由不同的B0计算得到的D0min不会存在较大差异,而是基本为与由真实数据确定的D0min更加接近的值,由此,也可以很好的避免,由于获取不同的B0而带来的较大的计算误差的问题。
[0083] 同理,由D0max=B0max+Avg(B0)×[2Avg(B0)‑B0max]/B0max可知,在D0max的变化过程中,D0max的大小也会与B0max的大小成反相关。
[0084] 本是实施例中的D0min和D0max不仅扩大正常数据对应的判定区间,而且,D0min和D0max与由真实数据的最小值和最大值更加接近,由此,可以进一步提高本实施例中异常判定的准确率。
[0085] 步骤S700:当A0>D0max或者A0<D0min时,将A对应的目标RTU的上传数据标记为异常状态。
[0086] 在本发明中可以通过RTU传输的数据的大小特征来对传输的数据快速进行异常检测识别,具体为,通过将目标RTU在当前的检测时间窗口内的数据均值A0,与历史的数据进行对别来对传输的数据快速进行异常检测识别。
[0087] 与现有技术相比,由于无需对具体的数据内容进行解析分析,即可识别异常数据,由此可以提高数据进行异常检测的效率,进而,可以实现对大量的传输数据中的异常数据进行快速识别。
[0088] 在本发明一种可能的实施例中,在步骤S400:获取最大历史数据均值B0max和最小历史数据均值B0min之后,方法还包括:
[0089] 步骤S800:当B0min≤A0≤B0max时,将A对应的目标RTU的上传数据标记为正常状态。
[0090] 在本发明一种可能的实施例中,B0中的历史数据均值符合正态分布,
[0091] 步骤S400:获取最大历史数据均值B0max和最小历史数据均值B0min,包括:
[0092] 步骤S401:根据B0中的每一历史数据均值,确定B0对应的正态分布图。
[0093] 步骤S402:根据正态分布图,确定目标取值面积S0;
[0094] 步骤S403:根据 ,确定B0max=a,B0min=b;
[0095] 其中,μ为B0中的所有历史数据均值的平均数,σ为B0中的所有历史数据均值的标准差,a和b为关于μ对称的上取值边界值与下取值边界值,S0∈[0.8,1]。优选的,S0=0.8。
[0096] 在本实施例中,由于B0中的历史数据均值符合正态分布,所以,可以通过对应的正态分布的规律去寻找B0max与B0min。本实施例中获取的B0max与B0min可能并不是对应的B0中存在的值,而是可以通过正态分布曲线的对B0max与B0min进行预测得到。
[0097] 现有的通过将获取到的B0中包含的最大值与最小值来确定B0max与B0min的方式,由于B0中的数据量较小不能完全代表真实数据,由此,极有可能获取的B0中包含的最大值与最小值与真实数据的最大值与最小值相差较大。
[0098] 相较于直接通过获取到的B0中包含的最大值与最小值来确定B0max与B0min的方式而言,本实施例中通过正态分布曲线预测到的B0max与B0min与实际的值更加贴近,由此,可以提高后续计算的准确率,进一步提高异常数据识别的准确性。
[0099] 在本发明一种可能的实施例中,在步骤S300:获取目标RTU在第一历史周期内对应的多个检测时间窗口的历史数据均值集B0之前,方法还包括:
[0100] 步骤S310:获取目标RTU在第一历史周期内的第一初始数据集E0={A101,…,1 1 1
A0j,…,A0w},A0j是指第一历史周期内第j个已经过异常标记的检测时间窗口内目标RTU对应的历史数据均值,w为第一历史周期内已经过异常标记的检测时间窗口的总数量。
[0101] 具体的,异常标记的步骤可以参照上述步骤S100‑步骤S700。E0中的数据也可以是经过本发明中的异常数据的识别方法处理后的数据。
[0102] 步骤S320:确定E0中被标记为异常状态的历史数据均值的数量Q。
[0103] 步骤S330:当Q>K1时,更换第一历史周期对应的时段,其中,K1为第一预设阈值。
[0104] 本实施例中,主要是对B0的确定方法,当第一初始数据集中存在太多的异常状态的历史数据均值时,即可认为选取的第一初始数据集的参照性较差,需要重新选择新的第一初始数据集,具体的,可以通过更换第一历史周期对应的时段来实现,如原来的第一历史周期对应的时段可以为前7天内的数据,而新的第一历史周期对应的时段可以为前8‑14天之间的数据。由此来更换E0中的数据。K1根据实际的情况进行设置。
[0105] 在本发明一种可能的实施例中,在步骤S320:确定E0中被标记为异常状态的历史数据均值的数量Q之后,方法还包括:
[0106] 步骤S340:当Q≤K1时,将E0确定为B0。
[0107] 本实施例中,当第一初始数据集中存在较少的异常状态的历史数据均值时,即可将第一初始数据集确定为B0。
[0108] 在本发明一种可能的实施例中,步骤S300:获取目标RTU在第一历史周期内对应的多个检测时间窗口的历史数据均值集B0,包括:
[0109] 步骤S301:获取目标RTU在第一历史周期内的第二初始数据集F0={F01,…,F0j,…,F0z},F0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据大小列表,z为第一历史周期内的检测时间窗口的总数量。
[0110] 步骤S302:获取P1j和P2j,P1j为F0中第j个历史数据大小列表对应的第一比例值,P2j为F0中第j个历史数据大小列表对应的第二比例值,P1j和P2j满足如下条件:
[0111] P1j=F0jmax/Avg(F0j);
[0112] P2j=Avg(F0j)/F0jmin;
[0113] 其中,F0jmax和F0jmin分别为F0j中的数据最大值及数据最小值,Avg(F0j)为F0j中的数据均值。
[0114] 步骤S303:当P1j>K2或P2j>K3时,在F0中去除F0j。K2为第二预设阈值,K3为第三预设阈值。
[0115] P1j和P2j分别用于表示每一个历史数据大小列表中的最大值和最小值与平均数的偏离程度,如果P1j或P2j所表示的偏离程度超过对应的阈值K2、K3时,则认为该历史数据大小列表的参照性较差不符合使用要求,将其删除。由此,可以去除掉第二初始数据集中不符合使用要求的噪声数据。其中,K2、K3根据实际的情况进行设置。
[0116] 步骤S304:根据F0中剩余的历史数据大小列表,确定第二数据均值集G0={G01,…,G0v,…,G0y},其中,G0v是指G0中第v个历史数据大小列表对应的数据均值,y为G0内的数据均值的总数量,y≤z。
[0117] 步骤S305:将G0确定为B0。
[0118] 本实施例中通过对每一个历史数据大小列表中的最大值和最小值与平均数的偏离程度进行判定,可以去除掉第二初始数据集中不符合使用要求的噪声数据,由此,提高G0中的数据的参考价值,同时也提高了由G0确定的B0中的数据的准确度,进而进一步的,提高了本发明中异常数据的识别方法的准确率。
[0119] 根据本发明的第二个方面,如图2所示,提供了一种异常数据的识别装置,包括:
[0120] 第一获取模块,用于获取目标RTU在当前的检测时间窗口内的数据集A={A1,…,Ai,…,Am},其中,Ai是指在检测时间窗口内目标RTU上的传感器采集周围环境所产生的第i个数据的大小,m为目标RTU在检测时间窗口内产生的数据总数量。
[0121] 第一确定模块,用于根据A,确定A对应的数据均值A0,A0符合如下条件:
[0122] A0=∑mi=1Ai/m;
[0123] 第二获取模块,用于获取目标RTU在第一历史周期内对应的多个检测时间窗口的历史数据均值集B0={B01,…,B0j,…,B0n},B0j是指第一历史周期内第j个检测时间窗口内目标RTU对应的历史数据均值,n为第一历史周期内检测时间窗口的总数量,其中,第一历史周期是指在时间上早于当前的检测时间窗口的任一时段。
[0124] 第三获取模块,用于获取最大历史数据均值B0max和最小历史数据均值B0min,其中,B0max为B0中的目标最大值,B0min为B0中的目标最小值。
[0125] 判定模块,用于当A0>B0max或者A0<B0min时,触发第二确定模块。
[0126] 第二确定模块,用于响应于判定模块的触发执行异常标记环节,异常标记环节包括:根据B0、B0max及B0min,确定正常浮动区间[D0min,D0max],其中,D0min和D0max满足如下条件:
[0127] D0min=B0min‑Avg(B0)×[2B0min‑Avg(B0)]/B0min;
[0128] D0max=B0max+Avg(B0)×[2Avg(B0)‑B0max]/B0max;
[0129] 其中,Avg()为预设的均值处理函数;
[0130] 标记模块,用于当A0>D0max或者A0<D0min时,将A对应的目标RTU的上传数据标记为异常状态。
[0131] 根据本发明的第三个方面,提供了一种非瞬时性计算机可读存储介质,可读存储介质存储有计算机程序,计算机程序被处理器执行时实现的一种异常数据的识别方法。
[0132] 根据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现的异常数据的识别方法。
[0133] 以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。