监测数据在线清洗的方法和设备与流程

文档序号:17537218发布日期:2019-04-29 14:07阅读:629来源:国知局
监测数据在线清洗的方法和设备与流程

本发明涉及数据处理领域,尤指一种监测数据在线清洗的方法和设备。



背景技术:

中国近几年发展起来的物联网、互联网等产业背后是海量数据的支持与先进数据分析技术的发展。然而,这些产业在某些传统行业(例如,供水、供电行业)的应用及对企业管理模式的影响速度却没有这些技术本身发展的那样迅速,甚至还存在着较大的距离。

在线监测数据反映系统的运行状况,是开展复杂系统(例如供水管网、电网)智能管理的依据,对各类数据的实时监管能力直接影响到开展系统智能化管理的成败。然而,多数传统行业的在线监测管理系统仅仅是传统意义上的scada(supervisorycontrolanddataacquisition,数据采集与监视控制)系统,主要有数据的采集、存储、展示、报表和曲线查询等功能。对于监测过程中出现的数据重复、数据缺失以及数据异常等问题,传统的scada系统都不能对其进行处理,直接把原始数据存储进入数据库。数据质量的失控对后续的数据分析与应用造成了极大障碍。

近年来,众多行业已经逐步重视起数据的质量控制,开发了针对图像数据、保单分红数据、医疗数据以及风力机组运行数据等数据的清洗方法。但是,相关技术中,大部分只是针对数据重复等单一问题进行清洗,并不能满足对数据进行全面的处理的需要。



技术实现要素:

为了解决上述技术问题,本发明提供了一种监测数据在线清洗的方法和设备。

为了达到本发明目的,本发明提供了一种监测数据在线清洗的方法,包括:

根据历史监测数据构建参照数据集和参照标准分数z-score序列;

获取在线监测数据,对所述在线监测数据进行清洗操作,所述清洗操作包括如下至少之一:去除所述在线监测数据中的重复数据、根据参照数据集和参照z-score序列对所述在线监测数据中的缺失数据进行估计和填补、根据参照数据集和参照z-score序列对所述在线监测数据中的异常数据进行识别;

存储清洗后的在线监测数据。

可选地,所述根据历史监测数据构建参照数据集和参照z-score序列,包括:

为所述历史监测数据添加时间标识属性,所述时间标识属性表示监测数据对应于一天中第i个时刻,其中i为整数,范围是1~g,g为每天的采样个数;

按照所述时间标识属性,根据所述历史监测数据生成g个第一向量vi,所述第一向量vi代表p天中所有第i个时刻的数据,使用每个第一向量中所有非空数据的均值填补相应的第一向量中的空值;p为所述历史监测数据的天数;

删除所述第一向量vi中的异常数据,得到第二向量wi,所述第二向量wi中的元素构成参照数据集;

计算所述第二向量wi的均值μi和标准差σi,根据所述均值μi和标准差σi对每个第二向量wi进行z-score标准化操作,选取标准化操作后得到的每个向量中的最后一个值,构成含有g个数据的参照z-score序列rz。

可选地,所述删除所述第一向量vi中的异常数据,包括:

计算第一向量vi中所有数据的上四分位数q3、下四分位数q1和四分位距iqr,从而确定数据的上限u和下限l,删除超出上下限的异常数据;

其中,iqr=q3-q1,上限u=q3+1.5iqr,下限l=q1-1.5iqr。

可选地,所述为所述历史监测数据添加时间标识属性之前,还包括:

从数据库中获取m天的历史数据作为历史监测数据,m为正整数;

去除所述历史监测数据中的重复数据;

标记所述历史监测数据中的空值;

计算所述历史监测数据中每天数据的空值比例,在所述空值比例超过空值比例阈值lm时,则删除该天的数据,得到剩余p天的历史监测数据。

可选地,所述去除所述历史监测数据中的重复数据,包括:

去除时间戳有重复的历史监测数据,使所有历史监测数据只对应唯一的时间戳。

可选地,所述标记所述历史监测数据中的空值,包括:

根据历史监测数据的时间戳的最大值和最小值构建完整的时间戳序列,将去除重复数据后的历史监测数据对应的原时间戳序列与完整的时间戳序列进行比对,在所述历史监测数据中,将原时间戳序列中缺失的时间戳对应的数据标记为空值。

