一种多样式数据的标准化处理方法与流程

文档序号:16918920发布日期:2019-02-19 19:11阅读:384来源:国知局
一种多样式数据的标准化处理方法与流程

本发明涉及大数据技术领域,尤其是一种支持多样式数据输入并可选择多种算法进行数据标准化的方法。



背景技术:

随着大数据的发展,针对各种业务模型的数据分析越来越多。数据的分析涉及的数据方方面面,而且有时各数据的量化单位不同;导致了数据在进行分析时,量级不配置;从而影响了数据分析过程中的准确度、模型的收敛速度等等;如一列数据在【1,10】区间的数据与另外一列数据在【10000,99999】区间的数据进行线性分析时,由于量级相差太大导致数据的关联性相差太大,影响了数据的预测准确度;如果把数据都映射在【0,1】区间,则对于线性分析的过程,可极大反应出不同列数据之前的关系。

数据标准化的目标是把数据变为【0,1】之间的小数,主要是为了数据处理方便提出来的;把数据映射到0~1范围之内处理,更加便捷快速。另外是把有量纲表达式变为无量纲表达式,标准化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

进行数据的标准化有两个好处理:一是提升模型的收敛速度,例如x1的取值为0-2000,而x2的取值为1-5,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢。相比之下,标准化后的迭代就会很快。二是提高精度,这在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,标准化后的数据取值范围比较小,涉及到距离计算时其对结果的影响远比没标准化的数据带来的小,所以这就会造成精度的损失。所以标准化很有必要,它可以让各个特征对结果做出的贡献相同。

由上可见越来越多的数据分析前进行数据标准化的重要性,而且数据的输入涉及了多类型的数据处理。



技术实现要素:

本发明解决的技术问题在于提供一种多样式数据的标准化处理方法;抽取了多种数据类型的输入及多种数据标准化算法的实现;通过统一的方式,实现了用于多种数据类型的高效通用的数据标准化方法

本发明解决上述技术问题的技术方案是:

所述的方法是对多种不同的数据源在进行数据分析时的数据输入特征进行提取分析,对各类数据源在数据分析前进行数据标准化处理,提高数据的迭代速度、收敛速度,去除数据的单位限制,将不同的数据转化为无量纲的纯数值,统一数据间的量级,便于不同单位或量级的指标能够进行比较和加权;通过min-max标准化、log函数转换、atan函数转换、z-score标准化等算法把数据标准地映射到【0,1】区间上;规范分析的数据区间。

所述的方法包括以下几个步骤:

步骤1:获取要进行数据标准化的数据,分析数据类型;把进行大数据标准化的jar包上传到hadoop集群的服务器目录下;

步骤2:按数据类型,分别配置具体的参数,文本类输入数据目录地址、读取编码、读取的分隔符,关系型数据类型输入数据库地址、端口、数据库名称、用户名、密码、数据表,大数据类型需输入hdfs的目录地址、分隔符等内容;

步骤3:选择进行数据标准化的算法,通过选择min-max标准化、log函数标准化、atan函数标准化、z-score标准化,实现不同算法的数据标准化转换;

步骤4:选择不同的数据标准化转换算法后,中间件后台进行相关的数据计算,计算的过程中把数据转换至各类相匹配的数据类型上,并输出各数据列的相关最大值、最小值、均值、标准差数据;

步骤5:数据转换完成后,数据分析的相关算法可通过在转换后的文件或表上读取转换后的数据进行分析,同时对于分析后进行新数据的预测及计算,可通过获取各数据列的最大值、最小值、均值、标准差数据进行转换后,再输入到数据分析中进行预测。

所述的方法采用java的面向对象的编程方法,抽取各数据类型的数据读取接口、获取各列最大值接口、获取各列最小值接口、获取各列均值接口、获取各列标准差接口,通过实现相关接口的方法,实现对各数据类型的读取,并支持后续的数据源扩展。

所述的方法中,

