数据表填补方法、装置、计算机设备和存储介质与流程

文档序号:17723393发布日期:2019-05-22 02:20阅读:142来源:国知局
数据表填补方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种数据表填补方法、装置、计算机设备和存储介质。



背景技术:

报表数据是数据表中的数据,是实际应用中最常见的数据的形式之一,可用于进行数据分析或生成报表展示给用户,比如贷款业务数据、人力资源数据、保险业务数据等。然而,这些报表数据不可避免地由于操作不当、系统故障、人为因素等导致数据值的缺失。

在现有的商业数据报表平台中,通常不会对数据表中缺失的数据值进行处理,或者,直接删除缺失了数据值的样本,这样,往往会导致对整个数据表中报表数据的分布形成干扰,影响数据分析的准确度。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够有效填补数据表中缺失的数据值的数据表填补方法、装置、计算机设备和存储介质。

一种数据表填补方法,所述方法包括:

获取用户上传的数据表;

确定所述数据表中的非完全字段名,所述非完全字段名缺少数据值;

根据所述非完全字段名与所述数据表中其它字段名之间的相关度确定所述非完全字段名的缺失类型;

根据所述数据表中已有的数据值,根据所述缺失类型对应的填补方式计算缺失值;

根据所述缺失值填补所述非完全字段名缺失的数据值。

在其中一个实施例中,所述确定所述数据表中缺失了数据值的非完全字段名包括:

统计所述数据表中各个字段名对应的数据值的数量;

确定所述数据表对应的样本总数;

当所述数量小于所述样本总数时,将所述字段名确定为非完全字段名。

在其中一个实施例中,所述根据所述非完全字段名与所述数据表中其它字段名之间的相关度确定所述非完全字段名的缺失类型包括:

当所述非完全字段名与所述数据表中其它字段名之间的相关度均小于第一预设值时,则确定所述非完全字段名的缺失类型为完全随机缺失;

当所述非完全字段名与所述数据表中至少一个完全字段名之间的相关度大于第二预设值时,则确定所述非完全字段名的缺失类型为随机缺失;

当所述非完全字段名与所述数据表中至少一个非完全字段名之间的相关度大于第三预设值时,则确定所述非完全字段名的缺失类型为非随机缺失。

在其中一个实施例中,所述缺失类型为完全随机缺失;所述根据所述数据表中已有的数据值,根据所述缺失类型对应的填补方式计算缺失值包括:

当所述非完全字段名对应的数据值类型为字符型时,则根据所述非完全字段名已有的数据值统计相应的中位数,将统计的所述中位数作为所述非完全字段名对应的缺失值;或,根据所述非完全字段名已有的数据值统计相应的众数,将统计的所述众数作为所述非完全字段名对应的缺失值;

当所述非完全字段名对应的数据值类型为数值型时,则根据所述非完全字段名已有的数据值统计相应的平均数,将统计的所述平均数作为所述非完全字段名对应的缺失值。

在其中一个实施例中,所述缺失类型为完全随机缺失;所述根据所述数据表中已有的数据值,根据所述缺失类型对应的填补方式计算缺失值包括:

确定所述数据表中缺失了所述非完全字段名对应的数据值的第一类样本;

确定所述数据表中所述非完全字段名对应的数据值存在的第二类样本;

统计所述第一类样本的样本数量;

计算所述样本数量占所述样本总数的比例;

当所述比例大于阈值时,则将所述第一类样本在所述非完全字段名下的数据值替换为第一值;将所述第二类样本在所述非完全字段名下的数据值替换为第二值。

在其中一个实施例中,所述缺失类型为随机缺失;所述根据所述数据表中已有的数据值,根据所述缺失类型对应的填补方式计算缺失值包括:

确定与所述非完全字段名相关的完全字段名;

按照所述完全字段名的数据值对所述数据表中的样本进行聚类,得到聚类簇;

确定所述数据表中缺失了所述非完全字段名对应的数据值的第三类样本;

计算所述第三类样本所属的聚类簇所包括样本在所述非完全字段名下的均值,将计算得到的均值作为待填补的缺失值。

在其中一个实施例中,所述缺失类型为随机缺失;所述根据所述数据表中已有的数据值,根据所述缺失类型对应的填补方式计算缺失值包括:

确定所述数据表中所述非完全字段名对应的数据值存在的第一样本集合以及所述非完全字段名对应的数据值缺失的第二样本集合;

根据所述第一样本集合中与所述非完全字段名相关的完全字段名对应的数据值构建预测模型;