可选地,所述标记所述历史监测数据中的空值之后,所述方法还包括:

计算所述空值的数量占全部所述历史监测数据的比例f,在f小于空值数量阈值lf时,在所述数据库中另外获取n天的历史数据加入所述历史监测数据中,重新去除所述历史监测数据中的重复数据,以及标记所述历史监测数据中的空值,其中,n为正整数。

可选地,所述去除所述在线监测数据中的重复数据,包括执行如下至少之一的操作:

在确定当前时刻的在线监测数据的时间戳与前一时刻的在线监测数据的时间戳相同时,将所述当前时刻的在线监测数据的数值置为空;

在确定当前时刻同时出现了多个数据时,将所述多个数据的平均值作为所述当前时刻的在线监测数据的数值。

可选地,所述根据参照数据集和参照z-score序列对所述在线监测数据中的缺失数据进行估计和填补,包括:

在当前时刻的在线监测数据为空时,计算参照z-score序列rz中,后k个值的均值μk作为该当前时刻的z-score值,根据所述参照数据集中第二向量wi的均值μi和标准差σi估计该当前时刻的真实值x’,使用所述真实值x’进行填补,其中

x′=μkσi+μi,k为小于g的整数,i为当前时刻对应的时间标识。

可选地,所述根据参照数据集和参照z-score序列对所述在线监测数据中的异常数据进行识别,包括:

在当前时刻的在线监测数据不为空时,根据所述参照数据集中第二向量wi的均值μi和标准差σi计算当前时刻的在线监测数据x的z-score值z:

i为当前时刻对应的时间标识;

根据参照z-score序列rz的均值μz和标准差σz计算z的z-score值z’:

通过将z’与预设的异常值阈值进行比较,识别当前时刻的在线监测数据是否是异常数据。

可选地,在识别当前时刻的在线监测数据是异常数据时,所述方法还包括:

在所述当前时刻的前t个时刻的在线监测数据是异常数据的比例ft小于异常比例阈值lt时,估计当前时刻的真实值x’,使用所述真实值x’替换所述异常数据,其中,t为正整数;

在所述当前时刻的前t个时刻的在线监测数据是异常数据的比例ft大于等于异常比例阈值lt时,保留所述异常数据。

可选地,所述对所述在线监测数据进行清洗操作之后,还包括:根据所述在线监测数据的类型生成清洗操作代码;

在存储清洗后的在线监测数据时,还存储所述清洗操作代码。

可选地,所述清洗操作代码表示所述在线监测数据为如下状态中的至少之一:

无异常、数据缺失、单个异常值、连续异常值。

可选地,所述方法还包括:

根据所述清洗操作代码确定异常事件。

本发明还提供一种监测数据在线清洗的设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述监测数据在线清洗的方法。

本发明实施例包括:根据历史监测数据构建参照数据集和参照标准分数z-score序列;获取在线监测数据,对所述在线监测数据进行清洗操作,所述清洗操作包括如下至少之一:去除所述在线监测数据中的重复数据、根据参照数据集和参照z-score序列对所述在线监测数据中的缺失数据进行估计和填补、根据参照数据集和参照z-score序列对所述在线监测数据中的异常数据进行识别;存储清洗后的在线监测数据。通过本发明实施例,可有效控制监测数据的数据质量,提升监测数据的可用性。

在本发明的一实施例中,仅对单个出现的异常数据(数据噪声)进行了替换,保留了可能代表真实异常事件的连续异常数据,极大限度地保证了数据的真实性。

在本发明的一实施例中,进行数据清洗的同时还生成了清洗操作代码,这些代码可以为后续的异常事件甄别提供依据。例如,在较长的一段时间内,连续出现了数据缺失的情况,则可能发生了监测设备或通讯系统的故障。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例的监测数据在线清洗的方法的流程图;

图2为本发明实施例的步骤101的流程图;

图3为本发明实施例的步骤201之前的流程图;

图4为本发明实施例的根据参照数据集和参照z-score序列对所述在线监测数据中的异常数据进行识别的流程图;

