基于线性自学习网络的缺失值填补方法、存储介质及系统与流程

文档序号:23307210发布日期:2020-12-15 11:37阅读:421来源:国知局
基于线性自学习网络的缺失值填补方法、存储介质及系统与流程

本发明属于数据挖掘技术领域,具体涉及一种基于线性自学习网络的缺失值填补方法、存储介质及系统。



背景技术:

缺失值的现象已广泛出现在现实世界的数据集中,这降低了数据集的质量和可靠性。由于各种原因,例如硬件问题,紧急情况,人为错误等,在许多实际情况下,不可避免的会出现缺失值的现象。一种办法是直接删除不完整的记录,然而这将丢失很多有用的信息。因此,如何填补缺失值已成为一个重要问题。此任务对许多算法至关重要,例如机器学习,深度学习和数据挖掘,不完整数据集中的缺失值会对他们造成很严重的影响。

在实用的数据库中,数据值缺失的情况是不可避免的。造成数据缺失的原因是多方面的,主要有以下几种:一,有些信息被遗漏,可能是因为输入时认为不重要,忘记填写了或对数据理解错误而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、一些人为因素等原因而丢失了;二,有些信息暂时无法获取,例如在申请表数据中,对某些问题的反映依赖于其他问题;三,有些对象的某个或某些属性是不可用的即对这个对象来说,该属性是不存在的,等等。对于数据挖掘来说,缺失值的存在,造成了以下影响:首先,系统丢失了大量的有用信息;其次,系统中所表现出的不确定性更加显著;并且,包含缺失值的数据使挖掘过程陷入混乱,导致不可靠的输出。数据挖掘算法本身更致力于避免数据过分适合所建的模型,这一特性使得它难以通过自身的算法去很好地处理不完整数据。因此,数据的缺失值需要通过专门的方法进行推导、补全等,以减少数据挖掘算法与实际应用间的差距。

近年来,已经有许多缺失值填补算法提出。这些方法大多利用缺失值的完整近邻对缺失值进行填补。近邻数据元组越完整,最终填补的准确性越高。当不完整数据元组可以作为缺失值的近邻数据时,它们将忽视这些不完整的数据元组中的信息。缺失值现象通常发生在现实世界的数据集中,尤其是在时间连续数据集中。在时间连续数据集中,不完整数据元组的近邻取决于它们的时间关系。如此一来,缺失数据的近邻不可避免地包含其他缺失值。另外,聚集缺失值现象导致一些不完整的数据元组有很少甚至没有完整的近邻。以上介绍的已有方法均利用与缺失数据元组较为相似的完整近邻对缺失值进行填补。然而在聚簇缺失情景下,已有方法均面临缺失数据元组的完整近邻不足的弊端,因为与其较为相似的数据元组也包含缺失值,不能作为其完整近邻用于缺失值的填补。此外已有方法针对一条缺失数据元组,只在数据空间中搜索完整近邻,没有考虑已经被填补的缺失近邻。



技术实现要素:

本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于线性自学习网络的缺失值填补方法、存储介质及系统,利用线性自学习网络能够深度挖掘数据内部及相互关系的特点,同时提高填充精度和填充效率。

本发明采用以下技术方案:

基于线性自学习网络的缺失值填补方法,包括以下步骤:

s1、获取没有缺失值的原始时序数据,对原始时序数据进行预处理,以随机概率构造缺失数据集,将新生成的缺失数据集和相对应的原始数据作为新的数据集;

s2、构建基于线性自学习网络模型,利用步骤s1生成的新数据集进行训练;

s3、利用步骤s2训练后的基于线性自学习网络模型,使用反向传播算法进行缺失值填补,将缺失值填补完成后的时间连续完整数据集用于循环神经网络的本质特征与缺失规律的模型训练中。

具体的,步骤s1中,假设填补缺失值xi,j,元组xi-1和元组xi+1组成当前数据元组邻域;将当前元组xi中除xi,j以外的其他属性值添加到当前的数据元组邻域中,以形成xi,j的缺失值邻域,缺失值邻域将用于填补缺失值xi,j。