将所述第二样本集合中各个样本在所述完全字段名对应的数据值输入至所述预测模型中,通过所述预测模型输出所述第二样本集合中各个样本在所述非完全字段名下的预测值;

将所述预测值作为待填补的缺失值。

在其中一个实施例中,所述方法还包括:

统计所述数据表中各个字段名对应的均值和标准差;

根据所述均值和标准差,按照以下公式计算任意两个字段名之间的相关度:

其中,ρ(x,y)表示字段名x与字段名y之间的相关度;μx表示字段名x对应的均值;μy表示字段名y对应的均值;σx表示字段名x对应的标准差;σy表示字段名y对应的标准差;e[(x-μx)(y-μy)]是z的期望值,z=(x-μx)(y-μy)。

一种数据表填补装置,所述装置包括:

数据表获取模块,用于获取用户上传的数据表;

非完全字段名确定模块,用于确定所述数据表中的非完全字段名,所述非完全字段名缺少数据值;

缺失类型确定模块,用于根据所述非完全字段名与所述数据表中其它字段名之间的相关度确定所述非完全字段名的缺失类型;

缺失值计算模块,用于根据所述数据表中已有的数据值,根据所述缺失类型对应的填补方式计算缺失值;

填补模块,用于根据所述缺失值填补所述非完全字段名缺失的数据值。

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

获取用户上传的数据表;

确定所述数据表中的非完全字段名,所述非完全字段名缺少数据值;

根据所述非完全字段名与所述数据表中其它字段名之间的相关度确定所述非完全字段名的缺失类型;

根据所述数据表中已有的数据值,根据所述缺失类型对应的填补方式计算缺失值;

根据所述缺失值填补所述非完全字段名缺失的数据值。

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

获取用户上传的数据表;

确定所述数据表中的非完全字段名,所述非完全字段名缺少数据值;

根据所述非完全字段名与所述数据表中其它字段名之间的相关度确定所述非完全字段名的缺失类型;

根据所述数据表中已有的数据值,根据所述缺失类型对应的填补方式计算缺失值;

根据所述缺失值填补所述非完全字段名缺失的数据值。

上述数据表填补方法、装置、计算机设备和存储介质,在获取到用户上传的数据表时,就确定该数据表中缺失了数据值的非完全字段名,按照该非完全字段名与数据表中其它字段名之间的相关度确定该非完全字段名的缺失类型,然后根据数据表中已有的数据值按照该非完全字段名的缺失类型所对应的填补方式计算该非完全字段名对应的缺失值,就可以用该缺失值填补该非完全字段名缺失的数据值,按照上述步骤,可以填补数据表中各个非完全字段名缺失的数据值,能够有效填补数据表,这样,基于填补后的数据表所进行的数据分析的准确度也会显著提高。

附图说明

图1为一个实施例中数据表填补方法的应用场景图;

图2为一个实施例中数据表填补方法的流程示意图;

图3为一个实施例中根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值的步骤的流程示意图;

图4为另一个实施例中根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值的步骤的流程示意图;

图5为又一个实施例中根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值的步骤的流程示意图;

图6为一个实施例中数据表填补装置的结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的数据表填补方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。终端102可获取用户上传的数据表,将数据表发送至服务器104,由服务器104计算数据表所包括字段名之间的相关度,并将任意两个字段名之间的相关度反馈至终端102,由终端102在确定了数据表中缺失了数据值的非完全字段后,按照该非完全字段名与数据表中其它字段名之间的相关度确定该非完全字段名的缺失类型。终端102还可进一步根据数据表中已有的数据值,根据该非完全字段名的缺失类型对应的填补方式计算缺失值,并根据缺失值填补非完全字段名缺失的数据值,将填补后的数据表发送至服务器104。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种数据表填补方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

步骤202,获取用户上传的数据表。

其中,数据表是一种结构化的数据表格,比如可以是csv(逗号分隔值,comma-separatedvalues)格式的表格,csv数据表以纯文本形式存储表格数据,存储的表格数据包括数值型和字符型。具体地,可提供网页界面,用户通过该网页界面上传数据表,终端就可获取用户上传的数据表。在一个实施例中,每个用户需按预设的文件格式或表格模板生成包含报表数据的数据表,以便终端可解析出上传的数据表的表结构信息。

如下表1所示,为一个实施例中上传的csv格式的数据表的示意图。

表1