图5为本发明应用实例的标记历史数据中空值的示意图;

图6为本发明应用实例的参照数据集以及参照z-score序列的构建过程的示意图;

图7为本发明应用实例的缺失值估计与填补以及异常值替换的示意图;

图8为本发明应用实例的异常值识别的示意图

图9为本发明实施例的监测数据在线清洗的装置的示意图;

图10为本发明实施例的监测数据在线清洗的设备的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示,本发明实施例的监测数据在线清洗的方法,包括如下步骤:

步骤101,根据历史监测数据构建参照数据集和参照z-score(标准分数)序列。

步骤102,获取在线监测数据,对所述在线监测数据进行清洗操作,所述清洗操作包括如下至少之一:去除所述在线监测数据中的重复数据、根据参照数据集和参照z-score序列对所述在线监测数据中的缺失数据进行估计和填补、根据参照数据集和参照z-score序列对所述在线监测数据中的异常数据进行识别。

步骤103,存储清洗后的在线监测数据。

通过本发明实施例,可有效控制监测数据的数据质量,提升监测数据的可用性。

如图2所示,在一实施例中,所述步骤101包括:

步骤201,为所述历史监测数据添加时间标识(timeofday)属性,所述timeofday属性表示监测数据对应于一天中第i个时刻,其中i=1,2,...,g,g为每天的采样个数,g与数据的采集间隔t有关,g=1440/t。

步骤202,按照所述timeofday属性,根据所述历史监测数据生成g个第一向量vi(i=1,2,...,g),所述第一向量vi代表p天中所有第i个时刻的数据,使用每个第一向量中所有非空数据的均值填补相应的第一向量中的空值;p为所述历史监测数据的天数。

步骤203,删除所述第一向量vi(i=1,2,...,g)中的异常数据,得到第二向量wi,所述第二向量wi中的元素构成参照数据集。

其中,计算第一向量vi(i=1,2,...,g)中所有数据的上/下四分位数q3/q1和四分位距iqr(iqr=q3-q1),从而确定数据的上/下限(正常数据的范围),其中上限u=q3+1.5iqr,下限l=q1-1.5iqr数据。删除超出上下限的异常数据后,向量记为wi,每个向量元素的个数记为hi,所有向量共同构成参照数据集。

步骤204,计算所述第二向量wi的均值μi和标准差σi(i=1,2,...,g),根据所述均值μi和标准差σi对每个第二向量wi进行z-score标准化操作,选取标准化操作后得到的每个向量中的最后一个值(即第hi个值),构成含有g个数据的参照z-score序列rz。

其中,z-score值的计算方法为:

其中,j=1,2,…,hi,i=1,2,...,g,wi,j代表向量wi中的第j个元素。

如图3所示,在一实施例中,所述步骤201之前,还包括:

步骤301,从数据库中获取m天的历史数据作为历史监测数据,m为正整数。

步骤302,去除所述历史监测数据中的重复数据;其中,可以去除时间戳有重复的历史监测数据,使所有历史监测数据只对应唯一的时间戳。

步骤303,标记所述历史监测数据中的空值。

其中,根据历史监测数据的时间戳的最大值和最小值构建完整的时间戳序列,将去除重复数据后的历史监测数据对应的原时间戳序列与完整的时间戳序列进行比对,在所述历史监测数据中,将原时间戳序列中缺失的时间戳对应的数据标记为空值。步骤304,计算所述历史监测数据中每天数据的空值比例,在所述空值比例超过空值比例阈值lm时,则删除该天的数据,得到剩余p天的历史监测数据。

在一实施例中,步骤303之后,还包括:

计算所述空值的数量占全部所述历史监测数据的比例f,在f小于空值数量阈值lf时,在所述数据库中另外获取n天的历史数据加入所述历史监测数据中,重新去除所述历史监测数据中的重复数据,以及标记所述历史监测数据中的空值,其中,n为正整数。

在一实施例中,所述去除所述在线监测数据中的重复数据,包括执行如下至少之一的操作:

在确定当前时刻的在线监测数据的时间戳与前一时刻的在线监测数据的时间戳相同时,将所述当前时刻的在线监测数据的数值置为空;

