分布式异构数据源主成份分析系统的制作方法

文档序号:16918958发布日期:2019-02-19 19:11阅读:133来源:国知局
分布式异构数据源主成份分析系统的制作方法

本发明属于数据分析技术领域,特别是涉及一种分布式异构数据源主成份分析系统。



背景技术:

异构数据集是分布在不同系统互不交互的的数据源,每个应用系统的数据源可抽象为多个数据集。数据集是具有相同主题的数据或信息的集合,可规划为数据库,数据中的表单或集合。为实现数据的共享和透明访问,用户普遍将数据集存储在异构分布式数据库(dbms),用数据处理语言访问数据库。由于dbms缺乏统计性能和高维数据集性质,通常需要将数据集从异构数据库中导出到客户端机器,以执行外部软件包分析。而通过不同数据库语句扩展统计功能,可以消除数据导出和客户端开销。通常,异构数据库可以采用相关分析和主成分分析(pca)进行统计分析数据集,相关矩阵用作pca的输入,达到降低维数的目的。

在实际生产生活中,不同部门的数据分别存放在相应部门系统平台上,而且每个系统平台数据的语法语义可能不同,这是数据集成的一个瓶颈。当要提取数据主成分时,必须要收集每个平台的数据,再通过第三方平台将数据统一集成到一个系统平台才可以获取到主成分。

面对分布式数据集,传统pca算法需要花销大量时间分析数据,需要对dbms中的数据集本进行转换,以克服最大列数限制,故存在着分析效率低下且准确性差的问题。



技术实现要素:

本发明解决的技术问题是如何提高分布式异构数据源主成份分析的准确性和效率。

为了达到上述目的,本发明提供一种分布式异构数据源主成份分析系统,所述系统包括:

转换单元,适于将原始数据集转换为对应的分布式异构数据集;所述分布式异构数据集中的每个异构数据集分别具有对应的属性列数;

判断单元,适于判断是否能够对所述分布式异构数据集进行主成份分析;

分析单元,适于当确定能够对所述分布式异构数据集进行主成份分析时,对所述分布式异构数据集执行主成份分析,得到对应的分析结果。

可选地,所述转换单元,适于对所述原始数据集中的数据依次执行语义映射集成、格式映射集成和结果映射集成,得到对应的分布式异构数据集。

可选地,所述判断单元,适于对所述分布式异构数据集中的每个异构数据集分别执行kmo检验,得到对应的kmo检验系数;对所述分布式异构数据集中的每个异构数据集分别执行巴特利球体检验,得到对应的巴特利球体检验p值;当所述分布式异构数据集中的每个异构数据集对应的kmo检验系数和巴特利球体检验p值均大于对应的阈值时,确定能够对所述分布式异构数据集进行主成份分析。

可选地,所述分析单元,适于计算所述分布式异构数据集中的本地异构数据集与非本地异构数据集之间的组合协方差矩阵;基于计算得出的组合协方差矩阵,计算所述非本地异构数据集对应的误差分量;当确定所述非本地异构数据集对应的误差分量大于所述非本地异构数据集的估算值时,将所述非本地异构数据集进行特征值优化,直至优化后的非本地异构数据集对应的误差分量小于优化后的非本地异构数据集的估算值;当优化后的非本地异构数据集对应的误差分量小于优化后的非本地异构数据集的估算值时,计算所述本地异构数据集与优化后的非本地异构数据集之间的组合协方差矩阵,作为所述分布式异构数据集的主成份分析结果。

可选地,所述分析单元,适于采用如下的公式计算所述分布式异构数据集中的本地异构数据集与非本地异构数据集之间的组合协方差矩阵:

其中,cov[x,y]表示非本地异构数据集x与本地异构数据集y之间的组合协方差矩阵,m表示所述分布式异构数据集的属性列数。

可选地,所述分析单元,适于采用如下的公式计算所述非本地异构数据集对应的误差分量:

其中,ε表示非本地异构数据集对应的误差分量,t表示非本地异构数据集的优化次数,σj表示对非本地异构数据集进行svd分解得到的第j个奇异值,j表示对非本地异构数据集进行svd分解得到的第j个分量。

可选地,所述分析单元,适于通过householder三对角化和qr分解将所述非本地异构数据集进行特征值优化。

与现有技术相比,本发明的有益效果为:

上述的方案,通过转换单元将原始数据集转换为对应的分布式异构数据集,并采用判断单元判断是否能够对所述分布式异构数据集进行主成份分析,且分析单元在确定能够对所述分布式异构数据集进行主成份分析时,对所述分布式异构数据集执行主成份分析,可以避免数据之间不具有相关性或相关性较小时对在分布式异构数据集进行主成份分析,可以提高分布式异构数据集主成份分析的准确性和效率。

进一步地,在对所述分布式异构数据集进行主成份分析时,当确定所述非本地异构数据集对应的误差分量大于所述非本地异构数据集的估算值时,将所述非本地异构数据集进行特征值优化,直至优化后的非本地异构数据集对应的误差分量小于优化后的非本地异构数据集的估算值,以减少非本地异构数据集因传输丢失的信息,故可以提高分析的准确性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例中的一种分布式异构数据源主成份分析方法的流程示意图;

图2是本发明实施例中的另一种分布式异构数据源主成份分析方法的流程示意图;

图3是本发明实施例中的一种分布式异构数据源主成份分析系统的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本发明实施例中有关方向性指示(诸如上、下、左、右、前、后等)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

如背景技术所述,现有技术中的分布式异构数据集进行主成份分析方式存在着效率低下且准确性较低且的问题。

本发明的技术方案通过将原始数据集转换为对应的分布式异构数据集,并判断是否能够对所述分布式异构数据集进行主成份分析,且在确定能够对所述分布式异构数据集进行主成份分析时,对所述分布式异构数据集执行主成份分析,可以避免数据之间不具有相关性或相关性较小时对在分布式异构数据集进行主成份分析,可以提高分布式异构数据集主成份分析的准确性和效率。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例中的一种分布式异构数据源主成份分析方法的流程示意图。参见图1,一种分布式异构数据源主成份分析方法,具体可以包括如下的步骤:

步骤s101:将原始数据集转换为对应的分布式异构数据集。

在具体实施中,所述分布式异构数据集中的每个异构数据集分别具有对应的属性列数。

在本发明一实施例中,在将原始数据集转换为对应的分布式异构数据集时,分别通过语义映射集成、结构映射集成和结果集成将原始数据集转换为对应的分布式异构数据集。具体而言:

对原始数据集执行语义集成,用于解决数据集集成语义冲突问题,具体功能包括:进行数据清洗,对各种脏数据进行对应方式的处理,得到标准的、干净的、连续的数据。例如,为解决数据的唯一性问题所采用的按主键去重,用sql或者excel“去除重复记录”即可;再如,按规则去重,即编写一系列的规则,对重复情况复杂的数据进行去重;又如,将不同渠道来的客户数据通过相同的关键信息进行匹配,进行合并去重等。

语义集成的基本任务是在不同的数据库中找出语义相关的对象。换言之,语义集成即是找出异构数据库间相同的属性和实体(记录),即属性匹配和实体匹配问题。其中,语义集成的主要难点是解决不同数据库之间的相同语义对象的识别问题,主要步骤为把异构数据库中用不同数据模型表示的数据转换成统一的数据模型表示,然后再进行集成。考虑到面向对象模型的描述能力,通常局部数据库都转换成面向对象数据模型表示,再在数据库间找出语义相关的属性和实体(记录),进而摒弃不需要的属性列,以此解决数据冲突,进行数据集成,为管理者和用户提供数据的统一视图。

对原始数据集进行格式集成,为消除原始数据集中的数据格式异构的问题,具体可以包括过滤少量非主要数据格式的数据,消除数据中如“/”、“#”、“$”等不需要的字符等。

对原始数据集进行结果集成,为将每个分布式平台下已经经过语义集成和格式集成处理后得到的数据分别调转到对应的数据仓库,并在需要时将公式化和过程化数据进行变量计算,如对每个样本值n进行function(n)的操作,从而将数据转化为对数据分析有参考作用的数据。

步骤s102:判断是否能够对所述分布式异构数据集进行主成份分析;当判断结果为是时,可以执行步骤s103;反之,则可以结束操作。

在具体实施中,判断是否能够对所述分布式异构数据集进行主成份分析,也即判断所述分布式异构数据集中的数据的属性之间是否具备相关性,也即是否存在对数据影响较大的主成份。