从上表1中可以看出,该数据表中每一行的元素之间用逗号分隔开,第一行的元素用于表示这一列的列名,也叫数据表的表头或字段名,相应的该列中的元素为字段名对应的数据值,一个字段名对应了多个数据值。从第二行起,每一行的数据表示该数据表中的一个样本,上表1中示出了4个样本。

步骤204,确定数据表中的非完全字段名,非完全字段名缺少数据值。

其中,非完全字段名是数据表中缺失了数据值的字段名,相应地,完全字段名是数据表中不缺失数据值的字段名。比如,在上表1中,属于非完全字段名的字段名包括:学历、贷款金额,属于完全字段名的字段名包括:姓名、性别、年龄、地区、贷款时间和身份证号码。

具体地,终端可在获取到用户上传的数据表后,确定数据表中缺失了数据值的各个字段名,即各个非完全字段名。

在一个实施例中,确定数据表中的非完全字段名包括:统计数据表中各个字段名对应的数据值的数量;确定数据表对应的样本总数;当数量小于样本总数时,将字段名确定为非完全字段名。

具体地,对于数据表中所包括的字段名,终端可统计各个字段名对应的数据值的数量,并统计数据表所包括的样本的总数,当统计的字段名对应的数据值的数量小于样本总数时,说明该字段名缺失了数据值,则将该字段名确定为非完全字段名。

比如,在前文提及的表1中,终端在遍历字段名“学历”对应的数据值的数量的过程中,每查询到一个非“空”(null)的数据值,相应的数量就增1,直至遍历完数据表中所有的样本,得到统计的字段名“学历”对应的数据值的数量为“3”,而样本总数为“4”,因此可确定字段名“学历”为非完全字段名。同样地,也可确定字段名“贷款金额”为非完全字段名。

步骤206,根据非完全字段名与数据表中其它字段名之间的相关度确定非完全字段名的缺失类型。

其中,相关度可表示两个字段名之间的隐含联系。两个字段名之间的相关度越大,代表这两个字段名之间的联系越强,反之,两个字段名之间的相关度越小,代表这两个字段名之间的联系越弱。比如,前文的表1中,贷款人所在的“地区”中,北京、深圳、上海由于房价普遍较高,相比于其它地区,“贷款金额”也会普遍偏高,说明字段名“地区”和“贷款金额”之间存在隐含联系。

缺失类型用于描述缺失了数据值的字段名与其它字段名之间可能的联系。确定非完全字段名的缺失类型便于采用相应的填补方式对缺失的数据值进行填补。缺失类型包括完全随机缺失、随机缺失和非随机缺失。需要说明的是,非完全字段名对应的缺失类型可以既是随机缺失又是非随机缺失,那么终端可按需采用相应的填补方式计算该非完全字段名对应的缺失值。

具体地,终端可在确定了数据表中非完全字段名后,计算当前要填补的非完全字段名与数据表中其它字段名之间的相关度,按照相关度确定当前要填补的非完全字段名的缺失类型。

在一个实施例中,步骤206,根据非完全字段名与数据表中其它字段名之间的相关度确定非完全字段名的缺失类型包括:当非完全字段名与数据表中其它字段名之间的相关度均小于第一预设值时,则确定非完全字段名的缺失类型为完全随机缺失;当非完全字段名与数据表中至少一个完全字段名之间的相关度大于第二预设值时,则确定非完全字段名的缺失类型为随机缺失;当非完全字段名与数据表中至少一个非完全字段名之间的相关度大于第三预设值时,则确定非完全字段名的缺失类型为非随机缺失。

具体地,若终端可设置相应的阈值,计算当前要填补的非完全字段名与数据表中其它字段名之间的相关度,根据相关度与阈值的大小关系确定当前要填补的非完全字段名的缺失类型。

若当前要填补的非完全字段名与其它字段名之间的相关度均小于设置的第一预设值,说明该非完全字段名与其余字段名之间不存在隐含联系,从而该非完全字段名缺失的数据值与其它字段名对应的数据值之间也不存在关联,计算该非完全字段名对应的缺失值时不需要参考其它字段名对应的数据值,就可以确定该非完全字段名的缺失类型为完全随机缺失。

若当前要填补的非完全字段名与数据表中至少一个完全字段名之间的相关度大于设置的第二预设值,说明该非完全字段名与至少一个完全字段名之间存在一定的隐含联系,从而该非完全字段名缺失的数据值与至少一个完全字段名对应的数据值之间存在一定的关联,计算该非完全字段名对应的缺失值时需要参考该至少一个完全字段名的数据值,就可以确定该非完全字段名的缺失类型为随机缺失。