具体的,步骤s2中,依次计算一个时间步的数据元组上的每个属性值,然后时间窗口移至下一个时间步;当前元组中的每个属性值都有3d-1参数;结果,时间窗口是一组d*(3d-1)个参数的线性网络结构。

进一步的,根据参数集wi,j和缺失值邻域集mvni,j,通过线性网络计算缺失值的填补值yi,j如下:

其中,k表示参数集或缺失值邻域集中的第k个值。

具体的,步骤s3中,将缺失值邻域分为两个不相交的子集:不完整邻域集,由缺失值组成;完整邻域集,由完整值组成;当缺失值邻域中包含有其他缺失值时,通过最小化损失函数来优化参数和缺失值,使用均方误差函数计算损失值li,j;在对缺失值的训练过程中,通过利用完整数据与网络计算得到前向输出值计算损失后,对权重参数和缺失值求导来优化网络权重参数和缺失值;然后为所有缺失值赋初始值,使用反向传播算法在迭代过程中进行优化。

进一步的,损失值li,j为:

li,j=(xi,j-yi,j)2

其中,xi,j为第i个时间步的第j个属性值,yi,j为缺失值邻域。

进一步的,优化网络权重参数和缺失值:

其中,k∈mvn,p∈imvn。

本发明的另一个技术方案是,一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述的方法中的任一方法。

本发明的另一个技术方案是,一种基于线性自学习网络的缺失值填补系统,包括:

处理器以及与所述处理器耦合的存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现所述填补方法的方法步骤。

与现有技术相比,本发明至少具有以下有益效果:

本发明一种基于线性自学习网络的缺失值填补方法,通过使用时间窗口结构来确定缺失值邻域,并构造了线性网络通过优化网络参数来描述不同属性值的关联。将缺失值邻域中的缺失值视为模型的可学习参数,通过与优化参数同时求导来优化这些缺失值,使得权重参数和缺失值可以相互促进。因此,缺失值的填补不仅是计算值,而且是网络优化得到的结果。无线通信数据集上的实验结果表明,线性自学习网络在缺失值填补任务上的表现更好。

进一步的,骤s1通过将当前元组xi中除xi,j以外的其他属性值添加到当前的数据元组邻域xi-1和元组xi+1中形成xi,j的缺失值邻域,构成线性自学习网络模型的输入。

进一步的,步骤s2通过滑动时间窗口的方式,以当前数据元组中每一个属性值为一个时间步,时间步的缺失值邻域中每个属性值均对应一个线性模型参数,最后构建完成线性网络结构。

进一步的,通过线性网络计算缺失值的填补值的优点在于,线性网络在描述缺失值近邻与缺失值之间关系的同时描述了数据元组之间不同属性值直接的关联性。将缺失值视为网络的可学习参数使得缺失值不仅是计算值,同时是线性网络的迭代优化的结果。这样就可以不受填补顺序的限制。

进一步的,步骤s3将缺失值邻域划分为不完整邻域集合完整邻域集两个不相交的子集,在对缺失值的训练过程中,通过利用完整数据与网络计算得到前向输出值计算损失后,对权重参数和缺失值求导,使用反向传播算法最小化损失函数,来优化网络权重参数和缺失值,从而提高模型的性能。

综上所述,本发明方法提升了填充数据集中缺失值的效果,有效地解决了缺失率太高、填充不准确等造成的数据分析困难的问题。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明流程示意图;

图2为时间窗口结构确定缺失值邻域示意图。

具体实施方式

本发明提供了一种基于线性自学习网络的缺失值填补方法、存储介质及系统,以随机概率构造缺失数据集,将新生成的缺失数据集和相对应的原始数据作为新的数据集;构建基于线性自学习网络模型;使用反向传播算法优化填补值;线性自学习网络缺失值填补方法有效性检验;探究不同时间窗口大小对缺失值填补的影响,达到了准确度更高、效率更快的效果,能更真实快速地还原缺失数据,在股票价格预测、网络流量预测、病情监控和天气预测等领域中得到了广泛的应用,提高了此类问题的深度学习模型的性能。。

请参阅图1,本发明一种基于线性自学习网络的缺失值填补方法,包括以下步骤:

s1、获取的没有缺失值的原始时序数据以进行数据的预处理,然后以随机概率构造缺失数据集,将新生成的缺失数据集和相对应的原始数据作为新的数据集,用来进行模型的训练;

请参阅图2,图中的t代表着时域连续数据集中的1-n个时间步的数据元组。每条数据元组有d维属性值,问号表示该位置的属性值缺失。

假定填补缺失值xi,j,元组xi-1和元组xi+1组成当前数据元组邻域;将当前元组xi中除xi,j以外的其他属性值添加到当前的数据元组邻域中,以形成xi,j的缺失值邻域,缺失值邻域将用于填补缺失值xi,j。

s2、构建基于线性自学习网络模型;

依次计算一个时间步的数据元组上的每个属性值,然后时间窗口移至下一个时间步。当前元组中的每个属性值都有3d-1参数;结果,时间窗口可以看作是一组d*3d-1个参数的线性网络结构。

第i个时间步计算第j个属性值xi,j,则有参数集wi,j和缺失值邻域集mvni,j,通过线性网络计算缺失值的填补值yi,j;

其中,k表示参数集或缺失值邻域集中的第k个值。

s3、使用反向传播算法优化填补值;

将缺失值邻域分为两个不相交的子集:不完整邻域集,由imvn表示,由缺失值组成;完整邻域集,用cmvn表示,由完整值组成。当缺失值邻域中包含有其他缺失值时,通过最小化损失函数来优化参数和缺失值,使用均方误差函数计算损失值li,j。

缺失值邻域

li,j=(xi,j-yi,j)2

在对缺失值的训练过程中,通过利用完整数据与网络计算得到前向输出值计算损失后,对权重参数和缺失值求导来优化网络权重参数wi,j和缺失值yi,j:

其中,li,j为损失函数,为缺失值邻域集,k∈mvn,p∈imvn。

为所有缺失值赋初始值,使用反向传播算法在迭代过程中对其进行优化。

由于权重参数的计算优化频率和缺失值的求导优化频率不同,在训练迭代期间对他们设置了不同的学习率和学习率衰减。

本发明还提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述的方法中的任一方法。

本发明还提供了一种基于线性自学习网络的缺失值填补系统,所述系统包括:处理器以及与所述处理器耦合的存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述一种基于线性自学习网络的缺失值填补方法的方法步骤。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

线性自学习网络缺失值填补方法有效性检验;

计算原真实数据集和填补后数据之间的误差率er和均方根误差rmse,并且和传统的数据填补方法进行结果的比较,以此检验线性自学习网络的有效性。

以多项式回归填补为基准方法进行实验。同时将本发明与knn填补方法进行比较,分别实验对k近邻数据加权求和和直接均值求值两种填补方法。以上两种方法都是使用完整的数据元组来确定缺失值邻域。对于使用不完整数据元组组成邻域的方法,与osicm框架进行对比实验,实验中采用贪婪算法寻找最优填补顺序。为了显示当前元组数据的其他属性值对填补缺失值的作用,添加一个没有当前元组数据的对比实验,比较结果如表1所示。

表1方法对比实验结果

探究不同时间窗口大小对缺失值填补的影响;

线性网络是在一个时间窗口中进行计算,更大的时间窗口则意味着更多的模型参数和更庞大的邻域数据,同时在一个时域连续的数据集中,这些近邻数据之间的相关性也越差。

实验尝试使用3、5、7个数据元组来形成缺失值邻域。如表2所示,当时间窗口大小为3时,获得最低的填补er和rmse。结果表明,当增加时间窗口的大小时,邻域会增加更多的噪声,同时会降低邻域数据的相关性,这会严重影响插补的准确性。

表2不同时间窗口大小实验结果

综上所述,本发明一种基于线性自学习网络的缺失值填补方法、存储介质及系统,与传统统计学方法相比,利用线性自学习网络学习数据之间的关系,隐式地提取数据之间的深层特征,不受限于现有数据的完整性,本发明解决了数据集缺失值填充问题,达到了准确度更高,效率更快的效果,能更真实快速地还原缺失数据。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

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