在本发明一实施例中,在判断是否能够对分布式异构数据集进行主成份分析时,通过对分布式异构数据集中的每个异构数据集分别执行kmo检验,以检测原始指标的相关性,以及对分布式异构数据集中的每个异构数据集分别执行巴特利球体检验原始指标,以检测原始指标是否为单位阵。当kmo检验系数大于检验系数阈值,如0.5,且巴特利球体检验p值小于预设的p值阈值,如0.05,此时方可以对分布式异构数据集进行主成分分析。

步骤s103:对所述分布式异构数据集执行主成份分析,得到对应的分析结果。

在具体实施中,当确定能够对所述分布式异构数据集进行主成份分析时,可以首先判断所述分布式异构数据集中的数据行数是否小于所述属性列数。其中,当判断结果为否时,可以直接计算集成后的数据集与原数据集的差值,获取到丢失信息,并采用现有的方式执行分布式异构数据集进行主成份分析操作即可;当判断结果为是时,由于云平台在数据划分中,每个节点的数据产生相互影响,尤其是样本数低于属性数时,可能会产生更大误差。再者,若是数据集矩阵记录量低于维数,也可能产生病态矩阵。因此,首先要进行householder三对角化和qr分解操作(即执行4.2步骤),优化特征值分解,再获取数据集成过程产生的误差分量,具体请参见图2中的详细介绍。

图2示出了本发明一实施例中的确定所述分布式异构数据集中的数据行数小于所述属性列数时,对所述分布式异构数据集执行主成份分析的方法的流程示意图。参见图2,具体可以包括如下的步骤:

步骤s201:计算所述分布式异构数据集中的本地异构数据集与非本地异构数据集之间的组合协方差矩阵。

在具体实施中,假设x和y是两个不同位置的异构数据库,数据库x的数据集为dx维,数据库y的数据集为dy维。一般异构数据库x和y通过公钥联系,链接这里假设的两张数据表,确保数据不失一般性。换言之,x是m×dx矩阵,y是m×dy矩阵。在本发明一实施例中,采用如下的公式计算所述分布式异构数据集中的本地异构数据集与非本地异构数据集之间的组合协方差矩阵:

其中,cov[x,y]表示非本地异构数据集x与本地异构数据集y之间的组合协方差矩阵,m表示所述分布式异构数据集的属性列数。

步骤s202:基于计算得出的组合协方差矩阵,计算所述非本地异构数据集对应的误差分量。

在具体实施中,假定异构数据从x向定位到y所在的地方传输,即x为非本地异构数据集,y为本地异构数据集。那么,异构数据集全局主成分中引入的误差实际来自非本地异构数据集x的估计。其中,当计算非本地异构数据集x离开自身的本地站点时,从分布式异构数据库导出全局主体组件的关键性问题是如何计算本地数据集。根据奇异值分解(singularvaluedecomposition,svd)算法,非本地异构数据集x可被分解为如下等式。

其中,uj是x的左奇异矩阵的第j列向量,vj是x的右奇异矩阵的第j列向量,奇异值按降序排列,即σ1>σ2>…>σj>…>σn。

通常情况下,对非本地异构数据集x进行svd分解得大的n个分量中,第一个分量占据非本地异构数据集x大部分信息,可以用于精确估计非本地异构数据集x值。相当于除传输的奇异值和奇异向量外,我们可以用等式中第一分量估计x的丢失信息。其中,异构数据库之间的传输数据量为o(rn2+m)。uj转移越多,对非本地异构数据集x的估计越准确,所需传输的数据量越多。根据公式(1),可以得到所述非本地异构数据集对应的误差分量为:

且:

其中,ε表示非本地异构数据集对应的误差分量,t表示非本地异构数据集的优化次数,σj表示对非本地异构数据集进行svd分解得到的第j个奇异值,j表示对非本地异构数据集进行svd分解得到的第j个分量,表示非本地异构数据集x的近似值,t表示uj传输的数量。

步骤s203:判断所述非本地异构数据集对应的误差分量是否大于所述非本地异构数据集的估算值;当判断结果为是时,可以执行步骤s205;反之,则可以执行步骤s204。

在具体实施中,判断所述非本地异构数据集对应的误差分量是否大于所述非本地异构数据集的估算值,即判断所述非本地异构数据集对应的误差分量与所述非本地异构数据集的估算值之间是否满足:

其中,表示非本地异构数据集x的近似值。