若当前要填补的非完全字段名与数据表中至少一个非完全字段名之间的相关度大于设置的第三预设值,说明该非完全字段名与至少一个非完全字段名之间存在一定的隐含联系,从而该非完全字段名缺失的数据值与至少一个非完全字段名对应的数据值之间存在一定的关联,计算该非完全字段名对应的缺失值时需要参考该至少一个非完全字段名的数据值,就可以确定该非完全字段名的缺失类型为非随机缺失。

在其中一个实施例中,数据表填补方法还包括计算相关度的步骤:统计数据表中各个字段名对应的均值和标准差;根据均值和标准差,按照以下公式计算任意两个字段名之间的相关度:

其中,ρ(x,y)表示字段名x与字段名y之间的相关度;μx表示字段名x对应的均值;μy表示字段名y对应的均值;σx表示字段名x对应的标准差;σy表示字段名y对应的标准差;e[(x-μx)(y-μy)]是z的期望值,z=(xi-μx)(yi-μy)。

具体地,终端可获取非完全字段名x的数据值,对所有的数据值求均值μx,相应地,获取另一个字段名y对应的数据值,对字段名y所有的数据值求均值μy,然后根据标准差与均值之间的关系分别计算字段名x与字段名y对应的标准差,可通过以下公式计算得到:

其中,字段名x一共有n个数据值,xi表示字段名x对应的第i个数据值,然后终端可根据计算得到的均值和字段名的各个数据值计算z的各个数据值,即z的第i个数据值为(xi-μx)(yi-μy),然后再根据z的各个数据值统计z的均值,作为期望值。

在一个实施例中,在计算非完全字段名与其它字段名之间的相关度时,若这两个字段名的数据值类型均为数值型时,可直接根据这两个字段名的数据值计算相关度,若这连个字段名中有至少一个字段名的数据值类型为字符型,则可先统计该字段名的枚举值,为每个枚举值匹配相应的数据值,这样就可以将字符型的数据值转化成数值型的数据值,然后按照匹配的数据值计算相关度。

比如,对于数据表中的字段名“学历”而言,统计该字段名对应的枚举值,包括:博士、硕士、本科、大专、中专、初中以及不详,可依次转换为相应的数据值,比如6、5、4、3、2、1以及0,或者,依次转换为100、80、70、60、50、20以及0,然后根据转换后的数据值计算相关度。转换后的各个数据值之间的关系应当和转换之前字符型的数据值之间的关系保持一致。

步骤208,根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值。

具体地,在终端确定了当前要填补的非完全字段名对应的缺失类型后,就可以根据该缺失类型对应的填补方式,根据数据表中已有的数据值计算该非完全字段名对应的缺失值。数据表中已有的数据可以大致分为两类,一类是该非完全字段名对应的数据值,一类是与该非完全字段名相关的字段名对应的数据值。

在其中一个实施例中,缺失类型为完全随机缺失;步骤208,根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值包括:当非完全字段名对应的数据值类型为字符型时,则根据非完全字段名已有的数据值统计相应的中位数,将统计的中位数作为非完全字段名对应的缺失值;或,根据非完全字段名已有的数据值统计相应的众数,将统计的众数作为非完全字段名对应的缺失值;当非完全字段名对应的数据值类型为数值型时,则根据非完全字段名已有的数据值统计相应的平均数,将统计的平均数作为非完全字段名对应的缺失值。

具体地,当非完全字段名对应的缺失类型为完全随机缺失时,则说明该非完全字段名缺失的数据值与数据表中其它字段名已有的数据值之间的联系不大,则终端可根据该非完全字段名自身已有的数据值来计算缺失值。

字段名对应的数据值类型为字符型,是指该字段名对应的数据值的类型是字符型的,数据值类型为数值型,是指该字段名对应的数据值的类型是纯数值型的。比如,在前文提及的表1中,完全字段名“年龄”对应的数据值类型是数值型,非完全字段名“学历”对应的数据值类型是字符型,非完全字段名“贷款金额”对应的数据值是数值型。

当终端确定当前待填补的非完全字段名的缺失类型为完全随机缺失时,并且该非完全字段名对应的数据值类型为字符型时,则终端可根据该非完全字段名已有的数据值统计相应的中位数,将统计的中位数作为该非完全字段名对应的缺失值;或者,终端也可根据该非完全字段名已有的数据值统计相应的众数,将统计的众数作为该非完全字段名对应的缺失值。