对于文本类数据类型,通过加入读取txt文件、excel文件、csv文件的相关类包,并在输入时,配置文件读取目录、分隔符、读取编码用于文件的读取时使用;

对于关系型数据类型,支持oracle、mysql、db2、mssql四种主流的关系型数据库,使用jdbc的方法对关系型的数据类型进行读取,加了各数据类型的相关类包,在输入时,配置各关系型数据类型、数据库地址、使用端口、数据库名称、用户名、密码、具体需进行标准化的数据表;

对于大数据类型,主要支持hdfs,同时支持mongodb、hive的数据标准化;对于hdfs的数据标准化,通过二次开发mapreduce程序把数据标准化的jar上传到hadoop平台上,通过远程调用从而实现hdfs数据的标准化处理,需配置hdfs的具体目录及文件的分隔符;对于mongodb及hive数据的标准化,通过调用相关的接口实现数据的接口,并输入相关的配置参数;

前述的对不同的数据类型的读取及后续的操作,通过java面向对象的思路抽取了相关的接口,后续有其他类型的数据接入时,直接实现相关的接口就可快速地实现新数据类型的接入。

所述的min-max标准化方法,需把输入的数据的各列数据的最大值max、最小值min求出来,然后使用公式,从而使各列的数据映射在【0,1】这个结果集合上;公式中:max为每列数据的最大值;min为每列数据的最小值,x为每列中的数据;

所述的log函数标准化方法,需通过获取输入的数据的各列数据的最大值max,然后使用公式,使各列的数据映射在【0,1】这个结果集合上;公式中,max为每列数据的最大值,x为每列中的数据,为对每列中的数据及最大值进行以10为底取对数;

所述的atan函数标准化,是直接使用反正切函数实现数据的标准化,只是反正切函数要求数据是大于0的情况数据才能映射在【0,1】结果集上,如果数据是小于0的情况,数据的结果是映射在【-1,0】的结果集上,antan函数标准化的公式为:;公式中为对每个列数据进行取反正切值,指圆周率,约等于3.141592654;

所述的z-score标准化方法,需通过获取输入的数据的各列数据的均值及各列数据的标准差,然后使用公式,经过处理的数据符合标准正态分布;均值的计算公式为:,标准差的计算公式为:;均值计算公式中:n为每列的数据总数,为每列中的具体数据,把所有的数据进行累加;标准差计算公式中:n为每列的数据总数,为每列的均值,为每列中的具体数据。

前述的数据标准化方法通过抽取为java接口的形式进行实现,可后续扩展其他的数据标准化方法,包括:decimalscaling小数定标标准化、logistic/softmax变换标准化、softmax函数标准化、模糊量化模式标准化等方法。

所述的数据标准化需对数据进行两次的操作,第一次通过遍历数据获取最大值、最小值、均值、标准差,第二次再按各标准化的算法,对各数据进行计算并输出;

对于关系型的数据类型,通过调用sql语句的max、min、avg及标准差的语句实现;

对于文本类的数据,采用对数据进行分块分线程的处理方法,多线程处理完成后,再汇总到主线程进行统一的处理;

对于大数据的数据类型,通过定制开发一个mapruduce的程序实现对hdfs的最大值、最小值、均值、标准差的计算,并对数据进行算法公式的处理,具体的处理效率依赖于执行中间件的hadoop集群性能;

其他的mongodb、hive有相关的获取最大值、最小值、均值、标准差的接口,获取相关的数据后遍历所有的数据进行计算。

所述的按不同的数据类型输入、选择转换算法后,计算后的数据输出按不同的数据类型在原来的数据名称上增加_ch标示,文件类的数据文件名为:gdex.txt转换后在相同的目录下,生成新的数据文件文件名为:gdex_ch.txt,同时多生成另外一个文件gdex_colm.txt,用于保存获取的各数据列的最大值、最小值、均值、标准差的数据,以json的形式保存;对于关系型数据类型以生成两个表数据进行保存;大数据类型同样生成新的目录名称用于保存相关的转换数据。