步骤s204:将计算得出的组合协方差矩阵作为所述分布式异构数据集的主成份分析结果。

在具体实施中,所述非本地异构数据集对应的误差分量小于或等于所述非本地异构数据集的估算值时,直接将计算得出的组合协方差矩阵作为所述分布式异构数据集的主成份分析结果即可。

步骤s205:将所述非本地异构数据集进行一次特征值优化。

在具体实施中,当非本地异构数据集x对应的误差分量小于或等于所述非本地异构数据集x的估算值时,通过对非本地异构数据集x执行多次特征值优化,以精确估计非本地异构数据集x的丢失信息。

在本发明一实施中,通过householder三对角化和qr分解将所述非本地异构数据集进行特征值优化,具体为:

首先,将非本地异构数据集x中的数据以全局平均值为中心,计算非本地异构数据集x单位协方差矩阵或相关矩阵:

x=ata(6)

其中,a表示集成数据。

接着,采用householder方法将协方差或相关矩阵处理为具有正交矩阵d的三角矩阵y:

其中,y0表示,xn-2表示,dn-2表示。

然后,采用如下的公式对三角矩阵y进行特征分解。

其中,ys是特征合并处理值的对角矩阵,q是正交矩阵。

最后,将合并两分解矩阵,可以得到如下结果:

ata=(pq)yn(pq)t(8)

其中,v=pq的列就是特征向量。

采用上述的方式执行完毕一次非本地异构数据集x的特征优化。

步骤s206:计算所述本地异构数据集与优化后的非本地异构数据集之间的组合协方差矩阵。

在具体实施中,当执行完毕一次非本地异构数据集x的特征优化后,接着所述本地异构数据集与优化后的非本地异构数据集之间的组合协方差矩阵,具体可以采用公式(1)进行计算,只要将其中的x替换为优化后的非本地异构数据集即可。

步骤s207:基于所述本地异构数据集与优化后的非本地异构数据集之间的组合协方差矩阵,计算优化后的非本地异构数据集对应的误差分量。

步骤s208:判断优化后的非本地异构数据集对应的误差分量是否大于优化后的非本地异构数据集的估算值;当判断结果为是时,可以从步骤s205开始执行;当判断结果为否时,可以直接执行步骤s209。

在具体实施中,优化后的非本地异构数据集对应的误差分量大于优化后的非本地异构数据集的估算值时,将优化后的非本地异构数据集进行再一次特征值优化。

步骤s209:将所述本地异构数据集与优化后的非本地异构数据集之间的组合协方差矩阵,作为所述分布式异构数据集的主成份分析结果。

在具体实施中,通过循环执行步骤s205至s209,直至优化后的非本地异构数据集对应的误差分量小于优化后的非本地异构数据集的估算值时,将所述本地异构数据集与优化后的非本地异构数据集之间的组合协方差矩阵作为所述分布式异构数据集的主成份分析结果。

在本发明一实施例中,为了提高效率,可以采用异步并行批处理机制进行分布式异构数据集的主成份分析操作,主要内容如下:

1、将一台或者几台服务器的压力水平拆分。一台数据库服务器就重点处理,降低io开销。

2、由于交换机处理归属位置寄存器(homelocationregister,hlr)指令的时候,存在阻塞操作,通过异步返回处理的方式,把处理任务队列中的任务先下达通知给交换机,然后交换机通过异步回调机制,反向通知处理模块,汇报任务的执行情况。这样处理模块就从主动的任务轮询等待,变成等待交换机执行结果的异步通知,这样就可以专注地进行处理数据的派发,不会受到某几个任务处理时长的限制,从而影响到后面整批次的数据处理。

3、待处理数据最好能放到一个批处理框架里面,批处理框架能很好地根据要处理数据的情况,进行配置参数调整,从而很好地满足实时性的要求。比如月初期间,可以加大处理参数的值,提高处理效率。平常的时候,可以适当降低处理参数的取值,降低系统的cpu/io开销。