当终端确定当前待填补的非完全字段名的缺失类型为完全随机缺失时,并且该非完全字段名对应的数据值类型为数值型时,则终端可根据该非完全字段名已有的数据值统计相应的平均数,将统计的平均数作为该非完全字段名对应的缺失值。

步骤210,根据缺失值填补非完全字段名缺失的数据值。

具体地,终端在按照上述步骤202至步骤204计算出数据表中每个非完全字段名相应的缺失值后,就可用各自的缺失值填补非完全字段名缺失的数据值。填补之后的数据表中不再有缺失的数据值,这样,方便基于填补后的数据表进行数据分析或数据统计。

上述数据表填补方法,在获取到用户上传的数据表时,就确定该数据表中缺失了数据值的非完全字段名,按照该非完全字段名与数据表中其它字段名之间的相关度确定该非完全字段名的缺失类型,然后根据数据表中已有的数据值按照该非完全字段名的缺失类型所对应的填补方式计算该非完全字段名对应的缺失值,就可以用该缺失值填补该非完全字段名缺失的数据值,按照上述步骤,可以填补数据表中各个非完全字段名缺失的数据值,能够有效填补数据表,这样,基于填补后的数据表所进行的数据分析的准确度也会显著提高。

如图3所示,在其中一个实施例中,缺失类型为完全随机缺失;步骤208,根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值包括:

步骤302,确定数据表中缺失了非完全字段名对应的数据值的第一类样本;

步骤304,确定数据表中非完全字段名对应的数据值存在的第二类样本;

其中,样本是数据表中记录的数据条目,每个样本在各个字段名下都有各自的数据值。第一类样本是数据表中当前要填补的非完全字段名对应的数据值缺失的样本,第二类样本是数据表中当前要填补的非完全字段名对应的数据值存在的样本。比如,在前文提及的表1中,针对当前要填补的非完全字段名“贷款金额”而言,第二个样本属于第一类样本,第一个样本、第三个样本以及第四个样本属于第二类样本;而针对当前要填补的非完全字段名“地区”而言,第四个样本属于第一类本,第一个样本、第二个样本以及第三个样本属于第二类样本。

步骤306,统计第一类样本的样本数量;

步骤308,计算样本数量占样本总数的比例;

具体地,当前要填补的非完全字段的缺失类型为完全随机缺失,则说明当前要填补的非完全字段名与数据表中其它字段名之间的联系不大。终端可统计第一类样本的样本数量,计算第一类样本的样本数量占数据表中样本总数的比例。

步骤310,当比例大于阈值时,则将第一类样本在非完全字段名下的数据值替换为第一值;将第二类样本在非完全字段名下的数据值替换为第二值。

当该比例大于阈值时,说明数据表中当前要填补的非完全字段名对应的数据值缺失的样本较多,比如阈值可以设置成50%,那如果有超过一半的样本在当前要填补的非完全字段名下的数据值都缺失了,势必会影响数据分析和数据统计,而该非完全字段名又与其它字段名的联系不大,那么终端可将该非完全字段名对应的数据值二值化,将第一类样本在该非完全字段名下的数据值替换为第一值;将第二类样本在该非完全字段名下的数据值替换为第二值。

比如,终端在确定了数据表中的非完全字段名“身份证号码”属于完全随机类型后,并统计超过一半的样本属于第一类样本,也就是,超过一半的样本在“身份证号码”这个字段名下的数据值是缺失的,那么终端可将存在数据值的样本在“身份证号码”这个字段名下的数据值替换为“1”,将缺失了数据值的样本在“身份证号码”这个字段名下的数据值替换为“0”,这样,虽然缺失了大量的数据值,但是由于该数据值与数据表中其它已有的数据值的关联不大,用二值化的方式替换原来的数据值,相比于直接删除该非完全字段名下所有的数据值而言,又可以保留了一定的信息。

如图4所示,在其中一个实施例中,缺失类型为随机缺失;步骤208,根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值包括:

步骤402,确定与非完全字段名相关的完全字段名;

具体地,当非完全字段名的缺失类型为随机缺失时,说明该非完全字段名与数据表中至少一个完全字段名相关,终端可按照步骤206确定与当前要填补的非完全字段名相关的完全字段名。

步骤404,按照完全字段名的数据值对数据表中的样本进行聚类,得到聚类簇;

具体地,终端在确定了数据表中与当前要填补的非完全字段名相关的至少一个完全字段名后,就可将数据表中的所有样本按照至少一个完全字段名对应的数据值进行聚类,得到聚类簇。