在确定当前时刻同时出现了多个数据时,将所述多个数据的平均值作为所述当前时刻的在线监测数据的数值。

在一实施例中,所述根据参照数据集和参照z-score序列对所述在线监测数据中的缺失数据进行估计和填补,包括:

在当前时刻的在线监测数据为空时,计算参照z-score序列rz中,后k个值的均值μk作为该当前时刻的z-score值,根据所述第二向量wi的均值μi和标准差σi估计该当前时刻的真实值x’,使用所述真实值x’进行填补,其中

x′=μkσi+μi(2),

k为小于g的整数,例如k取g/24,对缺失数据进行估计和填补时使用的第二向量wi的均值μi和标准差σi中的i为当前时刻对应的时间标识,也就是说,在进行缺失数据估计和填补时,确定当前时刻对应时间标识,根据当前时刻对应时间标识确定相应的第二向量wi的均值μi和标准差σi。

如图4所示,在一实施例中,所述根据参照数据集和参照z-score序列对所述在线监测数据中的异常数据进行识别,包括:

步骤401,在当前时刻的在线监测数据不为空时,根据第二向量wi的均值μi和标准差σi计算当前时刻的在线监测数据x的z-score值z:

对异常数据进行识别时使用的第二向量wi的均值μi和标准差σi中的i为当前时刻对应的时间标识,也就是说,在进行异常数据进行识别时,确定当前时刻对应时间标识,根据当前时刻对应时间标识确定相应的第二向量wi的均值μi和标准差σi。

步骤402,根据参照z-score序列rz的均值μz和标准差σz计算z的z-score值z’:

步骤403,通过将z’与预设的异常值阈值进行比较,识别当前时刻的在线监测数据是否是异常数据。

例如,设定异常值阈值h,若z’大于h或小于-h,则认为当前时刻的数据x异常。

在一实施例中,在识别当前时刻的在线监测数据是异常数据时,所述方法还包括:

在所述当前时刻的前t个时刻的在线监测数据是异常数据的比例ft小于异常比例阈值lt时,估计当前时刻的真实值x’,使用所述真实值x’替换所述异常数据,其中,t为正整数;

在所述当前时刻的前t个时刻的在线监测数据是异常数据的比例ft大于等于异常比例阈值lt时,保留所述异常数据。

在本实施例中,仅对单个出现的异常数据(数据噪声)进行了替换,保留了可能代表真实异常事件的连续异常数据,极大限度地保证了数据的真实性。

在一实施例中,根据所述在线监测数据,更新所述参照数据集和参照z-score序列。

在一实施例中,所述对所述在线监测数据进行清洗操作之后,还包括:根据所述在线监测数据的类型生成清洗操作代码;

在存储清洗后的在线监测数据时,还存储所述清洗操作代码。

例如,清洗操作代码可以表示无异常、数据缺失、单个异常值、连续异常值等。

在一实施例中,所述方法还包括:根据所述清洗操作代码确定异常事件。

在本发明的一实施例中,进行数据清洗的同时还生成了清洗操作代码,这些代码可以为后续的异常事件甄别提供依据。例如,在较长的一段时间内,连续出现了数据缺失的情况,则可能发生了监测设备或通讯系统的故障。

本发明实施例可应用于供水管网、电网等需要实时监控,且数据有一定时间规律(例如白天和晚上、冬天和夏天有明显不同)的数据监控领域。

下面以一应用实例进行说明

在本应用实例中,监测数据在线清洗的方法包括如下步骤:

步骤1,利用数据库的历史监测数据,构建参照数据集和参照z-score序列,可包括:

1.1、在数据库中调取m天的历史数据,m通常取60;

1.2、检查历史数据的时间戳,删除重复数据;

1.3、标记历史数据中的空值。根据历史数据时间戳的最大值和最小值构建完整的时间戳序列,将去重后的原时间戳序列与完整时间戳序列进行比对,若原时间序列缺失某个时间戳,则该时刻没有数据,标记为空值;

1.4、计算空值数量占全部数据的比例f,f小于设定阈值lf时,在数据库中另外调取n天的数据,对m+n天的数据重复1.2和1.3两个步骤,lf通常取0.1,n通常取6;

