首页> 中国专利> 一种数据库异常事件缺失数据填充方法及系统

一种数据库异常事件缺失数据填充方法及系统

摘要

本发明公开了一种数据库异常事件缺失数据填充方法及系统,所述方法包括:实时接收数据流并进行监测,基于预设的异常事件判断条件判断是否有异常事件发生;当发生异常事件时,将该异常事件对应的数据进行存储,每一个异常事件单独存储;在每一个异常事件中均维护历史数据窗口,在进行每一处缺失数据预测前,均滑动至该缺失数据之前,基于历史数据窗口相应的样本点训练分层时序记忆网络,得到该处缺失数据的预测值。本发明基于数据的短期分布状态并预测缺失数据,精确度更高。

著录项

  • 公开/公告号CN110309136A

    专利类型发明专利

  • 公开/公告日2019-10-08

    原文格式PDF

  • 申请/专利权人 山东大学;

    申请/专利号CN201910620762.4

  • 发明设计人 崔立真;房志坚;郭伟;鹿旭东;

    申请日2019-07-10

  • 分类号G06F16/215(20190101);G06F16/2455(20190101);G06F16/2458(20190101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构37221 济南圣达知识产权代理有限公司;

  • 代理人黄海丽

  • 地址 250100 山东省济南市历城区山大南路27号

  • 入库时间 2024-02-19 13:58:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-04

    授权

    授权

  • 2019-11-01

    实质审查的生效 IPC(主分类):G06F16/215 申请日:20190710

    实质审查的生效

  • 2019-10-08

    公开

    公开

说明书

技术领域

本发明属于大数据领域,尤其涉及一种数据库异常事件缺失数据填充方法及系统。

背景技术

现代超大规模数据库领域技术的发展,使得大数据背景下的各个行业数据朝着更高的时间采样率和更完整的数据集方向发展成为可能,也给各领域的科学发展注入了新的活力。其中,实时大数据分析技术对规模巨大的实时产生数据进行分析,利用深度学习等数据处理技术快速完成分析,达到近似实时的效果,更及时地反应数据的价值和意义。如在时序天文领域中,天文学家使用实时天文数据处理系统对相机阵采集的星星数据实时分析,实现异常光变现象的预警,用于探知宇宙的变化和对已有物理模型的验证,进而形成重大的天文科学发现。

在现有的实时超大规模数据处理方法中,通常根据实体的连续变化规律和不同时刻的数值记录对数据进行划分,把同一实体基于某一属性的一次完整的变化过程定义为一个事件。这种分析方法在实践场景中往往会受到一些限制:①受数据采集设备运行中断、数据通道阻塞等影响,实时数据采集出现间断,连续的事件一分为二,造成异常判定误差;②实时数据采集间断造成数据丢失,事件完整性降低,给数据处理系统原有的分析过程带来困难,特别是高信噪比的关键数据丢失,大幅影响数据分析的处理结果;③依靠行业专家的领域知识对数据间断人工分析,处理时间较为滞后,对稍纵即逝的实时数据现象难以精确捕捉。现有的缺失数据填充方法一般用于处理离线数据集,难以实时监测数据流并迅速输出填充结果;另一些基于聚类的填充方法利用整个数据集对缺失值进行预测,计算过程具有一定的时延。

发明内容

为克服上述现有技术的不足,本发明提供了一种数据库异常事件缺失数据填充方法及系统,基于特征属性自动区分异常事件,并将每个事件分别存储,在同一事件范围内,基于历史数据对缺失数据进行预测。

为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:

一种数据库异常事件缺失数据填充方法,包括如下步骤:

实时接收数据流并进行监测,基于预设的异常事件判断条件判断是否有异常事件发生;

当发生异常事件时,将该异常事件对应的数据进行存储,每一个异常事件单独存储;

在每一个异常事件中均维护两个滑动窗口:历史数据窗口和预测窗口;在进行每一处缺失数据预测前,均滑动至当前缺失数据之前,并且,历史数据窗口的尺度大于预测窗口;

对于每一处缺失数据,基于历史数据窗口相应的样本点训练分层时序记忆网络,得到该处缺失数据相应的预测模型;将预测窗口相应的样本点作为该预测模型的输入,得到缺失数据的预测值;将预测值写入数据库。

一个或多个实施例提供了一种数据库异常事件缺失数据填充系统,包括:

异常事件判断模块,实时接收数据流并进行监测,基于预设的异常事件判断条件判断是否有异常事件发生;

异常事件存储模块,当发生异常事件时,将该异常事件对应的数据进行存储,每一个异常事件单独存储;

缺失值预测模块,在每一个异常事件中均维护历史数据窗口,在进行每一处缺失数据预测前,均滑动至该缺失数据之前,基于历史数据窗口相应的样本点训练分层时序记忆网络,得到该处缺失数据的预测值。

一个或多个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的数据库异常事件缺失数据填充方法。

一个或多个实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的数据库异常事件缺失数据填充方法。

以上一个或多个技术方案存在以下有益效果:

(1)本发明从实时流数据中识别单位事件并构建二维事件数据链表,使得原始数据集更加完整,同一事件内的各时刻数据形成规则结构,便于时间窗口的建立和间隔缺失数据的填充,缺失值的预测精度更高;

(2)本发明采用了分层时序记忆网络学习缺失值的训练模型,并对预测值进行了可信度估计,填充结果更为可靠;

(3)本发明以时间窗口内每一个时刻历史值的可预测属性作为特征,若某个时间段事件内的触发变量属性值发生变化,但其数值变化较为剧烈(不围绕均值上下波动),则用历史数据均值作为缺失预测值不准确,本方法使用短期窗口的历史数据训练一个保留数据短期趋势的分层记忆网络,使网络输出的缺失数据符合短期变化规律而不受长期历史数据影响,因而预测结果更为准确。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1为本发明一个或多个实施例的一种超大规模数据库缺失数据填充方法及装置总体流程图;

图2为本发明一个或多个实施例的单位事件识别方法流程示意图;

图3为本发明一个或多个实施例的基于分层时序记忆算法的数值预测及填充装置的流程示意图。

具体实施方式

应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

需要注意的是,附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。

在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

名词解释:

链表:链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,操作复杂,但查找一个节点或访问特定编号的节点需要的时间复杂度是O(1)。

分层时序记忆:分层时序记忆(HTM,Hierarchical Temporal Memory)是一种由Jeff Hawkins等人提出的基于人脑皮质结构的神经网络模型,其内部结构为分层的神经元阵列。用于训练网络的数据会先被编码成稀疏表示的向量或矩阵的形式,然后进入网络,经过空间采样(spatial pooling)和时序采样(temporal pooling)等步骤,改变网络内部神经元的激活状态,从而影响网络对于下一个时刻数据的预测值。

分层时序记忆最大的优势在于其学习和预测过程是同时进行的,因此非常适合用于面向高时间分辨率的时间序列分析和数值预测任务。

触发变量:在数据集中作为目标结果和主要计算变量的属性,在实际中,本方法只针对选作触发变量的属性进行预测运算。

归一化变量:为了后续程序数据处理的方便,保证运行时收敛加快,把目标数据经过某种算法的处理限制在一定范围内的方法叫做归一化。在本方法中,使用长期特征均值和方差及短期特征均值计算归一化变量。

阈值:阈的意思是界限,故阈值又叫临界值,是指一个效应能够产生的最低值或最高值。在各门科学领域中广泛使用。对于一个好的阈值的设定,可以得到更为理想的结果。

下面结合附图与实施例对本公开作进一步说明。

实施例一

为了实现上述目的,本实施例提出一种数据库异常事件缺失数据填充的方法。对实时产生的大规模数据流线性分析,根据显著标志属性识别出其中的单位事件,构建历史数据窗口和预测窗口,利用不同时间跨度的历史数据训练分层记忆网络来预测缺失数据值,本实施例以大规模天文数据流为例,异常事件即天文异常现象,在天文数据采样中,由于望远镜头转向或数据通道阻塞等原因可能出现数据缺失。我们的方法目标是首先识别出异常现象内的数据缺失,再计算补充,如图1所示,所述方法具体包括以下步骤:

步骤1:实时接收数据流并进行监测,基于预设的异常事件判断条件判断是否有异常事件发生;

所述超大规模数据流包括时序事件。事件指不同时刻生成,由同一标志符确定、共同描述某一单位不同时刻属性的行数据的集合。例如在天文数据流中某一颗星在同一次天文异常现象过程中若干时刻的采样,由同一星号标记、不同时刻生成,共同记录该星在本次天文现象中的时序属性变化。

本实施例中将区分异常事件的属性特征称为触发变量,触发变量的选取主要考虑在现实应用场景中特征对于事件状态的分析能力,一般选取对事件的状态关联程度较高、不同事件区别能力较为强的属性。比如在天文数据处理领域,我们一般选取星星亮度值作为触发变量。对于模型较为平缓的光变曲线,其在一定长度的时间窗口内的均值随时间的变化几乎不变,而属于不同事件的星星亮度的均值一般会有明显变化,因此光亮度本身作为特征具有足够的区分能力,且用光亮度本身作为特征不需要额外的计算,大大节省了时空开销。例如观测到超新星爆发事件,由于恒星在演化周期末期发生剧烈爆炸,其亮度值在数十秒内发生跃变。

步骤2:当发生异常事件时,将该异常事件对应的数据进行存储,每一个异常事件单独存储;

触发变量相应的属性特征发生缺失时,同时也是待填充特征。在天文场景下,某颗星在发生异常天文事件的过程中产生数据缺失,星的坐标等特征与其他记录的坐标数据相同,不需要计算,待填充的特征为亮度。

对于数据流中的每一个事件,用一个链表来对应记录。在入库过程中检测实时数据流中事件的起始点时刻,建立事件链表(Event Linked List)存储该事件各时刻的瞬时属性,事件起始点作为事件链表的头结点(Head Node),头结点的info部分存储起始点的触发变量数据。对新产生的数据维持监控,依次匹配当前事件和二维链表的头结点数据,如果匹配失败,则新建链表,把二维链表中匹配成功的事件数据连接在事件链表的尾部。头结点存储该事件起始点的触发变量数据。例如,初次检测到某标识符x标记的事件,即在内存中构建链表Linklist。在数据流中再次检测到标识符x,认定t时刻数据与Linklist为同一事件并追加到链表尾部。每一个链表记录一个完整事件的各时刻数据,事件链表就是单位事件的数据组织方式。具体地,监测到异常事件后,对新产生的数据执行以下步骤:

步骤201:匹配当前时刻数据和链表头结点信息;

步骤202:判断当前时刻数据所属的事件是否已经存在,若不存在则根据当前时刻数据新建事件链表;

步骤203:判断事件是否已经完成,其中判断条件应由具体应用确定。本实施例中,判定条件是t时刻出现异常而t+1时刻没有出现异常。

下述步骤即基于事件链表进行缺失值的预测和填充的过程。

步骤3:在每一个异常事件中均维护两个滑动窗口:历史数据窗口和预测窗口;在进行每一处缺失数据预测前,均滑动至当前缺失数据之前,并且,历史数据窗口的尺度大于预测窗口。

具体而言,在缓存单位事件的数组上维护两个不同时间尺度的滑动窗口——历史数据窗口和预测窗口。历史数据窗口存储的数据时间跨度较大,用于统计数据的历史分布;预测窗口存储短期的数据,一般是当前单位事件内、数据缺失位置之前的数据,用于计算数据的短期分布状态并预测缺失数据。历史数据窗口用来训练一个保留数据趋势的分层记忆网络,使网络输出的预测值符合数据的短期变化规律而不受长期数据影响。

历史数据窗口与预测窗口所维护的数据长度由用户定义,本实施例定义历史数据窗口为当前时刻数据点及前L-1个点组成的点集,预测窗口为当前数据点及前S-1个点组成的点集。

步骤4:对于每一处缺失数据,基于历史数据窗口相应的样本点训练分层时序记忆网络,得到该处缺失数据相应的预测值;基于预测窗口相应的样本点对预测值进行可信度验证,若验证通过,将该预测值填充入缺失位置。

对于每一个事件历史窗口中的数据经过编码处理,以二进制向量的形式作为输入进入分层时序记忆网络;

经过空间池化(Spatial Pooling,SP)过程,二进制向量被转化为稀疏分布式代表元。历史数据窗口中每一个时刻的数据作为一个单元柱,不同单元柱形成连接突触。池化过程根据临近单元柱之间的抑制关系,调整SP模型中标准感受野的潜在连接值。

其中,xjxj表示第j个输入数据(神经元)的位置,表示标准感受野的中心输入神经元的位置。γ表示局部感受野的边长(矩形);Zij~U(0,1),即服从均匀分布的一个随机数。

经过参数调整,我们得到稳定的预测模型,同时得到初步的缺失值预测结果。

步骤5:预测验证值与归一化变量;

将得到的预测亮度值归一化为标准正态分布随机变量的亮度值,利用长期特征均值和方差及短期特征均值计算归一化变量与期望值的偏差程度。具体地,所述步骤5具体包括:

步骤5.1:对于预测窗口内每一个样本,算法将该样本时刻的特征与分层时序记忆网络对于该样本时刻的预测值作对比,得到预测缺失数据的可信度:

其中π(xt-1)为分层时序网络对该样本时刻数据预测值的稀疏向量表示形式,α(xt)为该样本时刻实际数据的稀疏向量表示形式,·为向量的内积运算,||α(xt)||0为α(xt)的0范数。st的取值在0和1之间。当预测值与时序记忆网络完全吻合时,st的值为1;当预测值与时序记忆网络之间的差距达到最大时,st的值为0。

步骤5.2:计算历史数据窗口与预测窗口的特征统计向量;

对历史数据窗口内的特征值求均值和方差,对预测窗口内的特征值求均值:

步骤5.3:将预测窗口内的均值从分布中得到的数值归一化为标准正态分布随机变量的数值;

步骤5.4:对归一化分布结果比较阈值,得到较可信的缺失数据预测值;

在利用长期特征均值和方差以及短期特征均值得到归一化变量后,利用长期特征均值和方差及短期特征均值计算归一化变量与期望值的偏差程度。若偏差程度小于设定阈值ε,认为缺失预测值可信。本实施例利用判别函数来计算归一化变量与预测值的偏差程度。我们采用Q函数作为判别函数。将上步骤计算得到的归一化变量Nt作为变量x带入函数。Q函数是标准正态分布的右尾函数,其定义如下:

其中

由于Q函数越小,归一化变量的右偏程度越大,故设定判别准则为当Q函数值大于阈值ε时,认为缺失数据预测值为可信。

上述步骤5.1是算法结果的自我验证,判断预测数据是否可信;步骤5.2-5.4是在现实场景要求下,判断预测数据是否满足使用要求。

步骤6:得到高可信的缺失数据值,与其它基本属性值拼接为完整的一行数据,写入数据库。其中,其它基本属性指没有被作为待填充特征的属性。例如在天文场景中,通过填充方法得到缺失亮度的填充值,我们再把此时刻亮度值和星的星号、坐标、所属天区等其它固有属性组合成一条完整的数据记录,一并写入数据库。

综上所述,本实施例针对在实际超大规模数据库的数据缺失填充中,对实时产生的大规模数据流线性分析,根据显著标志属性识别出其中的单位事件,构建历史数据窗口和预测窗口,利用不同时间跨度的历史数据训练分层记忆网络来预测缺失数据值并作出可信度判定,最终补充缺失数据到数据库中。

实施例二

本实施例的目的是提供一种数据库异常事件缺失数据填充系统。

为了实现上述目的,本实施例提供了一种数据库异常事件缺失数据填充系统,包括:

异常事件判断模块,实时接收数据流并进行监测,基于预设的异常事件判断条件判断是否有异常事件发生;

异常事件存储模块,当发生异常事件时,将该异常事件对应的数据进行存储,每一个异常事件单独存储;

样本点确定模块,在每一个异常事件中均维护两个滑动窗口:历史数据窗口和预测窗口;在进行每一处缺失数据预测前,均滑动至当前缺失数据之前,并且,历史数据窗口的尺度大于预测窗口;

缺失值预测模块,对于每一处缺失数据,基于历史数据窗口相应的样本点训练分层时序记忆网络,得到该处缺失数据相应的预测模型;将预测窗口相应的样本点作为该预测模型的输入,得到缺失数据的预测值;将预测值写入数据库。

实施例三

本实施例的目的是提供一种计算机可读存储介质。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行以下步骤:

实时接收数据流并进行监测,基于预设的异常事件判断条件判断是否有异常事件发生;

当发生异常事件时,将该异常事件对应的数据进行存储,每一个异常事件单独存储;

在每一个异常事件中均维护历史数据窗口,在进行每一处缺失数据预测前,均滑动至该缺失数据之前,基于历史数据窗口相应的样本点训练分层时序记忆网络,得到该处缺失数据的预测值。

实施例四

本实施例的目的是提供一种电子设备。

一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤,包括:

实时接收数据流并进行监测,基于预设的异常事件判断条件判断是否有异常事件发生;

当发生异常事件时,将该异常事件对应的数据进行存储,每一个异常事件单独存储;

在每一个异常事件中均维护历史数据窗口,在进行每一处缺失数据预测前,均滑动至该缺失数据之前,基于历史数据窗口相应的样本点训练分层时序记忆网络,得到该处缺失数据的预测值。

以上实施例二、三和四中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。

以上一个或多个实施例具有以下技术效果:

(1)本发明从实时流数据中识别单位事件并构建二维事件数据链表,使得原始数据集更加完整,同一事件内的各时刻数据形成规则结构,便于时间窗口的建立和间隔缺失数据的填充,缺失值的预测精度更高;

(2)本发明采用了分层时序记忆网络学习缺失值的训练模型,并对预测值进行了可信度估计,填充结果更为可靠;

(3)本发明以时间窗口内每一个时刻历史值的可预测属性作为特征,若某个时间段事件内的触发变量属性值发生变化,但其数值变化较为剧烈(不围绕均值上下波动),则用历史数据均值作为缺失预测值不准确,本方法使用短期窗口的历史数据训练一个保留数据短期趋势的分层记忆网络,使网络输出的缺失数据符合短期变化规律而不受长期历史数据影响,因而预测结果更为准确。

本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号