在一个实施例中,终端可按照确定的至少一个完全字段名的对应的数据值之间的相似性将所有的样本进行聚类,或者,终端也可将完全字段名对应的数据值对应至多个类别中,然后按数据值对应的类别进行聚类。

比如,针对与非完全字段名“年终奖”相关的完全字段名“工作年限”而言,终端可以按照完全字段名“工作年限”对数据表中所有的样本进行聚类,比如可将工作年限为1年及2年的样本归为一类,将工作年限为3年至5年的样本归为一类,将工作年限为6年至8年的样本归为一类,将工作年限为8年以上的样本归为一类。当与“年终奖”相关的完全字段名有多个时,可结合这多个完全字段名对应的数据值将数据表中的样本聚类,得到各个聚类簇。

步骤406,确定数据表中缺失了非完全字段名对应的数据值的第三类样本;

进一步地,终端统计出数据表中当前要填补的非完全字段名缺失的第三类样本,并确定这些第三类样本属于步骤404中得到的哪一个聚类簇中。

步骤408,计算第三类样本所属的聚类簇所包括样本在非完全字段名下的均值,将计算得到的均值作为待填补的缺失值。

具体地,终端可在确定第三类样本所属的聚类簇后,计算该聚类簇中所有样本在要填补的非完全字段名下的均值,将计算得到的均值作为落在该聚类簇中的样本在要填补的非完全字段名下的缺失值。

在本实施例中,当缺失类型为随机缺失时,可将样本聚类后为缺失了数据值的样本计算相应的缺失值,相比于用同一个缺失值去填补所有的样本在该非完全字段名下的数据值而言,填补的数据值更为准确。

如图5所示,在其中一个实施例中,缺失类型为随机缺失;步骤208,根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值包括:

步骤502,确定数据表中非完全字段名对应的数据值存在的第一样本集合以及非完全字段名对应的数据值缺失的第二样本集合;

在本实施例中,当要填补的非完全字段名的缺失类型是随机缺失时,终端还可根据数据表中与该非完全字段名相关的完全字段名对应的数据值构建预测模型,用预测模型预测非完全字段名缺失的数据值。具体地,终端可先将数据表中的所有样本分成两类,一类是当前要填补的非完全字段名对应的数据值存在的样本,这些样本构成的集合称之为第一样本集合,另一类是当前要填补的非完全字段名对应的数据值缺失的样本,这些样本构成的集合称之为第二样本集合。

步骤504,根据第一样本集合中与非完全字段名相关的完全字段名对应的数据值构建预测模型;

进一步地,终端可确定与当前要填补的非完全字段名相关的完全字段名,然后获取第一样本集合中所有样本在确定的完全字段名下的数据值,建立这些数据值与该非完全字段名对应的数据值之间的预测关系。

步骤506,将第二样本集合中各个样本在完全字段名对应的数据值输入至预测模型中,通过预测模型输出第二样本集合中各个样本在非完全字段名下的预测值;

步骤508,将预测值作为待填补的缺失值。

举例说明,将数据表中的所有样本按照非完全字段名m是否存在分为两类后得到的第一样本集合x=(001、002、003、005、…),其中001代表第一个样本,002代表第2个样本,诸如此类,第二样本集合x’=(004、006、…)。第一样本集合x中各个样本在非完全字段名m下对应的数据值的集合是m=(m1、m2、m3、m5…);第二样本集合x’中各个样本在非完全字段名n1下对应的数据值是缺失的。确定与非完全字段名m相关的完全字段名,包括n、p、q。获取第一样本集合x中各个样本在完全字段名n、p、q下的数据值,根据n=(n1、n2、n3、n5…)、p=(n1、n2、n3、n5…)、q=(n1、n2、n3、n5…)与集合m=(m1、m2、m3、m5…)之间隐藏的联系构建预测模型:

m=nw1+pw2+qw3+b,其中,w1、w2、w3和b是可训练的模型参数。

这里模型只是一个示例,仅用于表示预测模型的输入是n、p和q,输出是m。在构建预测模型时可采用梯度递减的方式调整模型参数,使得构建的预测模型能够贴合第一样本集合中的每个样本。

在得到了预测模型后,就可以将第二样本集合中各个样本在完全字段名n、p、q下的数据值作为输入,输入至预测模型中,通过该预测模型输出各个样本在非完全字段名m下对应的数据值,就可以用输出的预测值作为缺失的数据值进行填充,这样,每个样本在非完全字段名m下对应的缺失值都并不是完全相同的,而是和相关的完全字段名有很大的联系,能够提升待填补的缺失值的准备性。