1.5、以天为单位,计算每天数据的空值比例,空值比例超过lm时,则删除该天的数据,删除后剩余p天的数据,lm通常取0.5;

1.6、给所有的数据添加timeofday属性,该属性表示监测数据对应于一天中第i个时刻,其中i=1,2,...,g,g代表每日的采样个数,g与数据的采集间隔t有关,g=1440/t,t通常为1,5,10或15;

1.7、按照timeofday属性,将数据组建为g个向量,向量vi(i=1,2,...,g)代表p天中所有第i个时刻的数据,同时使用各向量中所有非空数据的均值填补相应向量中的空值;

1.8、删除向量vi(i=1,2,...,g)中的异常数据,构建参照数据集。

其中,计算向量中所有数据的上/下四分位数q3/q1和四分位距iqr(iqr=q3-q1),从而确定数据的上/下限(正常数据的范围),其中上限u=q3+1.5iqr,下限l=q1-1.5iqr数据。删除超出上下限的异常数据后,向量记为wi,每个向量元素的个数记为hi,所有向量共同构成参照数据集;

1.9、构建参照z-score序列。

其中,计算向量wi的均值μi和标准差σi(i=1,2,...,g),然后对每个向量进行z-score标准化操作,最终选取标准化后每个向量中的最后一个值(即第hi个值),构成含有g个数据的参照z-score序列rz。其中z-score值的计算方法为:

其中,j=1,2,…,hi,i=1,2,...,g,wi,j代表向量wi中的第j个元素。

步骤2,处理在线监测数据的时间戳,去除重复数据,可包括:

2.1、判断当前时刻监测数据的时间戳是否与前一时刻时间戳相同,如果是,则将当前数值置为空,否则不做处理;

2.2、判断当前时刻是否同时出现多个数据,若是,则将这些数据的平均值作为当前时刻的值。

步骤3,判断在线监测数据的状态,进行缺失值的估计与填补或者异常值的识别与替换,并生成清洗操作代码,可包括:

3.1、若当前时刻数据为空,进行缺失值的估计与填补并生成清洗操作代码“1”。计算rz的中后k个值的均值μk作为该时刻的z-score值,同时利用wi的均值μi和标准差σi估计该时刻的真实值x’,计算公式为:

x'=μkσi+μi(6)

其中k通常取g/24;

3.2、若当前时刻数据不为空,利用向量wi的均值μi和标准差σi计算当前时刻数据x的z-score值z:

3.3、利用参照序列rz的均值μz和标准差σz计算z的z-score值z’:

3.4、设定阈值h,进行异常值的识别与替换。

其中,若z’大于h或小于-h,则认为当前时刻的数据x异常,同时判断前t个时刻的监测数据是异常值的比例ft是否小于lt,如果小于lt则使用式2估计当前时刻的真实值x’,生成清洗操作代码“2”(单个异常值),否则保留原值x并生成清洗操作代码“3”(连续异常值);若z’不大于h且不小于-h,保留x的值并生成清洗操作代码“0”(无异常)。

其中,阈值h通常取4;t与lt的取值则与g(t)有关,当g≤144(t≥10)时,t=lt=1,当g=288(t=5)时,t=3,lt=2/3,当g=1440(t=1)时,t=5,lt=3/5。

步骤4,存储清洗后的数据以及清洗操作代码。

在以下实施方式中,以供水管网监测数据为例,利用matlab9.1作为泄漏事件诊断方法的开发平台,通过在m文件编辑器中编写相应的代码即可实现对管网监测数据的读取、存储和分析。本实施例利用matlab9.1强大的计算能力和丰富的内置函数,提高了开发效率,缩短了开发时间。

具体地,作为示例,选取某一真实管网的水量数据进行实施。水量数据每15min采集并传输一次,即t=15,g=96。选取4个月的历史数据(2016年4月1日到2016年7月31日)用以实施本发明实施例。使用前60天的数据构建参照数据集和参照z-score序列,使用剩余的数据用于在线数据清洗。

根据步骤1.2删除60天历史数据中的重复数据后,按照步骤1.3标记历史数据中的空值,如图5所示,4月3日的数据存在缺失的问题,经过步骤1.3的操作后,相关数据标记为空值(nan)。