本发明的有益效果是:

本方法通过组件化的方式,使多样式的数据能快速地实现数据的标准化,不管输入的是哪类数据源,通过选择适合的算法,用统一的方式,进行快速的数据标准化转换,并输出对应的数据的后续转换公式,在数据分析过程前进行高效数据的分析,提供了一种数据准确快速转换的方法。

附图说明

下面结合附图对本发明进一步说明:

附图1是本发明流程图。

具体实施方式

如图所示,本发明的方法步骤如下:

步骤1:获取要进行数据标准化的数据,分析数据类型;对于大数据的数据标准化,需把进行大数据标准化的jar包上传到hadoop集群的服务器目录下;

步骤2:按数据类型,分别配置具体的参数,如文本类需输入数据目录地址、读取编码、读取的分隔符等,关系型数据类型需输入数据库地址、端口、数据库名称、用户名、密码、数据表等,大数据类型需输入hdfs的目录地址、分隔符等内容;

步骤3:选择进行数据标准化的算法,通过选择min-max标准化、log函数标准化、atan函数标准化、z-score标准化,实现不同算法的数据标准化转换;

步骤4:选择不同的数据标准化转换算法后,中间件后台进行相关的数据计算,计算的过程中把数据转换至各类相匹配的数据类型上,并输出各数据列的相关最大值、最小值、均值、标准差数据;

步骤5:数据转换完成后,数据分析的相关算法可通过在转换后的文件或表上读取转换后的数据进行分析,同时对于分析后进行新数据的预测及计算,可通过获取各数据列的最大值、最小值、均值、标准差数据进行转换后,再输入到数据分析中进行预测。

输入的数据类型有多种情况,作为用于多数据类型的通用数据标准化的方法,需尽大可能的满足多种数据类型的输入及输出;方法采用java的面向对象的编程方法,抽取了各数据类型的数据读取接口、获取各列最大值接口、获取各列最小值接口、获取各列均值接口、获取各列标准差接口,通过实现相关接口的方法,实现对各数据类型的读取,并支持后续的数据源扩展。

对于不同的数据类型,需完成不同的配置输入及实现方法:

步骤1、对于文本类数据类型,需通过加入读取txt文件、excel文件、csv文件的相关类包,并在输入时,需配置文件读取目录、分隔符、读取编码用于文件的读取时使用;

步骤2、对于关系型数据类型,支持oracle、mysql、db2、mssql四种主流的关系型数据库,系统使用jdbc的方法对关系型的数据类型进行读取,加入了各数据类型的相关类包,在输入地,需配置各关系型数据类型、数据库地址、使用端口、数据库名称、用户名、密码、具体需进行标准化的数据表;

步骤3、对于大数据类型,主要支持hdfs,同时支持mongodb、hive的数据标准化;对于hdfs的数据标准化,通过二次开发mapreduce程序把数据标准化的jar上传到hadoop平台上,通过远程调用从而实现hdfs数据的标准化处理,需配置hdfs的具体目录及文件的分隔符;对于mongodb及hive数据的标准化,通过调用相关的接口实现数据的接口,并输入相关的配置参数;

步骤4、以上的对不同的数据类型的读取及后续的操作,通过java面向对象的思路抽取了相关的接口,后续有其他类型的数据接入时,直接实现相关的接口就可快速地实现新数据类型的接入。

数据的标准化算法主要目的是把将数据按比例缩放,使之落入一个小的特定区间,在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。按数据的转换实现过程,具体可分为:min-max标准化、log函数标准化、atan函数标准化、z-score标准化四种方式;

四种方式的具体转换算法如下:

步骤1、min-max标准化方法,需把输入的数据的各列数据的最大值max、最小值min求出来,然后使用公式,从而使各列的数据映射在【0,1】这个结果集合上;

步骤2、log函数标准化方法,需通过获取输入的数据的各列数据的最大值max,然后使用公式,使各列的数据映射在【0,1】这个结果集合上;