在一个具体的实施例中,数据表填补方法具体包括以下步骤:

获取用户上传的数据表。

确定数据表中缺失了数据值的非完全字段名。

统计数据表中各个字段名对应的均值和标准差。

根据均值和标准差,按照以下公式计算任意两个字段名之间的相关度:

其中,ρ(x,y)表示字段名x与字段名y之间的相关度;μx表示字段名x对应的均值;μy表示字段名y对应的均值;σx表示字段名x对应的标准差;σy表示字段名y对应的标准差;e[(x-μx)(y-μy)]是z的期望值,z=(x-μx)(y-μy)。

当非完全字段名与数据表中其它字段名之间的相关度均小于第一预设值时,则确定非完全字段名的缺失类型为完全随机缺失。

当非完全字段名与数据表中至少一个完全字段名之间的相关度大于第二预设值时,则确定非完全字段名的缺失类型为随机缺失。

当非完全字段名与数据表中至少一个非完全字段名之间的相关度大于第三预设值时,则确定非完全字段名的缺失类型为非随机缺失。

当缺失类型为完全随机缺失、且当非完全字段名对应的数据值类型为字符型时,则根据非完全字段名已有的数据值统计相应的中位数,将统计的中位数作为非完全字段名对应的缺失值;或,根据非完全字段名已有的数据值统计相应的众数,将统计的众数作为非完全字段名对应的缺失值。

当缺失类型为完全随机缺失、且当非完全字段名对应的数据值类型为数值型时,则根据非完全字段名已有的数据值统计相应的平均数,将统计的平均数作为非完全字段名对应的缺失值;

或者,

当缺失类型为完全随机缺失时,确定数据表中缺失了非完全字段名对应的数据值的第一类样本;确定数据表中非完全字段名对应的数据值存在的第二类样本;统计第一类样本的样本数量;计算样本数量占样本总数的比例;当比例大于阈值时,则将第一类样本在非完全字段名下的数据值替换为第一值;将第二类样本在非完全字段名下的数据值替换为第二值。

当缺失类型为随机缺失时,则确定与非完全字段名相关的完全字段名;按照完全字段名的数据值对数据表中的样本进行聚类,得到聚类簇;确定数据表中缺失了非完全字段名对应的数据值的第三类样本;计算第三类样本所属的聚类簇所包括样本在非完全字段名下的均值,将计算得到的均值作为待填补的缺失值;

或者,

当缺失类型为随机缺失时,则确定数据表中非完全字段名对应的数据值存在的第一样本集合以及非完全字段名对应的数据值缺失的第二样本集合;根据第一样本集合中与非完全字段名相关的完全字段名对应的数据值构建预测模型;将第二样本集合中各个样本在完全字段名对应的数据值输入至预测模型中,通过预测模型输出第二样本集合中各个样本在非完全字段名下的预测值;将预测值作为待填补的缺失值。

根据缺失值填补非完全字段名缺失的数据值。

上述数据表填补方法,在获取到用户上传的数据表时,就确定该数据表中缺失了数据值的非完全字段名,按照该非完全字段名与数据表中其它字段名之间的相关度确定该非完全字段名的缺失类型,然后根据数据表中已有的数据值按照该非完全字段名的缺失类型所对应的填补方式计算该非完全字段名对应的缺失值,就可以用该缺失值填补该非完全字段名缺失的数据值,按照上述步骤,可以填补数据表中各个非完全字段名缺失的数据值,能够有效填补数据表,这样,基于填补后的数据表所进行的数据分析的准确度也会显著提高。

应该理解的是,虽然图2至图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种数据表填补装置600,包括:数据表获取模块602、非完全字段名确定模块604、缺失类型确定模块606、缺失值计算模块608和填补模块610,其中:

数据表获取模块602,用于获取用户上传的数据表;

非完全字段名确定模块604,用于确定数据表中的非完全字段名,非完全字段名缺少数据值;

缺失类型确定模块606,用于根据非完全字段名与数据表中其它字段名之间的相关度确定非完全字段名的缺失类型;

缺失值计算模块608,用于根据数据表中已有的数据值,根据缺失类型对应的填补方式计算缺失值;

填补模块610,用于根据缺失值填补非完全字段名缺失的数据值。

在其中一个实施例中,缺失类型确定模块606还用于统计数据表中各个字段名对应的数据值的数量;确定数据表对应的样本总数;当数量小于样本总数时,将字段名确定为非完全字段名。

