一种面向结构化数据的预处理和补全方法与流程

文档序号:31716099发布日期:2022-10-04 21:53阅读:204来源:国知局
一种面向结构化数据的预处理和补全方法与流程

1.本发明涉及结构化数据预处理的领域,尤其涉及一种面向结构化数据的预处理和补全方法。


背景技术:

2.在机器学习的真实业务场景中,往往会存在数据缺失的情况。数据缺失会导致模型过拟合,数据泄露,模型在训练集的表现与真实测试场景的表现有很大差异等诸多问题。传统填充方法并不能普遍适应多种业务场景的需求,且面对高维度,大批量数据时,传统的填充方法不能得到趋近于原数据分布的结果,因此需建立一套自动化,成体系的,可适用于多种场景下数据集的结构化数据预处理、补全系统。


技术实现要素:

3.为了解决现有技术中存在的上述技术问题,本发明提出了一种面向结构化数据的预处理和补全方法,其具体技术方案如下:一种面向结构化数据的预处理和补全方法,包括以下步骤:步骤一,对原始数据的缺失信息进行查询,统计缺失值,得到原始数据的缺失率;步骤二,根据缺失率对原始数据进行行列剔除处理,然后进行行遍历生成行对应数组,再将数组转换为直方图形式,计算出对应直方图构成的最大的矩形面积,接着对所有矩形面积进行排序,采集得到最大的完整信息矩阵;步骤三,采用基于链式方程进行的多重填补方法或基于编码器的多重填补方法或基于对抗生成网络的填补方法,对原始数据进行缺失值填补。
4.进一步的,所述步骤一,具体为:对原始数据中每一列特征变量进行遍历,依次统计每一列的缺失值即缺失数据的个数,并计算相应的缺失率;同时针对每一行数据进行遍历,依次统计每一行缺失数据的个数并计算相应的缺失率;最终针对缺失率进行由高到低排序,返回列名及其对应的缺失率。
5.进一步的,所述的缺失率为该列或行缺失数据的单元数除以该列或行数据总的单元数。
6.进一步的,所述步骤二中的对原始数据进行行列剔除处理,具体为:根据原始数据缺失信息,剔除原始数据中缺失率大于70%的行和列,指定缺失率和指定列除外。
7.进一步的,所述进行行遍历生成行对应数组,具体包括:步骤a:将剔除了原始数据中缺失率大于70%的行和列后的数据进行0-1赋值,对数据中的空缺单元赋值为0,其余单元赋值为1,生成一个0-1二值型矩阵;步骤b:针对所述的二值型矩阵的每一行,当在第i行时,初始化一个数组,数组的长度为该二值型矩阵列的个数,数组中第j个元素,第j个元素的值为所在二值型矩阵第i行
第j列的赋值为1,且向上数值连续为1的数量;若所在矩阵第i行第j列的赋值为0,表示数据中对应位置为空值,则该元素为0;依据上述判断方法生成第i行的高度数组;步骤c:采用步骤b相同的方式生成每一行对应的高度数组。
8.进一步的,所述将数组转换为直方图形式,计算出对应直方图构成的最大的矩形面积,具体包括:步骤d:将所述的每一行对应的高度数组转化为直方图形式,数组中每一个元素视为高度为元素值,宽度为1的长方形,该数组即可视为直方图形式的数据结构;步骤e:针对上述步骤d中的每一个长方形,以其为起点构造矩形,搜索其左右位置上连续且高度均大于等于自己的长方形,直至条件不满足并退出搜索,此时满足要求的最左侧长方形与最右侧长方形之间的距离即为所能够造的矩形的长,长方形的高即为所构成矩形的高,将长与高进行相乘即为当前直方图所能构成的最大矩形面积;步骤f:采用步骤e相同的方式依次遍历每一行,计算出对应所能构成的最大矩形面积。
9.进一步的,所述对所有矩形面积进行排序,采集得到最大的完整信息矩阵,具体包括:步骤g:对计算出的每一行对应所能构成的最大矩形面积进行排序,得到排序后最大矩形的四个顶点坐标;步骤h:根据所述坐标在原始数据中提取对应的矩形数据,即可实现最大的完整信息矩形采集;其中,若提取的数据中不完全包含指定列对应的列数据,从指定列的数据中按纵坐标的范围提取对应数据,与上述矩形数据进行横向拼接并删除重复列,即为最大的完整信息矩形;若提取的数据已经完全包含指定列对应的列数据,则直接返回最大的完整信息矩形。
10.进一步的,所述基于链式方程进行的多重填补方法,具体包括以下步骤:步骤101,对原始数据的缺失值进行基础填补,填补的值为所在列的平均值或者众数,同时对填补值的位置进行标记;步骤102,遍历数据中的每一列,将每一列数据作为预测目标对象,剩余其他列作为输入特征,利用回归模型对预测目标和输入特征进行回归计算,输出新的一列预测结果,将原始列标记的值替换为预测结果中对应位置的数值,替换后的列继续作为其他回归计算的输入特征;遍历直到所有列中的标记缺失值均已被回归的预测值所替代;步骤103,重复步骤101至步骤102的操作,生成若干填补完成的数据集,作为填补原始数据的候选输出结果。
11.进一步的,所述基于编码器的多重填补方法,采用的神经网络模型包括编解码器,具体包括以下步骤:步骤201,将原始数据输入模型,经过由数个线性层与激活函数的嵌套组成的编码器,输出映射成高维度的特征表示;步骤202,再经过由数个线性层与激活函数的嵌套组成的解码器,将编码器的输出对称地缩放回原始维度,驱动学习原始数据中具有鲁棒性的特征;步骤203,训练模型,输出填补完成的数据集;
所述模型训练采用的误差函数为均方误差函数,均方误差函数如下式:其中为原始数据数值,为生成的填补数值。
12.进一步的,所述基于对抗生成网络的填补方法,采用的对抗生成网络模型包含生成器和判别器两个组成模块,具体包括以下步骤:步骤301,将原始数据输入对抗生成网络模型,生成器观测真实的原始数据,并用真实数据预测缺失数据,输出完整的数据;步骤302,为判别器提供额外提示信息,通过判别器判断得到完整的数据中的观测的真实值和填补的生成值;步骤303,生成器根据原始数据的真实分布,输出填补完成的数据集。
13.有益效果:本发明能够对原始数据进行缺失信息统计,自动搜寻满足条件的最大完整信息,并通过链式方程计算,机器学习,深度学习等方法,补全结构化数据,从而极大提高原始数据集的质量,能够有效控制预测任务中由于数据缺失导致的数据泄漏,样本非均衡,从而进一步导致的模型过拟合,模型稳健型下降等问题,对后期的预测任务提供了极大的便利,提高了数据的质量。
附图说明
14.图1是本发明的一种面向结构化数据的预处理和补全方法流程示意图;图2是本发明实施例的含缺失值的原始数据进行0-1赋值生成一个0-1二值型矩阵的过程示意图;图3是本发明实施例的对二值型矩阵进行行遍历生成行对应数组的过程示意图;图4是本发明实施例的高度数组向直方图形式的转化过程示意图;图5是本发明实施例的计算直方图构成的最大的矩形面积的过程示意图;图6是本发明实施例的一种面向结构化数据的预处理和补全装置的结构示意图。
具体实施方式
15.为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
16.数据缺失是指因为某些原因导致数据集中某个或某些属性的值丢失,是数据预处理过程中经常碰到的问题。数据缺失机制主要以下三类:完全随机缺失,随机缺失和非随机缺失,完全随机缺失是指数据的缺失是完全随机的,和变量自身或者其他变量的取值无关,实际中极为少见。随机缺失是指缺失值的丢失与本变量无关,而与数据集中其他(部分)变量有关。非随机缺失是指数据的缺失不仅与其他变量的取值有关,也和自身取值有关。
17.本发明提供了一种面向结构化数据的预处理、补全方法和系统,如图1所示,该系统包括数据缺失查询模块、最大完整信息矩阵采集模块和数据缺失值填充模块,该方法包
括以下步骤:步骤一,在所述数据缺失查询模块,对原始数据的缺失信息进行查询,统计缺失值,得到原始数据的缺失率。
18.具体的,针对输入的原始数据,数据缺失查询模块对原始数据中每一列特征变量进行遍历,依次统计每一列的缺失值即缺失数据的个数,并计算相应的缺失率。所述的缺失率为该列缺失数据的单元数除以该列数据总的单元数。
19.同时针对每一行数据进行遍历,依次统计每一行缺失数据的个数并计算相应的缺失率。最终针对缺失率进行由高到低排序,返回列名及其对应的缺失率。
20.数据集缺失信息的查询对于后续任务的决策分析具有很重要的影响,以上查询到的数据缺失信息是进行后续数据处理的重要依据,缺失率过大的特征会影响数据质量,需要进行剔除等操作。
21.步骤二,在最大完整信息矩阵采集模块,根据缺失率对原始数据进行行列剔除处理,然后进行行遍历生成行对应数组,再将数组转换为直方图形式,计算出对应直方图构成的最大的矩形面积,接着对所有矩形面积进行排序,采集得到最大的完整信息矩阵。
22.在包含缺失值的原始数据中采集最大的完整信息矩阵的目的是尽可能多的提取完整的原始数据信息,以便于基于此信息矩阵对原始数据的相关特征进行深度分析。
23.所述步骤二中的对原始数据进行行列剔除处理,具体为:根据原始数据缺失信息,剔除原始数据中缺失率大于70%的行和列,指定缺失率和指定列除外。
24.所述进行行遍历生成行对应数组,具体包括:步骤a:将剔除了原始数据中缺失率大于70%的行和列后的数据进行0-1赋值,对数据中的空缺单元赋值为0,其余单元赋值为1,生成一个0-1二值型矩阵,如图2所示;步骤b:针对所述的二值型矩阵的每一行,本实施例以所述生成的二值型矩阵的第3行为例,初始化一个数组,数组的长度为该二值型矩阵列的个数,以该数组中第j个元素为例,该元素的值为所在二值型矩阵第3行第j列的赋值为1,且向上数值连续为1的数量;若所在矩阵第i行第j列的赋值为0,说明数据中对应位置为空值,则该元素为0;依据上述判断方法生成第i行的高度数组,如图3所示;步骤c:采用步骤b相同的方式生成每一行对应的高度数组。
25.所述将数组转换为直方图形式,计算出对应直方图构成的最大的矩形面积,具体包括:步骤d:将所述的每一行对应的高度数组转化为直方图形式,数组中每一个元素视为高度为元素值,宽度为1的长方形,该数组即可视为直方图形式的数据结构,如图4所示,以本实施例数据的第3行为例。
26.步骤e:针对上述步骤d中的每一个长方形,本实施例中以第3行对应的高度数组转化的直方图中的第4个长方形的索引为例,以其为起点构造矩形,搜索其左右位置上连续且高度均大于等于自己的长方形,直至条件不满足并退出搜索,此时满足要求的最左侧长方形的索引与最右侧长方形的索引之间的距离即为所能够造的矩形的长,所述的第4个长方形的高即为所构成矩形的高,将长与高进行相乘即为当前直方图的第4个索引下所能构成的最大矩形面积,如图5所示。
27.步骤f:采用步骤e相同的方式依次遍历每一行,计算出对应所能构成的最大矩形
面积。
28.所述对所有矩形面积进行排序,采集得到最大的完整信息矩阵,具体包括:步骤g:对计算出的每一行对应所能构成的最大矩形面积进行排序,得到排序后最大矩形的四个顶点坐标。
29.步骤h:根据所述坐标在原始数据中提取对应的矩形数据,即可实现最大的完整信息矩形采集;其中,若提取的数据中不完全包含指定列对应的列数据,从指定列的数据中按纵坐标的范围提取对应数据,与上述矩形数据进行横向拼接并删除重复列,即为最大的完整信息矩形;若提取的数据已经完全包含指定列对应的列数据,则直接返回最大的完整信息矩形,以便于基于此信息矩形对原始数据的相关特征进行深度分析。
30.步骤三,在数据缺失值填补模块,采用基于链式方程进行的多重填补方法(mice)或基于编码器的多重填补方法(mida)或基于对抗生成网络的填补方法(gain)三种数据填补方法对原始数据进行缺失值填补。
31.具体的,所述基于链式方程进行的多重填补方法(mice),具体包括以下步骤:步骤101,将原始数据的缺失值进行基础填补,填补的值为所在列的平均值或者众数,同时对填补值的位置进行标记;步骤102,遍历数据中的每一列,将每一列数据作为预测目标对象,剩余其他列作为输入特征,利用回归模型(逻辑回归、树模型等)对上述的预测目标和输入特征进行回归计算,输出新的一列预测结果,将原始列标记的值替换为预测结果中对应位置的数值,替换后的列继续作为其他回归计算的输入特征;遍历直到所有列中的标记缺失值均已被回归的预测值所替代;步骤103,重复步骤101至步骤102的操作,生成若干填补完成的数据集,作为mice方法填补原始数据的候选输出结果。
32.所述基于编码器的多重填补方法(mida),是一种基于神经网络自编码器架构(encoder-decoder)的填补方法,即采用的神经网络模型包括编解码器,该方法具体包括以下步骤:步骤201,将原始数据输入模型,经过由数个线性层与激活函数的嵌套组成的编码器,输出映射成高维度的特征表示;步骤202,再经过由数个线性层与激活函数的嵌套组成的解码器,将编码器的输出对称地缩放回原始维度,驱动学习原始数据中具有鲁棒性的特征;步骤203,训练模型,输出填补完成的数据集。
33.所述模型训练通过最小化生成数据和原始数据的误差,生成一个良好的表示层,以包含原始数据中绝大部分的信息;训练模型所采用的误差函数为均方误差函数(mean square error),均方误差函数如下式:其中为原始数据数值,为生成的填补数值。
34.所述基于对抗生成网络的填补方法(gain),采用的对抗生成网络模型包含生成器和判别器两个组成模块,具体包括以下步骤:步骤301,将原始数据输入对抗生成网络模型,生成器观测真实的原始数据,并用真实数据预测缺失数据,输出完整的数据;步骤302,为判别器提供额外提示信息,通过判别器判断得到完整的数据中的观测的真实值和填补的生成值;步骤303,生成器根据原始数据的真实分布,输出填补完成的数据集。
35.与前述一种面向结构化数据的预处理和补全方法的实施例相对应,本发明还提供了一种面向结构化数据的预处理和补全装置的实施例。
36.参见图6,本发明实施例提供的一种面向结构化数据的预处理和补全装置,包括一个或多个处理器,用于实现上述实施例中的一种面向结构化数据的预处理和补全方法。
37.本发明一种面向结构化数据的预处理和补全装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本发明一种面向结构化数据的预处理和补全装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
38.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
39.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
40.本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种面向结构化数据的预处理和补全方法。
41.所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
42.以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前
述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1