选取的历史数据中共有两天的数据全部缺失(4月3日和4月7日),根据步骤1.4,计算空值占全部数据的比例f=0.03,该值小于阈值lf(0.1),因此无需再调取另外6天的数据。由于4月3日和4月7日的数据全部缺失,超过s15中设定的阈值lm(0.5),因此将这两天的数据全部删除,即p=58。

根据步骤1.6对58天的数据添加timeofday属性,表1示出了部分数据添加新属性后的效果。随后根据步骤1.7构建96个向量,由于这些向量中不存在空值,无需进行缺失值的填补操作。

表1添加timeofday属性的示例

图6示出了步骤1.8和1.9中参照数据集和参照z-score序列的构建过程。对96个向量分别计算其上/下四分位数(q3/q1)、四分位距(iqr)和上/下限(u/l),图6的第二个表格示出了这些统计量;图6第一个表格中白色底纹的单元格表示相应的数据超出了上/下限,为异常值,删除这些异常值后便可构建起参照数据集。图6第三个表格是参照数据集中的96个向量各自的均值和标准差,以及由均值和标准差计算得到参照z-score序列。

根据步骤2处理剩余62天数据的时间戳,未发现重复数据的情况。

图7示出了步骤3.1中缺失值估计与填补的示意图,图中假设23:45的值是空值,首先计算参照z-score序列中后4(k=96/24=4)个值的均值μk,然后使用公式2根据参照数据集第96个向量中所有数据的均值和标准差反推该时刻的值x’,该值将作为清洗后的数据,清洗操作代码记为“1”。

如果当前时刻的数据不为空,则要识别该数据是否异常。图8示出了步骤3.2,3.3和3.4所述的异常值识别过程,图中假设当前时刻为23:45,其值为x,首先使用公式3根据参照数据集第96个向量中所有数据的均值和标准差计算x的z-score值z,然后使用公式4根据参照z-score序列的均值和标准差计算z的z-score值z’,最后根据步骤3.4判断z’是否处于正常值的范围之内。特别地,此时需要判断前一时刻(即23:30)的判定结果是否也为异常值(即查看23:30相应的清洗操作代码是否为“2”或“3”),如果是,生成清洗操作代码“3”,表示出现了连续的异常数据,清洗后的数据为原始值x,否则生成清洗操作代码“2”,表示出现了单个的异常数据,需按照附图7所示的步骤估计此时刻的真实值x’来替换x,以作为清洗后的数据。

表2示出了部分数据的清洗结果,其中包括了空值、异常值等多种情况,其中对缺失值进行了填补(清洗操作代码为“1”),对单个出现的异常值进行了替换(清洗操作代码为“2”),并保留了连续异常值的原始数值(清洗操作代码为“3”)。表中所示的清洗后的数据以及清洗操作代码将按照步骤4所述进行存储。

表2部分数据的清洗结果

如图9所示,本发明实施例还提供一种监测数据在线清洗的装置,包括:

构建模块91,用于根据历史监测数据构建参照数据集和参照标准分数z-score序列;

清洗模块92,用于获取在线监测数据,对所述在线监测数据进行清洗操作,所述清洗操作包括如下至少之一:去除所述在线监测数据中的重复数据、根据参照数据集和参照z-score序列对所述在线监测数据中的缺失数据进行估计和填补、根据参照数据集和参照z-score序列对所述在线监测数据中的异常数据进行识别;

存储模块93,用于存储清洗后的在线监测数据。

在一实施例中,所述构建模块91,用于:

为所述历史监测数据添加时间标识属性,所述时间标识属性表示监测数据对应于一天中第i个时刻,其中i为整数,范围是1~g,g为每天的采样个数;

按照所述时间标识属性,根据所述历史监测数据生成g个第一向量vi,所述第一向量vi代表p天中所有第i个时刻的数据,使用每个第一向量中所有非空数据的均值填补相应的第一向量中的空值;p为所述历史监测数据的天数;

删除所述第一向量vi中的异常数据,得到第二向量wi,所述第二向量wi中的元素构成参照数据集;