在其中一个实施例中,缺失类型确定模块606还用于当非完全字段名与数据表中其它字段名之间的相关度均小于第一预设值时,则确定非完全字段名的缺失类型为完全随机缺失;当非完全字段名与数据表中至少一个完全字段名之间的相关度大于第二预设值时,则确定非完全字段名的缺失类型为随机缺失;当非完全字段名与数据表中至少一个非完全字段名之间的相关度大于第三预设值时,则确定非完全字段名的缺失类型为非随机缺失。

在其中一个实施例中,缺失类型为完全随机缺失;缺失值计算模块608还用于当非完全字段名对应的数据值类型为字符型时,则根据非完全字段名已有的数据值统计相应的中位数,将统计的中位数作为非完全字段名对应的缺失值;或,根据非完全字段名已有的数据值统计相应的众数,将统计的众数作为非完全字段名对应的缺失值;当非完全字段名对应的数据值类型为数值型时,则根据非完全字段名已有的数据值统计相应的平均数,将统计的平均数作为非完全字段名对应的缺失值。

在其中一个实施例中,缺失类型为完全随机缺失;缺失值计算模块608还用于确定数据表中缺失了非完全字段名对应的数据值的第一类样本;确定数据表中非完全字段名对应的数据值存在的第二类样本;统计第一类样本的样本数量;计算样本数量占样本总数的比例;当比例大于阈值时,则将第一类样本在非完全字段名下的数据值替换为第一值;将第二类样本在非完全字段名下的数据值替换为第二值。

在其中一个实施例中,缺失类型为随机缺失;缺失值计算模块608还用于确定与非完全字段名相关的完全字段名;按照完全字段名的数据值对数据表中的样本进行聚类,得到聚类簇;确定数据表中缺失了非完全字段名对应的数据值的第三类样本;计算第三类样本所属的聚类簇所包括样本在非完全字段名下的均值,将计算得到的均值作为待填补的缺失值。

在其中一个实施例中,缺失类型为随机缺失;缺失值计算模块608还用于确定数据表中非完全字段名对应的数据值存在的第一样本集合以及非完全字段名对应的数据值缺失的第二样本集合;根据第一样本集合中与非完全字段名相关的完全字段名对应的数据值构建预测模型;将第二样本集合中各个样本在完全字段名对应的数据值输入至预测模型中,通过预测模型输出第二样本集合中各个样本在非完全字段名下的预测值;将预测值作为待填补的缺失值。

在其中一个实施例中,数据表填补装置600还包括相关度计算模块;相关度计算模块用于统计数据表中各个字段名对应的均值和标准差;根据均值和标准差,按照以下公式计算任意两个字段名之间的相关度:

其中,ρ(x,y)表示字段名x与字段名y之间的相关度;μx表示字段名x对应的均值;μy表示字段名y对应的均值;σx表示字段名x对应的标准差;σy表示字段名y对应的标准差;e[(x-μx)(y-μy)]是z的期望值,z=(x-μx)(y-μy)。

上述数据表填补装置600,在获取到用户上传的数据表时,就确定该数据表中缺失了数据值的非完全字段名,按照该非完全字段名与数据表中其它字段名之间的相关度确定该非完全字段名的缺失类型,然后根据数据表中已有的数据值按照该非完全字段名的缺失类型所对应的填补方式计算该非完全字段名对应的缺失值,就可以用该缺失值填补该非完全字段名缺失的数据值,按照上述步骤,可以填补数据表中各个非完全字段名缺失的数据值,能够有效填补数据表,这样,基于填补后的数据表所进行的数据分析的准确度也会显著提高。

关于数据表填补装置600的具体限定可以参见上文中对于数据表填补方法的限定,在此不再赘述。上述数据表填补装置600中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据表填补方法。该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的数据表填补装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成该数据表填补装置600的各个程序模块,比如,图6所示的数据表获取模块602、非完全字段名确定模块604、缺失类型确定模块606、缺失值计算模块608和填补模块610。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据表填补方法中的步骤。

例如,图7所示的计算机设备可以通过如图6所示的数据表填补装置600中的数据表获取模块执行步骤s202。计算机设备可通过非完全字段名确定模块执行步骤s204。计算机设备可通过缺失类型确定模块执行步骤s206。计算机设备可通过缺失值计算模块执行步骤s208。计算机设备可通过填补模块执行步骤s210。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据表填补方法的步骤。此处数据表填补方法的步骤可以是上述各个实施例的数据表填补方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据表填补方法的步骤。此处数据表填补方法的步骤可以是上述各个实施例的数据表填补方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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