数据处理的方法和装置与流程

文档序号:12039176阅读:275来源:国知局
数据处理的方法和装置与流程
本发明涉及数据处理技术领域,特别涉及一种数据处理的方法和装置。

背景技术:
随着互联网的发展,信息成爆炸式增长,需要处理的数据量也随之骤增。并且这些数据对应的特征维数高,甚至达到上亿级别,直接处理运算开销极大,因此,如何有效地对高维数的数据进行处理是迫切需要解决的问题。MapReduce是一种分布式编程模型,用于大规模数据集的并行运算,如大于1TB的数据集的并行运算。首先,Map映射函数对杂乱无章的原始数据进行特征提取得到key-value键值对,然后经过MapReduce框架的Shuffle阶段得到归纳好的数据集合,最后由Reduce化简函数对数据集合进行并行处理得到最终结果。其中,Reduce函数每次处理的所有键值对均共享同一个键。但是,上述处理过程中,MapReduce框架需要归纳处理的键值对数量相当大,运算开销大,耗时长,极大地影响数据处理速度。

技术实现要素:
为了提高数据的处理速度,本发明实施例提供了一种数据处理的方法和装置。所述技术方案如下:一方面,提供了一种数据处理的方法,包括:根据主键对样本进行排序,所述主键包括特征序号和样本序号,所述主键对应的列值为样本的特征值;以所述主键和特征值为输入键值对,使用第一算法模型计算得到每个类别中的每个特征的统计量,并将特征序号和统计量作为输出键值对输出;使用第二算法模型对所述输出键值对进行计算,得到每个特征对类别的贡献值,根据所述贡献值进行特征选取。另一方面,提供了一种数据处理的装置,包括:排序模块,用于根据主键对样本进行排序,所述主键包括特征序号和样本序号,所述主键对应的列值为样本的特征值;第一处理模块,用于以所述主键和特征值为输入键值对,使用第一算法模型计算得到每个类别中的每个特征的统计量,并将特征序号和统计量作为输出键值对输出;第二处理模块,用于使用第二算法模型对所述输出键值对进行计算,得到每个特征对类别的贡献值,根据所述贡献值进行特征选取。本发明提供的技术方案带来的有益效果是:通过根据主键对样本进行排序,以主键和对应的特征值为输入键值对,使用第一算法模型计算得到每个类别中的每个特征的统计量,并将特征序号和统计量作为输出键值对输出;使用第二算法模型对所述输出键值对进行计算,得到每个特征对类别的贡献值,根据所述贡献值进行特征选取,极大地提高了数据的处理速度,缩短了数据的处理时间,降低了运算开销,通过两次算法模型计算,实现了快速特征选择。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例1提供的数据处理的方法流程图;图2是本发明实施例2提供的数据处理的方法流程图;图3是本发明实施例2提供的MapReduce模型处理过程示意图;图4是本发明实施例3提供的数据处理的装置结构图之一;图5是本发明实施例3提供的数据处理的装置结构图之二;图6是本发明实施例3提供的数据处理的装置结构图之三。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例1参见图1,本实施例提供了一种数据处理的方法,包括:101:根据主键对样本进行排序,该主键包括特征序号和样本序号,该主键对应的列值为样本的特征值;102:以该主键和特征值为输入键值对,使用第一算法模型计算得到每个类别中的每个特征的统计量,并将特征序号和统计量作为输出键值对输出;103:使用第二算法模型对该输出键值对进行计算,得到每个特征对类别的贡献值,根据该贡献值进行特征选取。本实施例中,所述主键是指存储所述样本的分布式数据库中一个列或者列的组合,该列或列的组合的值能够唯一地标识数据库的表中的一行。主键与对应的列值也可以看成键值对。本实施例中的样本可以预先存储在数据库中,存储的样本可以按照类别存储,每种类别都有一个或者多个样本。特征是指与样本有关的元素,可以在一定程度上反映样本的特性,特征可以根据需要设置。其中,每个特征都具有一个特征序号,用来标识该特征,每个特征还具有一个特征值,特征值的具体数值可以按照预设的规则统计或计算得到。本实施例中,所述第一算法模型或者所述第二算法模型具体地可以为MapReduce模型,当然,在其它实施方式下也可以采用其它算法模型,本实施例对此不做具体限定。本实施例中,所述贡献值是指一个特征对某个类别的代表性,贡献值越高, 表明该特征对该类别的代表性越强,贡献值越低,表明该特征对该类别的代表性越弱。因此,通过贡献值可以反映相应的特征是否能够代表一个类别,从而可以依据贡献值来进行特征选取。结合上述方法,在第一种实施方式下,根据主键对样本进行排序,包括:当该主键由特征序号和样本序号拼接而成时,先按照特征序号对样本进行排序,然后对于相同特征序号的样本按照样本序号进行排序;或者,当该主键由样本序号和特征序号拼接而成时,先按照样本序号对样本进行排序,然后对于相同样本序号的样本按照特征序号进行排序。结合上述方法,在第二种实施方式下,使用第一算法模型计算得到每个类别中的每个特征的统计量,包括:使用第一算法模型,对每个类别的样本进行特征值统计,和/或,对每个类别的样本进行特征出现次数的统计。结合上述第二种实施方式,在第三种实施方式下,对每个类别的样本进行特征值统计,包括:对每个类别,计算属于该类别的所有样本的特征值之和;和/或,对每个类别,计算属于该类别的所有样本的特征值的平方之和。结合上述第二种实施方式,在第四种实施方式下,对每个类别的样本进行特征出现次数的统计,包括:在每个类别中,对每个特征记录该特征在该类别的所有样本中特征值不为零的次数,作为该特征在该类别的样本中出现的次数。结合上述方法,在第五种实施方式下,使用第二算法模型对该输出键值对进行计算,得到每个特征对类别的贡献值,包括:使用第二算法模型,统计所有类别的样本的特征值和/或统计所有类别的样本中特征出现的次数,并根据统计的结果计算每个特征对类别的贡献值。结合上述方法,在第六种实施方式下,根据该贡献值进行特征选取,包括:按照贡献值从大到小确定指定个数个贡献值,在所有特征中选出该确定的 贡献值对应的特征。本实施例提供的上述方法,通过根据主键对样本进行排序,以主键和对应的特征值为输入键值对,使用第一算法模型计算得到每个类别中的每个特征的统计量,并将特征序号和统计量作为输出键值对输出;使用第二算法模型对所述输出键值对进行计算,得到每个特征对类别的贡献值,根据所述贡献值进行特征选取,极大地提高了数据的处理速度,缩短了数据的处理时间,降低了运算开销,通过两次算法模型计算,实现了快速特征选择。实施例2参见图2,本实施例提供了一种数据处理的方法,包括:201:根据主键对样本进行排序,该主键包括特征序号和样本序号,该主键对应的列值为样本的特征值;本实施例中,所述主键是指存储所述样本的分布式数据库中一个列或者列的组合,该列或列的组合的值能够唯一地标识数据库的表中的一行。主键与对应的列值也可以看成键值对。本实施例中的主键为列的组合,包括特征序号和样本序号,该主键对应的列值为样本的特征值。在主键中,特征序号与样本序号的拼接顺序有两种,一种是特征序号与样本序号进行拼接,另一种是样本序号与特征序号进行拼接,本实施例对此不做具体限定。本实施例中的样本可以预先存储在数据库中,存储的样本可以按照类别存储,每种类别都有一个或者多个样本。特征是指与样本有关的元素,可以在一定程度上反映样本的特性,特征可以根据需要设置。其中,每个特征都具有一个特征序号,用来标识该特征,每个特征还具有一个特征值,特征值的具体数值可以按照预设的规则统计或计算得到。例如,样本为2本书,分别属于数学、体育两个类别,特征包括:篮球和公式,其中,“篮球”的特征值为该词在样本中出现的次数,对应2本书的特征值分别为:8,0;“公式”的特征值为该词在样本中出现的次数,对应2本书的特 征值分别为:0,5。本步骤中,一种实施方式下,根据主键对样本进行排序,可以包括:当该主键由特征序号和样本序号拼接而成时,先按照特征序号对样本进行排序,然后对于相同特征序号的样本按照样本序号进行排序。例如,有3个样本,样本序号分别为1,2,3,有3个特征,特征序号分别为1,2,3,按照先特征序号排序后样本序号排序的方法可以得到如表1所示的排序结果。表1特征序号1+样本序号1特征序号1+样本序号2特征序号1+样本序号3特征序号2+样本序号1特征序号2+样本序号2特征序号2+样本序号3特征序号3+样本序号1特征序号3+样本序号2特征序号3+样本序号3本步骤中,另一种实施方式下,根据主键对样本进行排序,可以包括:当该主键由样本序号和特征序号拼接而成时,先按照样本序号对样本进行排序,然后对于相同样本序号的样本按照特征序号进行排序。例如,有3个样本,样本序号分别为1,2,3,有3个特征,特征序号分别为1,2,3,按照先样本序号排序后特征序号排序的方法可以得到如表2所示的排序结果。表2样本序号1+特征序号1样本序号1+特征序号2样本序号1+特征序号3样本序号2+特征序号1样本序号2+特征序号2样本序号2+特征序号3样本序号3+特征序号1样本序号3+特征序号2样本序号3+特征序号3202:以该主键和特征值为输入键值对,使用第一MapReduce模型,对每个类别的样本进行特征值统计,和/或,对每个类别的样本进行特征出现次数的统计,并将特征序号和统计量作为输出键值对输出;本实施例是以MapReduce模型作为算法模型进行说明的,当然,采用其它算法模型也能够实现,此处不做过多说明。本实施例中,第一MapReduce模型使用Map映射函数和Reduce化简函数来进行数据处理。其中,Map映射函数对主键对应的特征值进行计算得到中间值,该中间值包括但不限于:特征值本身、特征值的平方值、特征值是否为零的计数值等等,如特征值为零则计数值为零,特征值不为零则计数值为1,本实施例对此不做具体限定。MapReduce框架将Map函数输出的具有相同特征序号的中间值,归纳为中间值集合输出给Reduce函数。Reduce函数对中间值集合中的中间值进行统计,如特征值的求和、特征值平方值的求和、计数值的求和等等,统计后得到每个特征的统计量,并将特征序号与该统计量作为输出键值对输出。进一步地,Reduce函数还可以将该输出键值对存储到上述数据库中。其中,该输出键值对中特征序号作为键key,统计量作为与该键对应的值value。所述第一MapReduce模型中的Map函数可以为多个,Reduce函数也可以为多个。每个Reduce函数处理的键值对均共享同一个键。例如,参见图3,为第一MapReduce模型的处理过程示意图。其中,3个样本的9条记录分别输入到2个Map函数中,主键作为输入的键,由特征序号和样本序号拼接组成,且在输入至Map函数前已经对主键进行了排序如图所示。经Map函数计算各个特征值的平方以及特征值是否为零的计数值后,得到的中间值由MapReduce框架按照特征序号归纳为中间集合,对于Mapper1函数输出的键值对归纳后得到“特征序号1”及对应的“中间集合1”,以及“特征序号2”及对应的“中间集合2_1”;对于Mapper2函数输出的键值对归纳后得到“特征序号2”及对应的“中间集合2_2”,以及“特征序号3”及对应的“中间集合3”。 其中,“特征序号1”及对应的“中间集合1”输入到Reducer1函数中进行统计量的计算,如将该中间集合1中的所有样本的特征值累加,或者,将该中间集合1中的所有样本的特征值平方累加,或者,将该中间集合中的所有样本的计数值累加等等,得到统计量1,并将特征序号1与对应的统计量1作为输出键值对输出。类似的,Reducer2函数和Reducer3函数也进行统计量的计算,并将特征序号与对应的统计量作为输出键值对输出。由上述例子可以明显看出,MapReduce框架对Map函数的输出进行归纳处理的过程中,由于作为Map函数的输入的主键已经是排序后的主键,因此,降低了合并整理的中间数据量,减少了合并的次数,提高了数据处理的速度。步骤202中,对每个类别的样本进行特征值统计,可以包括:对每个类别j,计算属于该类别j的所有样本的特征值之和和/或,对每个类别j,计算属于该类别j的所有样本的特征值的平方之和以M个样本,特征维数为N为例进行说明,其中,M个样本属于W个类别,j=1,2,…,W;属于第j个类别的样本i的第f个特征的特征值为f=1,2,…,N。具体地,一个样本只可能属于一个类别,不会同时属于多个类别,一个类别中可以包括多个样本,所述可以用如下公式来计算:可以用如下公式来计算:步骤202中,对每个类别的样本进行特征出现次数的统计,可以包括:在每个类别j中,对每个特征f记录该特征f在该类别j的所有样本中特征值不为零的次数,作为该特征在该类别的样本中出现的次数具体地,可以用如下公式来计算:本实施例以计算上述三个统计量中的至少一个为例进行说明,在实际应用中,可以任意组合这三个统计量,当然,在其它实施方式中,也可以计算其它的统计量,或者,将其它统计量与上述三个统计量进行任意的组合,本实施例对此不做具体限定。203:使用第二MapReduce模型,统计所有类别的样本的特征值和/或统计所有类别的样本中特征出现的次数,并根据统计的结果计算每个特征对类别的贡献值;其中,所述第一MapReduce模型的输出键值对作为第二MapReduce模型的输入键值对,键为特征序号,值为统计量。本实施例中,所述贡献值是指一个特征对某个类别的代表性,贡献值越高,表明该特征对该类别的代表性越强,贡献值越低,表明该特征对该类别的代表性越弱。因此,通过贡献值可以反映相应的特征是否能够代表一个类别,从而可以依据贡献值来进行特征选取。所述第二MapReduce模型计算贡献值rankf的公式可以有多种,包括但不限于:其中,所述参见上述公式(1)至公式(3),此处不赘述。204:根据得到的贡献值进行特征选取。具体地,本步骤可以包括:按照贡献值从大到小确定指定个数个贡献值,在所有特征中选出该确定的 贡献值对应的特征。所述指定个数可以根据需要设置,具体数值本实施例对此不做限定。例如,所述指定个数为T,可以将得到的贡献值按照从大到小的顺序排序,然后选出前面T个贡献值,将该T个贡献值对应的特征选出作为最终结果。本实施例中,第二MapReduce模型使用Map函数和Reduce函数进行数据处理。其中,Map函数的输入为上述特征序号和对应的统计量,Map函数根据所述统计量进行计算得到每个特征对类别的贡献值,并将特征序号作为key,将贡献值作为value输出。Reduce函数对Map函数输出的所有贡献值进行排序,根据排序的结果在所有特征中选取需要的特征,得到最终结果。所述第二MapReduce模型的Map函数可以使用上述公式(4)来计算贡献值,当然,也可以使用其它公式来计算贡献值,本实施例对此不做具体限定。本实施例提供的上述方法,通过根据主键对样本进行排序,以主键和对应的特征值为输入键值对,使用第一MapReduce模型计算得到每个类别中的每个特征的统计量,并将特征序号和统计量作为输出键值对输出;使用第二MapReduce模型对所述输出键值对进行计算,得到每个特征对类别的贡献值,根据所述贡献值进行特征选取,极大地提高了数据的处理速度,缩短了数据的处理时间,降低了运算开销,通过两次MapReduce模型计算,实现了快速特征选择。实施例3参见图4,本实施例提供了一种数据处理的装置,包括:排序模块401,用于根据主键对样本进行排序,该主键包括特征序号和样本序号,该主键对应的列值为样本的特征值;第一处理模块402,用于以该主键和特征值为输入键值对,使用第一算法模型计算得到每个类别中的每个特征的统计量,并将特征序号和统计量作为输出键值对输出;第二处理模块403,用于使用第二算法模型对该输出键值对进行计算,得到每个特征对类别的贡献值,根据该贡献值进行特征选取。本实施例中,所述主键是指存储所述样本的分布式数据库中一个列或者列的组合,该列或列的组合的值能够唯一地标识数据库的表中的一行。主键与对应的列值也可以看成键值对。本实施例中的主键包括特征序号和样本序号,该主键对应的列值为样本的特征值。本实施例中,所述第一算法模型或者所述第二算法模型具体地可以为MapReduce模型,当然,在其它实施方式下也可以采用其它算法模型,本实施例对此不做具体限定。本实施例中的样本可以预先存储在数据库中,存储的样本可以按照类别存储,每种类别都有一个或者多个样本。特征是指与样本有关的元素,可以在一定程度上反映样本的特性,特征可以根据需要设置。其中,每个特征都具有一个特征序号,用来标识该特征,每个特征还具有一个特征值,特征值的具体数值可以按照预设的规则统计或计算得到。本实施例中,所述贡献值是指一个特征对某个类别的代表性,贡献值越高,表明该特征对该类别的代表性越强,贡献值越低,表明该特征对该类别的代表性越弱。因此,通过贡献值可以反映相应的特征是否能够代表一个类别,从而可以依据贡献值来进行特征选取。结合上述装置,在第一种实施方式下,排序模块401包括:第一排序单元,用于当该主键由特征序号和样本序号拼接而成时,先按照特征序号对样本进行排序,然后对于相同特征序号的样本按照样本序号进行排序;或者,第二排序单元,用于当该主键由样本序号和特征序号拼接而成时,先按照样本序号对样本进行排序,然后对于相同样本序号的样本按照特征序号进行排序。参见图5,结合上述装置,在第二种实施方式下,第一处理模块402包括:统计单元402a,用于使用第一算法模型,对每个类别的样本进行特征值统计,和/或,对每个类别的样本进行特征出现次数的统计。结合上述第二种实施方式,在第三种实施方式下,统计单元402a用于:对每个类别,计算属于该类别的所有样本的特征值之和;和/或,对每个类别,计算属于该类别的所有样本的特征值的平方之和。结合上述第二种实施方式,在第四种实施方式下,统计单元402a用于:在每个类别中,对每个特征记录该特征在该类别的所有样本中特征值不为零的次数,作为该特征在该类别的样本中出现的次数。参见图6,结合上述装置,在第五种实施方式下,第二处理模块403包括:计算单元403a,用于使用第二算法模型,统计所有类别的样本的特征值和/或统计所有类别的样本中特征出现的次数,并根据统计的结果计算每个特征对类别的贡献值。结合上述装置,在第六种实施方式下,第二处理模块403包括:选取单元403b,用于按照贡献值从大到小确定指定个数个贡献值,在所有特征中选出该确定的贡献值对应的特征。本实施例提供的上述装置可以执行上述任一方法实施例中提供的方法,详细过程见方法实施例中的描述,此处不赘述。本实施例提供的上述装置,通过根据主键对样本进行排序,以主键和对应的特征值为输入键值对,使用第一算法模型计算得到每个类别中的每个特征的统计量,并将特征序号和统计量作为输出键值对输出;使用第二算法模型对所述输出键值对进行计算,得到每个特征对类别的贡献值,根据所述贡献值进行特征选取,极大地提高了数据的处理速度,缩短了数据的处理时间,降低了运算开销,通过两次算法模型计算,实现了快速特征选择。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于 一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1