步骤3、atan函数标准化,是直接使用反正切函数实现数据的标准化,只是反正切函数要求数据是大于0的情况数据才能映射在【0,1】结果集上,如果数据是小于0的情况,数据的结果是映射在【-1,0】的结果集上,antan函数标准化的公式为:;

步骤4、z-score标准化方法,需通过获取输入的数据的各列数据的均值及各列数据的标准差,然后使用公式,经过处理的数据符合标准正态分布;均值的计算公式为:,标准差的计算公式为:;

步骤5、以上的数据标准化方法通过抽取为java接口的形式进行实现,同时可后续扩展其他的数据标准化方法,如:decimalscaling小数定标标准化、logistic/softmax变换标准化、softmax函数标准化、模糊量化模式标准化等方法。

4种数据标准化的方法,各有特点:min-max标准化,需获取各数据的最大值、最小值,当新数据加入时,可能导致最大值、最小值的变化从而使数据需重新计算;log函数标准化,需获取各数据的最大值,在新数据加入时可能导致最大值的变化从而使数据需重新计算;atan函数标准化,需要数据都大于等于0的情况,数据映射结果才会落在【0,1】的区间,如果数据小于0,数据映射结果会落在【-1,0】区间上;z-score标准化,需获取各数据的均值、标准差,标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平,适用于数据的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。

对于不同的数据类型的按不同的算法的数据标准化计算方法,基本需对数据进行两次的操作,第一次通过遍历数据获取最大值、最小值、均值、标准差,第二次再按各标准化的算法,对各数据进行计算并输出;对于关系型的数据类型,基本可以通过调用sql语句的max、min、avg及标准差的语句就能实现;对于文本类的数据,考虑到文本的数量及多,在进行两次的遍历过程需耗费较多的时间,系统采用对数据进行分块分线程的处理方法,多线程处理完成后,再汇总到主线程进行统一的处理;对于大数据的数据类型,通过定制开发一个mapruduce的程序实现对hdfs的最大值、最小值、均值、标准差的计算,并对数据进行算法公式的处理,具体的处理效率依赖于执行中间件的hadoop集群性能;其他的mongodb、hive有相关的获取最大值、最小值、均值、标准差的接口,获取相关的数据后遍历所有的数据进行计算。

按不同的数据类型输入、选择转换算法后,计算后的数据输出按不现的数据类型智能在原来的数据名称上增加_ch标示,例如文件类的数据(文件名为:gdex.txt)转换后在相同的目录下,生成新的数据文件(文件名为:gdex_ch.txt),同时多生成另外一个文件(gdex_colm.txt),用于保存获取的各数据列的最大值、最小值、均值、标准差的数据,以json的形式保存;对于关系型数据类型以生成两个表数据进行保存;大数据类型同样生成新的目录名称用于保存相关的转换数据。

通过对常用的数据类型的分析,并考虑常用的数据标准化算法,通过一个整体的过程,实现在数据分析时,能快速高效地处理多种数据类型的标准化问题,从而提高数据分析前的数据统一处理方法。

本发明方法通过对多种不同的数据源在进行数据分析时的数据输入特征进行分析,对各类数据源在数据分析前进行数据标准化处理;数据标准化是为了提高数据的迭代速度、收敛速度,去除数据的单位限制,将不同的数据转化为无量纲的纯数值,以便于不同单位或量级的指标能够进行比较和加权,把数据统一映射到【0,1】区间上,主要通过min-max标准化、log函数转换、atan函数转换、z-score标准化等算法进行转换,经过这样的处理使相关数据统一在相同的区间上,从而在分析的过程中提高数据分析的准确度。本方法通过组件化的方式,使不同的多种数据源,通过选择适合的算法,用统一的方式,进行快速的数据转换,并输出相关的数据的后续转换公式,从而为相关的数据分析过程中进行高效数据的分析,提供了一种数据准确快速转换的方法。

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