计算所述第二向量wi的均值μi和标准差σi,根据所述均值μi和标准差σi对每个第二向量wi进行z-score标准化操作,选取标准化操作后得到的每个向量中的最后一个值,构成含有g个数据的参照z-score序列rz。

在一实施例中,所述构建模块91,用于:

计算第一向量vi中所有数据的上四分位数q3、下四分位数q1和四分位距iqr,从而确定数据的上限u和下限l,删除超出上下限的异常数据;

其中,iqr=q3-q1,上限u=q3+1.5iqr,下限l=q1-1.5iqr。

在一实施例中,所述构建模块91,还用于:

在为所述历史监测数据添加时间标识属性之前,从数据库中获取m天的历史数据作为历史监测数据,m为正整数;

去除所述历史监测数据中的重复数据;

标记所述历史监测数据中的空值;

计算所述历史监测数据中每天数据的空值比例,在所述空值比例超过空值比例阈值lm时,则删除该天的数据,得到剩余p天的历史监测数据。

在一实施例中,所述构建模块91,用于:

去除时间戳有重复的历史监测数据,使所有历史监测数据只对应唯一的时间戳。

在一实施例中,所述构建模块91,用于:

根据历史监测数据的时间戳的最大值和最小值构建完整的时间戳序列,将去除重复数据后的历史监测数据对应的原时间戳序列与完整的时间戳序列进行比对,在所述历史监测数据中,将原时间戳序列中缺失的时间戳对应的数据标记为空值。

在一实施例中,所述构建模块91,还用于:

在标记所述历史监测数据中的空值之后,计算所述空值的数量占全部所述历史监测数据的比例f,在f小于空值数量阈值lf时,在所述数据库中另外获取n天的历史数据加入所述历史监测数据中,重新去除所述历史监测数据中的重复数据,以及标记所述历史监测数据中的空值,其中,n为正整数。

在一实施例中,所述清洗模块92,用于执行如下至少之一的操作:

在确定当前时刻的在线监测数据的时间戳与前一时刻的在线监测数据的时间戳相同时,将所述当前时刻的在线监测数据的数值置为空;

在确定当前时刻同时出现了多个数据时,将所述多个数据的平均值作为所述当前时刻的在线监测数据的数值。

在一实施例中,所述清洗模块92,用于:

在当前时刻的在线监测数据为空时,计算参照z-score序列rz中,后k个值的均值μk作为该当前时刻的z-score值,根据所述第二向量wi的均值μi和标准差σi估计该当前时刻的真实值x’,使用所述真实值x’进行填补,其中

x′=μkσi+μi,k为小于g的整数,i为当前时刻对应的时间标识。

在一实施例中,所述清洗模块92,用于:

在当前时刻的在线监测数据不为空时,根据第二向量wi的均值μi和标准差σi计算当前时刻的在线监测数据x的z-score值z:

i为当前时刻对应的时间标识;

根据参照z-score序列rz的均值μz和标准差σz计算z的z-score值z’:

通过将z’与预设的异常值阈值进行比较,识别当前时刻的在线监测数据是否是异常数据。

在一实施例中,所述清洗模块92,还用于在识别当前时刻的在线监测数据是异常数据时:

在所述当前时刻的前t个时刻的在线监测数据是异常数据的比例ft小于异常比例阈值lt时,估计当前时刻的真实值x’,使用所述真实值x’替换所述异常数据,其中,t为正整数;

在所述当前时刻的前t个时刻的在线监测数据是异常数据的比例ft大于等于异常比例阈值lt时,保留所述异常数据。

在一实施例中,所述清洗模块92,还用于根据所述在线监测数据的类型生成清洗操作代码;

所述存储模块93还用于:在存储清洗后的在线监测数据时,存储所述清洗操作代码。

在一实施例中,所述清洗操作代码表示所述在线监测数据为如下状态中的至少之一:

无异常、数据缺失、单个异常值、连续异常值。

在一实施例中,所述装置还包括:

确定模块,用于根据所述清洗操作代码确定异常事件。

如图10所示,本发明实施例还提供一种监测数据在线清洗的设备,包括:存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序,所述处理器1002执行所述程序时实现所述监测数据在线清洗的方法。

本发明实施例还提出一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述监测数据在线清洗的方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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