4、具体的策略:hreadpoolexecutor.abortpolicy(java线程机制,表示拒绝任务并抛出异常)中,处理程序遭到拒绝将抛出运行时rejectedexecutionexception(线程拒绝异常)。然后是threadpoolexecutor.callerrunspolicy(java线程机制,表示拒绝任务,并在调用者线程中直接执行该任务)中,线程调用运行该任务的execute本身。提供反馈控制机制,能够减缓新任务的提交速度。其次是,threadpoolexecutor.discardpolicy(java线程机制,表示拒绝任务不做任何动作)中,不能执行的任务将被删除。最后是threadpoolexecutor.discardoldestpolicy(java线程机制,表示先丢弃任务队列中的第一任务,然后把这个任务加进这个队列)中,如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程)。处理任务低时,threadpoolexecutor(java线程池类)线程池会根据keepalivetime(存活时间)设置的时间单位来回收多余的“临时工线程”。

上述对本发明实施例中的分布式异构数据源主成份分析方法进行了详细的描述,下面将对上述的方法对应的装置进行介绍。

图3示出了本发明实施例中的一种分布式异构数据源主成份分析系统的结构。参见图3,本发明实施例中的一种分布式异构数据源主成份分析系统30可以包括:

转换单元301,适于将原始数据集转换为对应的分布式异构数据集;所述分布式异构数据集中的每个异构数据集分别具有对应的属性列数;在本发明一实施例中,所述转换单元301,适于对所述原始数据集中的数据依次执行语义映射集成、格式映射集成和结果映射集成,得到对应的分布式异构数据集。

判断单元302,适于判断是否能够对所述分布式异构数据集进行主成份分析;在本发明一实施例中,所述判断单元302,适于对所述分布式异构数据集中的每个异构数据集分别执行kmo检验,得到对应的kmo检验系数;对所述分布式异构数据集中的每个异构数据集分别执行巴特利球体检验,得到对应的巴特利球体检验p值;当所述分布式异构数据集中的每个异构数据集对应的kmo检验系数和巴特利球体检验p值均大于对应的阈值时,确定能够对所述分布式异构数据集进行主成份分析。

分析单元303,适于当确定能够对所述分布式异构数据集进行主成份分析时,对所述分布式异构数据集执行主成份分析,得到对应的分析结果。

在具体实施中,所述分析单元303,适于计算所述分布式异构数据集中的本地异构数据集与非本地异构数据集之间的组合协方差矩阵;基于计算得出的组合协方差矩阵,计算所述非本地异构数据集对应的误差分量;当确定所述非本地异构数据集对应的误差分量大于所述非本地异构数据集的估算值时,将所述非本地异构数据集进行特征值优化,直至优化后的非本地异构数据集对应的误差分量小于优化后的非本地异构数据集的估算值;当优化后的非本地异构数据集对应的误差分量小于优化后的非本地异构数据集的估算值时,计算所述本地异构数据集与优化后的非本地异构数据集之间的组合协方差矩阵,作为所述分布式异构数据集的主成份分析结果。

在本发明一实施例中,所述分析单元303,适于采用如下的公式计算所述分布式异构数据集中的本地异构数据集与非本地异构数据集之间的组合协方差矩阵:

其中,cov[x,y]表示非本地异构数据集x与本地异构数据集y之间的组合协方差矩阵,m表示所述分布式异构数据集的属性列数。

在本发明一实施例中,所述分析单元303,适于采用如下的公式计算所述非本地异构数据集对应的误差分量:

其中,ε表示非本地异构数据集对应的误差分量,t表示非本地异构数据集的优化次数,σj表示对非本地异构数据集进行svd分解得到的第j个奇异值,j表示对非本地异构数据集进行svd分解得到的第j个分量。

在本发明一实施例中,所述分析单元303,适于通过householder三对角化和qr分解将所述非本地异构数据集进行特征值优化。

采用本发明实施例中的上述的方案,通过将原始数据集转换为对应的分布式异构数据集,并判断是否能够对所述分布式异构数据集进行主成份分析,且在确定能够对所述分布式异构数据集进行主成份分析时,对所述分布式异构数据集执行主成份分析,可以避免数据之间不具有相关性或相关性较小时对在分布式异构数据集进行主成份分析,可以提高分布式异构数据集主成份分析的准确性和效率。

进一步地,在对所述分布式异构数据集进行主成份分析时,当确定所述非本地异构数据集对应的误差分量大于所述非本地异构数据集的估算值时,将所述非本地异构数据集进行特征值优化,直至优化后的非本地异构数据集对应的误差分量小于优化后的非本地异构数据集的估算值,以减少非本地异构数据集因传输丢失的信息,故可以提高分析的准确性。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,本发明要求保护范围由所附的权利要求书、说明书及其等效物界定。

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