基于统计的多维数据克隆的制作方法

文档序号:20605675发布日期:2020-05-01 22:04阅读:329来源:国知局
基于统计的多维数据克隆的制作方法
本发明要求于2017年4月5号递交的发明名称为“基于统计的多维数据克隆”的第15/479,843号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文中。本发明大体上涉及数据克隆,在特定实施例中,涉及基于统计的多维数据克隆的技术和机制。
背景技术
:服务提供商例如蜂窝网络服务提供商、互联网服务提供商或银行服务提供商,通常在向其客户提供服务的过程中生成大量用户相关数据。在许多情况下,所述用户相关数据包括敏感信息,例如安全敏感信息或私有信息,对于这些数据,第三方不可访问或不可用。但是,这种数据通常最适用于基于所述数据或利用所述数据的应用。例如,第三方可能希望使用手机用户相关数据测试为手机用户提供在线购物服务而开发的软件应用。在这种情况下,需要开发能够克隆所述用户相关数据的数据克隆技术,以便所述第三方无需访问所述用户相关数据本身。技术实现要素:通过本发明中描述基于统计的多维数据克隆的实施例,通常可以实现技术优势。根据本发明的一方面,提供了一种方法,所述方法包括:通过一个或多个处理器获取数据集中的第一组数据样本的统计信息,其中,所述第一组数据样本中的每一个包括与不同条目类别对应的数据条目,所述统计信息包括第一组统计参数,所述第一组统计参数是从第一数据矩阵中获取的,其中,所述第一数据矩阵是所述第一组数据样本中的多个数据条目基于eckart-young定理形成的,并且所述统计信息包括第二组统计参数,所述第二组统计参数指示所述第一组数据样本的所述数据条目的统计属性,所述统计信息不包括所述数据集中的所述第一组数据样本;通过一个或多个处理器使用所述第一组统计参数和所述第二组统计参数基于eckart-young定理重构所述第一组数据样本,从而生成第二组数据样本,所述第二组数据样本包括与所述不同条目类别对应的数据条目;通过所述一个或多个处理器基于相应条目类别调整所述第二组数据样本的所述数据条目,使得所述第二组数据样本的所述数据条目满足所述不同条目类别的要求。可选地,在上述任一方面中,所述数据集是包含客户特定数据的数据库。可选地,在上述任一方面中,所述第一组数据样本可以通过替换从所述数据集中采样。可选地,在上述任一方面中,所述方法还包括:基于所述第二组数据样本重构所述数据集的一部分或所述整个数据集。可选地,在上述任一方面中,所述第一组统计参数包括基于eckart-young定理从所述第一数据矩阵的单一值分解获得的矩阵。可选地,在上述任一方面中,所述第二组统计参数包括与所述不同条目类别对应的所述第一组数据样本的所述数据条目的最大值和/或最小值。可选地,在上述任一方面中,重构所述第一组数据样本包括:基于eckart-young定理使用所述第一组统计参数计算第二数据矩阵;以及使用所述第二数据矩阵和所述第二组统计参数重构所述第一组数据样本。可选地,在上述任一方面中,所述第二数据矩阵是通过使用所述第二组统计参数归一化的矩阵。可选地,在上述任一方面中,使用所述第二数据矩阵和所述第二组统计参数重构所述第一组数据样本包括:使用计算第三矩阵,其中,ap表示所述第二数据矩阵,所述第二数据矩阵的大小为n*d,diag(·)表示对角矩阵,vmax=(max(a1),…,max(aj),…,max(ad)),vmin=(min(a1),…,min(aj),…,min(ad)),max(·)表示最大值,min(·)表示最小值,1n为n*1向量,且a1,…,aj,…,ad为所述第一数据矩阵的列,所述第一数据矩阵的大小为n*d,其中,所述第二组统计参数包括vmax和vmin。可选地,在上述任一方面中,所述方法还包括:将所述第二组数据样本输出到应用,所述应用用于利用所述数据集中的数据样本生成结果。可选地,在上述任一方面中,所述方法还包括:使用所述第二组数据样本确定应用的性能,所述应用用于使用所述数据集运行。可选地,在上述任一方面中,所述方法还包括:使用所述第二组数据样本检测应用的错误,所述应用用于使用所述数据集运行。根据本发明的另一方面,提供了一种非瞬时性计算机可读介质,用于存储计算机指令,所述计算机指令用于重构数据样本,当一个或多个处理器执行所述计算机指令时,使所述一个或多个处理器执行以下步骤:获取数据集中的第一组数据样本的统计信息,其中,所述第一组数据样本中的每一个包括与不同条目类别对应的数据条目,所述统计信息包括从所述第一组数据样本的数据条目基于eckart-young定理形成的第一数据矩阵中获取的第一组统计参数,所述统计信息包括指示所述第一组数据样本的所述数据条目的统计属性的第二组统计参数,所述统计信息不包括所述数据集中的所述第一组数据样本;使用所述第一组统计参数和所述第二组统计参数基于eckart-young定理重构所述第一组数据样本,从而生成第二组数据样本,所述第二组数据样本包括与所述不同条目类别对应的数据条目;基于相应条目类别调整所述第二组数据样本的所述数据条目,使得所述第二组数据样本的所述数据条目满足所述不同条目类别的要求。可选地,在上述任一方面中,所述第一组数据样本通过替换从所述数据集中采样。可选地,在上述任一方面中,所述计算机指令使得所述一个或多个处理器基于所述第二组数据样本进一步重构所述数据集的一部分或整个数据集。可选地,在上述任一方面中,所述第一组统计参数包括基于eckart-young定理从所述第一数据矩阵的单一值分解获得的矩阵。可选地,在上述任一方面中,所述第二组统计参数包括与所述不同条目类别对应的所述第一组数据样本的所述数据条目的最大值,以及与所述不同条目类别对应的所述第一组数据样本的所述数据条目的最小值。可选地,在上述任一方面中,重构所述第一组数据样本包括:基于eckart-young定理使用所述第一组统计参数计算第二数据矩阵;以及使用所述第二数据矩阵和所述第二组统计参数重构所述第一组数据样本。可选地,在上述任一方面中,使用所述第二数据矩阵和所述第二组统计参数重构所述第一组数据样本包括:使用计算第三矩阵,其中,ap表示所述第二数据矩阵,所述第二数据矩阵的大小为n*d,diag(·)表示对角矩阵,vmax=(max(a1),…,max(aj),…,max(ad)),vmin=(min(a1),…,min(aj),…,min(ad)),max(·)表示最大值,min(·)表示最小值,1n为n*1向量,且a1,…,aj,…,ad为所述第一数据矩阵的列,所述第一数据矩阵的大小为n*d,其中,所述第二组统计参数包括vmax和vmin。附图说明为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:图1示出了一种实施例数据克隆方法的流程图;图2示出了一种用于生成数据样本统计信息的实施例方法的流程图;图3示出了一种用于基于统计信息进行数据克隆的实施例方法的流程图;图4示出了一种实施例数据克隆系统的示图;图5示出了另一种实施例数据克隆方法的流程图;图6示出了一种实施例处理系统的方框图。除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。具体实施方式下文将详细论述本发明实施例的制作和使用。应了解,本文所揭示的概念可以在多种具体环境中实施,且所论述的具体实施例仅作为说明而不限制权利要求书的范围。进一步的,应理解,可在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,对本文做出各种改变、替代和更改。本发明实施例提供了一种用于数据克隆的方法。本发明实施例基于所述数据样本的统计信息重构数据集的数据样本。所述数据样本的每一个可包括与不同条目类别对应的数据条目。所述实施例本身不使用所述数据样本中的任何数据样本,也不需要访问所述数据样本,从而保护所述数据样本和所述数据集的安全性。在一些实施例中,所述数据样本的所述统计信息可以包括使用矩阵近似技术从所述数据样本的数据条目形成的样本矩阵计算的第一组统计参数。例如,所述第一组统计参数可包括基于eckart-young定理计算的eckart-young统计数据。在一些实施例中,所述统计信息还可以包括指示或表示所述样本矩阵的所述数据条目的统计属性的第二组统计参数。在一些实施例中,所述方法可以接收所述统计信息,并基于eckart-young定理使用所述第一组统计参数和所述第二组统计参数重构所述数据样本,从而生成第二组数据样本。所述第二组数据样本包括与所述不同条目类别对应的数据条目。所述方法还可以基于相应条目类别调整所述第二组数据样本的所述数据条目,使得所述第二组数据样本的所述数据条目满足所述不同条目类别的要求。图1示出了实施例数据克隆方法100的流程图。所述方法100基于一组数据样本的统计信息克隆数据集中的所述一组数据样本,而无需使用所述一组数据集样本或所述数据集中的任何一个。所述一组数据样本的所述统计信息可以由数据提供商110生成。所述数据提供商110可以是所述数据集的所有者,也可以是授权通过访问所述数据集生成所述统计信息的另一方。第三方130可以获取所述统计信息并根据所述统计信息执行数据克隆,以重构所述一组数据样本。在一个实施例中,如图1所示,所述数据提供商110可以首先在步骤112中从所述数据集获取所述一组数据样本。所述数据集可包括以特定方式排列的大量数据样本,以便可以从所述数据集中选择所述一组数据样本。所述数据集的示例包括银行用户数据库、手机用户数据库或医疗保险用户数据库。每个数据样本可包含与不同条目类别或字段对应的多个数据条目。表1示出了银行用户数据库的示例数据示例。表1示出了与五个用户对应的所述银行用户数据库的五个数据示例。每个样本包括六个数据条目,对应于“用户名”、“年龄”、“性别”、“职位”、“收入”和“余额”的条目类别或字段。例如,样本编号1对应于名为“n1”的用户,该用户的年龄为“1岁”,且性别为“g1”、职务为“职务1”、收入为“收入1”和余额为“b1”。如表1所示,这些数据样本可能被视为包含多维数据,因为每个数据样本具有与不同类别对应的多个数据条目。与数据样本的不同类别对应的数据条目可以彼此独立,也可以彼此存在潜在关系。例如,统计显示用户的收入可以与所述用户的性别和/或所述用户的收入相关。这些关系可以不是明确的,但以统计学的方式潜在地保留在所述数据条目中,并且可以代表所述数据样本的重要特征。最好可以将这些潜在关系保留在通过数据克隆重构的数据中。表1样本号用户名年龄性别职务收入结余1n1年龄1g1职务1收入1b12n2年龄2g2职务2收入2b23n3年龄3g3职务3收入3b34n4年龄4g4职务4收入4b45n5年龄5g5职务5收入5b5所述数据提供商110可以随机或根据预定义的条件从所述数据集中选择所述一组数据样本。在一个实施例中,所述数据提供商110可以通过替换从所述数据集中采样来获取所述一组数据样本。例如,可以从所述数据集中选择第一数据样本并进行记录,然后将所述数据样本放回所述数据集,然后从所述数据集中选择第二数据样本。从所述数据集采样的所述多个数据样本可以是预定的,也可以根据所述数据集中的数据量等因素以及时间、成本和存储空间等其它特定要求进行调整。在步骤114中,使用所述一组数据样本形成样本矩阵。例如,如果表1中的所述数据样本作为所述一组数据样本,则可以形成样本矩阵,如下所示:在此样本矩阵中,每一行对应于数据样本,每一列对应于与类别对应的数据条目。在本示例中,所述第二列中的数据条目a1-a5代表用户n1-n5的年龄,所述第四列中的数据条目t1-t2代表用户n1-n5的职务,所述第五列中的数据条目i1-i5代表n1-n5的收入。当数据条目不是数字编号(例如名称或职务)时,所述数据条目可以转换为数字,然后用于形成所述样本矩阵。例如,可以使用一组名称中的索引“jon”将用户名“jon”转换为数字。本领域普通技术人员会认识到许多方法可以用数字表示文本或其它表示形式,例如时间或货币,或者将不同形式的表示转换为数字。因此,所述样本矩阵的所述第一列中的数据条目分别对应于所述用户名“n1”,……,“n5”的数字表示。同样,所述第三列和第四列中的数据条目对应于所述用户的性别和职务的数字表示。在步骤116中,生成所述样本矩阵(即所述一组数据样本)的统计信息。可以预定义待生成的统计信息类型。第三方(例如第三方130)也可能需要生成哪种统计信息。第三方可以与所述数据提供商110协商所述数据提供商110可以提供何种统计信息。确定待生成的所述统计信息可能基于许多因素,例如所述数据提供商在生成统计信息的能力、成本、数据样本数量以及与所述数据样本相关的客户类型。通常,所述统计信息应该能够用于重构所述样本矩阵,而无需使用所述数据样本中的任何数据样本。在一个实施例中,所述统计信息可以包括使用矩阵近似技术从所述样本矩阵计算的第一组统计参数。在这种情况下,所述第一组统计参数可以称为矩阵近似统计。例如,所述第一组统计参数可以基于eckart-young定理计算。在本示例中,所述第一组统计参数可以称为eckart-young统计。也可以使用其它适用的矩阵逼近方法来逼近和重构所述样本矩阵。在一个实施例中,所述矩阵近似统计可以基于所述样本矩阵的归一化矩阵生成。所述统计信息还可以包括指示或表示所述样本矩阵的所述数据条目的统计属性的第二组统计参数。例如,所述第二组统计参数可以包括所述样本矩阵的所述数据条目的最大值。所述第二组统计参数还可以包括所述数据条目的最小值、平均值和偏差值。所述第二组统计参数可以称为属性统计。所述第二组统计参数可用于在重构所述样本矩阵时提供所述数据条目的统计属性信息。根据所需的统计信息,可以使用不同的技术或机制来生成所述统计信息。然后,可以向使用所述统计信息执行数据克隆的第三方130提供所述统计信息。所述统计信息也可以存储在存储设备或数据库中,并在将来检索以供使用。所述数据提供商110可以根据不同的技术或机制生成不同的统计信息,以满足第三方的不同要求。当所述第三方130在步骤132中接收所述统计信息时,在步骤134中,所述第三方130可以根据生成所述统计信息的技术或机制,使用所述统计信息重构或克隆所述一组数据样本。例如,当使用eckart-young定理生成所述统计信息时,所述第三方130可以使用所述统计信息根据eckart-young定理重构数据矩阵。在一个实施例中,所述第一组统计参数可用于近似所述样本矩阵,所述第二组统计参数可用于重构所述近似样本矩阵,使得所述近似样本矩阵保持所述原始样本矩阵的所述统计属性。所述重构数据矩阵包括重构数据样本。在步骤136中,还可以根据所述重构的数据样本执行进一步的数据克隆,以克隆所述数据集中的更多数据样本,或克隆所述数据集的整体。在步骤138中,所述重构或克隆的数据样本存储在存储设备或数据库中以供使用。所述重构或克隆的数据样本可以由用于与所述数据集配合使用的应用使用。在一个实施例中,所述重构数据样本可用于数据分析,并可生成有关特定服务区域中的用户行为和其它统计的有用信息。例如,所述重构数据样本可以输出到对重构银行用户数据样本执行分析的应用,或者由该应用检索所述重构数据样本。所述应用生成图形或图表,例如条形图和饼图,以显示用所述用户的统计。在另一实施例中,所述重构数据样本可用于确定为在所述数据集上运行而开发的应用的性能或有效性。在又一实施例中,所述重构数据样本可用于检测用于在所述数据集上运行的应用的错误。所述重构的数据样本还可用于许多其它应用,例如数据挖掘、机器学习、数据库查询优化以及市场和商业智能中的a/b测试。图2示出了用于生成数据集中的一组数据样本的统计信息的实施例方法200的流程图。所述方法200可以由图1中的数据提供商110执行。如图所示,在步骤202中,所述方法200对所述数据集进行采样,以获取一组数据样本。可以通过替换对所述数据集进行采样。所述数据集也可以使用其它适用的采样或选择技术进行采样。通过对所述数据集进行采样,可以获取n个数据样本。所述n个数据样本的表示方式为x1,x2,……,xn。所述数据样本中的每一个包括相应数据类别中的d数据条目。至少两个数据类别可以彼此不同。所述n个数据样本可包括上文表1所示的数据样本。所述第i个数据样本可以表示为xi=(xi(1),xi(2),…,xi(d))。在步骤204中,所述方法200使用n个数据样本构造数据矩阵a。所述数据矩阵表示为:所述数据矩阵a也可以表示为a=(x1,x2,…,xn)t,其中(·)t表示矩阵的转置。如上所述,在构建所述数据矩阵a之前,所述n个数据样本的每个数据条目(如果不是数字编号)都可以转换为数字编号或由数字编号表示。然后,所述方法200可以生成所述数据矩阵a的统计信息。在步骤206中,所述方法200生成所述数据矩阵a的第一组统计参数,即属性统计。在该示例中,所述方法200为所述数据矩阵a的每列计算最大值和最小值。设数据矩阵a表示为a=(a1,…aj,…ad),其中aj是数据矩阵a的第j列向量。aj的最大值和最小值分别由max(aj)和min(aj)表示。然后,所述第一组统计参数将包括第一向量vmax=(max(a1),…,max(aj),…,max(ad))和第二向量vmin=(min(a1),…,min(aj),…,min(ad))。向量vmax和vmin表示所述数据矩阵a中的列的最大值和最小值。在步骤208中,方法200使用所述第一组统计参数(即vmax和vmin)对所述数据矩阵a归一化。在一个实施例中,所述数据矩阵a可以使用以下公式归一化:其中a'是归一化的数据矩阵a。通过所述归一化,矩阵a'中的所有条目都处于关闭间隔[0,1]。如果列的最大值等于该列的最小值,则可以将该列的每个数据条目设置为值1。在步骤210中,所述方法200生成第二组统计参数。在本示例中,所述方法200根据eckart-young定理生成所述第二组统计参数。设r是所述数据矩阵a的秩,即r=rank(a)。根据eckart-young定理,矩阵有正交矩阵un×r和vd×r及对角矩阵σ=diag(σ1,…σr),所述数据矩阵a或所述归一化数据矩阵a'(均为n*d矩阵),使得所述数据矩阵a可以表示为:an×d=uσvt(3)还有另一个矩阵ap可以表示为:ap=upσpvpt(4)在等式(4)中,up、σp和vp分别是由所述正交矩阵un×r和vd×r的所述第一p列和所述对角矩阵σ构成的矩阵。p是整数。p可以是满足1≤p≤rank(a)条件的预定义整数。p也可以是满足以下条件的最小整数:其中t∈(0,1)是相对错误的给定阈值。t可以是预定义的值,例如t=5%。·f表示矩阵的frobenius范数。所述正交矩阵un×r和vd×r以及所述对角矩阵σ可以通过计算a的单一值分解(singularvaluedecomposition,简称svd)计算出。ap在等式(4)中,被称为矩阵a的第p列eckart-young近似。根据eckart-young定理,ap是所有矩阵中p列满足的a的最佳近似。在一个实施例中,所述方法200执行所述归一化数据矩阵a'的svd并获取相应的正交矩阵u和v以及所述对角矩阵v。然后,所述方法200可以根据eckart-young定理从所述矩阵u、σ和v中获得up、σp和vp。所述up、σp和vp可以称为eckart-young统计参数。通过使用所述eckart-young统计参数,可以获取所述归一化数据矩阵a'的最佳近似。在步骤212中,生成所述第一组和第二组统计参数(即,所述最大向量vmax、所述最小向量vmin和所述eckart-young统计参数up、σp和vp)后,所述方法200存储所述统计参数并向其它各方提供所述统计参数。所述方法200可以本地存储所述统计参数,例如存储在计算机存储器中,或者远程存储在服务器中。所述方法200可以将所述统计参数输出或发送到用于使用所述统计参数的应用。所述方法200还可以输出指示生成、存储或传送所述统计参数的信号。图3示出了一种用于基于统计信息进行数据克隆的实施例方法300的流程图。所述方法300基于数据集中的一组数据样本的统计信息执行数据克隆,以重构所述一组数据样本。所述统计信息不包括所述数据样本的任何实际数据,也不会披露这些数据样本的任何实际数据。执行所述数据克隆的一方不需要访问所述数据样本的实际数据。因此,保留了所述数据集的隐私和安全性。如图所示,在步骤302中,所述方法300获取或接收所述一组数据样本的统计信息。在本示例中,所述统计信息包括图2中生成的第一组和第二组统计参数。也就是说,所述统计信息包括所述一组数据样本的最大向量vmax、最小向量vmin和eckart-young统计参数up、σp和vp。然后,所述方法300使用所述统计信息重构所述一组数据样本。在本示例中,在步骤304中,所述方法300首先根据eckart-young定理使用所述eckart-young统计参数执行矩阵近似。因此,所述方法300获得所述归一化数据矩阵a'的近似矩阵。根据公式(4)计算所述近似矩阵,即ap=upσpvpt。在步骤306中,所述方法300调整所述近似矩阵,以使用所述最大矢量vmax和所述最小矢量vmin重构所述数据样本。在一个实施例中,可以使用调整所述近似矩阵,其中,ap'为调整矩阵,1n为n*1向量,以及所述矩阵ap'的每一行表示重构数据样本,行中的每列表示与条目类别对应的重构数据条目。通过使用所述最大向量vmax和所述最小向量vmin调整所述近似矩阵,所述调整矩阵(因此是所述重构数据样本)保持所述统计参数vmax和vmin所传递的统计属性。在步骤308中,所述方法300可以对所述矩阵ap'执行数据清理。所述数据清理通常用于调整所述矩阵ap'中所述数据条目的值,以便所述克隆数据样本以有意义的方式代表所述原始数据样本。在一个实施例中,通过执行所述数据清理,根据相应条目类别的数据输入要求,调整所述矩阵ap'中的数据条目。例如,条目类别可以要求与所述条目类别对应的数据条目具有特定的数据类型,例如,所述数据条目为整数。在另一示例中,条目类别可以要求所述数据条目采用特定数据格式,例如,与日期对应的数据条目采用yy/dd/yyyy格式。不同的条目类别对所述相应的数据条目可以有不同的要求。重构数据样本可根据所述要求进行调整,以满足所述要求。例如,如果所述矩阵ap'的列对应于需要整数值的条目类别(例如,年龄),此列中的数据条目(如果不是整数)可以调整为整数,例如,调整为最近整数。所述方法300可以检查所述矩阵ap'的数据条目并确定是否需要根据要求调整数据条目。在步骤310中,所述方法300可以执行进一步的数据克隆,以使用已清除的矩阵ap'表示的重构数据样本重构更多的数据样本。在一个实施例中,可以使用基于样本的数据克隆技术执行所述数据克隆。还可以使用其它适用的数据克隆技术,根据所述清除的矩阵ap'执行数据克隆。这样,可以部分或全部克隆所述数据集。在步骤312中,所述方法300可以将所述克隆数据样本或数据集输出到或提供给将所述克隆数据用于特定目的的应用。例如,所述应用可以使用所述克隆数据执行数据分析、数据训练,以确定所述应用的性能以及调试所述应用。所述方法300还可以输出信号表明执行了所述数据克隆,并且已准备好使用所述克隆的数据样本。图4示出了数据克隆系统400的实施例图。所述数据克隆系统400包括统计信息生成单元410和数据克隆单元450。所述统计信息生成单元410用于生成用于数据克隆的数据样本的统计信息。所述统计信息生成单元410可用于使用图2所示的方法生成统计信息。所述数据克隆单元450用于根据所述统计信息执行数据克隆,以便重构所述数据样本。所述数据克隆单元450可配用于使用图3所示的方法执行数据克隆。所述数据克隆单元450可以与所述统计信息生成单元410交互。例如,数据克隆单元450可以与所述统计信息生成单元410进行通信,以接收生成的统计信息或者传送数据克隆需求。下面将结合图2和图3对图4进行说明。如图所示,所述统计信息生成单元410包括采样单元412、矩阵构造单元414、属性统计单元416、矩阵规范化单元418、矩阵近似统计单元420、输出单元424和数据克隆要求接收单元430。所述采样单元412用于对数据集进行采样,以获取一组数据样本。每个数据样本包括一组与条目类别对应的数据条目。所述采样单元412可用于执行图2中的步骤202。所述采样单元412可以通过替换或其它适用的采样或选择技术对所述数据集进行采样。所述矩阵构造单元414用于使用所述采样单元412获取的所述一组数据采样构建数据矩阵。所述矩阵构造单元414可用于执行图2中的步骤204。在一个实施例中,如果所述一组数据样本的每个数据条目不是数字,则可以将所述每个数据条目转换为数字编号或由数字编号表示,以形成所述数据矩阵。所述属性统计单元416用于生成一组表示所述数据矩阵的一组属性统计,所述一组属性统计表示所述数据矩阵的统计属性。在一个示例中,所述属性统计单元416可用于执行图2中的步骤206。所述属性统计可包括矩阵的最大值、最小值、平均值和其它统计。所述矩阵规范化单元418用于对所述构建的数据矩阵执行归一化。所述矩阵规范化单元418可用于使用所述属性统计信息单元416生成的所述属性统计中的一个或多个执行所述归一化。所属领域的普通技术人员将认识到,任何适用的归一化方法或技术都可用于归一化所述数据矩阵。所述矩阵归一化单元418可用于执行图2中的步骤208。所述矩阵近似统计单元420用于使用矩阵近似技术生成所述矩阵归一化单元418生成的归一化矩阵的矩阵近似统计。在一个实施例中,所述矩阵近似统计单元420可以根据eckart-young定理生成所述归一化矩阵的eckart-young统计。所述矩阵近似统计单元420还可以使用其它适用的矩阵近似方法或技术。所述矩阵近似统计单元420可用于执行图2中的步骤210。所述输出单元424用于输出所述生成的数据样本集的统计信息,例如所述属性统计和所述矩阵近似统计。在一个实施例中,所述输出单元424可用于将所述生成的统计信息存储在存储单元426中。所述存储单元426可以是本地存储设备,例如计算设备中的存储器。或者,所述输出单元424可以将所述生成的统计信息存储在通过网络428访问的远程存储单元(未显示)中。所述输出单元424还可用于例如通过所述网络428将所述生成的统计信息输出到设备或应用。所述输出单元424可以执行图2中的步骤212。所述数据克隆要求接收单元430用于接收生成所述统计信息的要求。所述要求可以指示待生成的所述统计信息。例如,这些要求可以指示待生成哪些属性统计和矩阵近似统计。这些要求可指示需要生成一种以上的统计信息。例如,这些要求可以指示,将根据不同的矩阵近似技术生成不同的矩阵近似统计。在另一示例中,这些要求可以指示,不同的属性统计将与不同的矩阵近似统计信息一起生成。这些要求还可包括待使用的许多数据样本、采样方法、矩阵归一化方法以及生成统计信息所需的其它信息。所述数据克隆要求接收单元430可与所述采样单元412、所述属性统计单元416和所述矩阵近似统计单元420交互。也如图4所示,所述数据克隆单元450包括统计信息接收单元452、矩阵近似单元454、矩阵重构单元456、数据清理单元458、基于样本的数据克隆单元460、输出单元462和数据克隆要求生成单元464。所述统计信息接收单元452用于接收一组数据样本的统计信息,以执行所述一组数据样本的数据克隆。所述统计信息接收单元452可以从本地或远程访问的存储设备检索所述统计信息。所述统计信息接收单元452可用于执行图3中的步骤302。所述矩阵近似单元454用于使用接收的矩阵近似统计执行矩阵近似。所述矩阵近似单元454可用于执行图3中的步骤304。例如,所述矩阵近似单元454使用eckart-young定理执行矩阵。所述矩阵重构单元456用于使用所述矩阵近似单元454生成的近似矩阵和所述数据样本的接收属性统计重构所述数据样本。所述矩阵重构单元456可用于执行图3中的步骤306。所述数据清理单元458用于对所述重构数据样本执行数据清理。在一个实施例中,所述数据清理单元458调整所述重构数据样本的数据条目,使其值满足与所述数据条目对应的条目类别要求。所述数据清理单元458可用于执行图3中的步骤308。所述基于样本的数据克隆单元460用于使用所述清洁的重构数据样本执行进一步的数据克隆,以生成更多的克隆数据样本。所述基于样本的数据克隆单元460可用于执行图3中的步骤310。所述输出单元462用于例如向应用或存储设备输出或提供克隆数据。所述输出单元462可用于执行图3中的步骤312。所述数据克隆要求生成单元464用于生成用于生成数据克隆使用的统计信息的要求。这些要求可以发送到所述统计信息生成单元410。这些要求可指示待生成哪些属性统计和矩阵近似统计。这些要求可要求生成不同类型的统计信息。例如,这些要求可以指示,将根据不同的矩阵近似技术生成不同的矩阵近似统计。在另一示例中,这些要求可以指示,不同的属性统计将与不同的矩阵近似统计信息一起生成。这些要求还可包括待使用的许多数据样本、采样方法、矩阵归一化方法、矩阵近似技术以及生成所述统计信息可能需要的其它信息。与传统方法相比,本发明的实施例方法具有许多优点,例如使用直方图、相关系数、多变量密度估计等方法。嗾使实施例方法不需要真实数据样本,也不会向第三方披露用于数据克隆的真实样本。所述数据矩阵使用几个定义明确的统计(例如,最大值、最小值和eckart-young统计)进行近似,而不使用待克隆的数据样本的任何实际数据,并且所述近似受相对误差的给定界限(例如相对误差阈值)控制。因此,所述实施例方法不需要访问所述数据样本,并且数据安全受到保护。所述实施例方法还具有探索和克隆数据条目之间潜在统计关系的优点。这有助于保留所述克隆数据样本中原始数据样本的潜在功能。所述实施例方法对待克隆的数据集或数据样本的分布没有要求,对所述数据集的数据类型没有要求。例如,所述实施例方法可在具有连续数据(即,具有连续值的数据,例如收入、银行余额)和离散数据(即,具有离散值的数据,例如年龄、性别)的任意组合的数据集上操作。此外,可以以可并行的方式实现所述实施例方法。涉及的许多步骤可以并行实现。例如,可以并行执行统计信息生成、数据样本重构和基于样本的数据克隆。所述数据矩阵的归一化、svd的计算、矩阵近似(使用eckart-young定理)和数据克隆分别可以使用并行算法执行。所述实施例方法提供了一种超过传统自举方法的不同估计问题方法,具有广泛的应用,例如统计分析、大数据分析、机器学习、数据挖掘和人工智能。所述实施例方法也适用于各种模拟场景,包括数据库中的查询优化、市场和商业智能中的a/b测试、无安全风险的数据分析等。图5示出了用于数据克隆的另一实施例方法500的流程图。所述方法500可以是使用一个或多个处理器执行的计算机实现方法。在步骤502中,所述方法500获取数据集中的第一组数据样本的统计信息。所述第一组数据样本中的每一个都包括与不同条目类别对应的数据条目。所述统计信息包括从所述第一组数据样本的数据条目基于eckart-young定理形成的第一数据矩阵中获取的第一组统计参数,以及指示所述第一组数据样本的所述数据条目的统计属性的第二组统计参数。所述统计信息不包括所述数据集中的所述第一组数据样本。所述数据集可以是包含客户特定数据的数据库。可以通过替换从所述数据集采样所述第一组数据样本。所述第一组统计参数包括基于eckart-young定理从所述第一数据矩阵的单一值分解获得的矩阵。所述第二组统计参数包括与所述不同条目类别对应的所述第一组数据样本的所述数据条目的最大值vmax和/或最小值vmin。在步骤504中,所述方法500基于eckart-young定理使用所述第一组统计参数和所述第二组统计参数重构所述第一组数据样本,生成第二组数据样本。所述第二组数据样本包括与所述不同条目类别对应的数据条目。在一个实施例中,所述方法500可以基于eckart-young定理使用所述第一组统计参数计算第二数据矩阵,并使用所述第二数据矩阵和所述第二组统计参数重构所述第一组数据样本。所述第二数据矩阵可以是使用所述第二组统计参数归一化的矩阵。在另一实施例中,所述重构的第一组数据样本可以是使用计算的第三矩阵,其中ap表示大小为n*d的所述第二数据矩阵,diag(·)表示对角矩阵,且所述第二组统计参数包括vmax和vmin。在步骤506中,所述方法500基于相应条目类别调整所述第二组数据样本的所述数据条目,使得所述第二组数据样本的所述数据条目满足所述不同条目类别的要求。所述方法500还可以基于所述第二组数据样本重构所述数据集的一部分或所述整个数据集。例如,在调整所述第二组数据样本的所述数据条目后,所述方法500使用所述调整的数据条目执行基于样本的数据克隆。所述方法500可以将所述第二组数据样本输出到用于利用数据集中的数据样本或对其进行操作的应用。例如,可以将所述应用用于使用所述调整的数据条目生成结果。在另一示例中,所述应用可以用于使用所述调整的第二组数据样本来确定所述应用的性能。所述方法还可以使用所述第二组数据样本来检测用于使用所述数据集运行的应用的错误。图6是所述处理系统600的方框图,该处理系统可以用来实现本文公开的设备和方法。所述处理系统600可以在计算平台或设备上实现。特定设备可利用所有所示的组件或仅所述组件的子集,且设备之间的集成程度可能不同。此外,设备可以包括部件的多个实例,例如多个处理单元、处理器、存储器、发射器、接收器等。处理系统600可以包括配备一个或多个输入/输出设备,例如扬声器、麦克风、鼠标、触摸屏、按键、键盘、打印机、显示器等的处理单元。所述处理系统600可以包括中央处理器(centralprocessingunit,简称cpu)602、存储器604、大容量存储器设备606、视频适配器608以及连接至总线612的i/o接口610。所述总线612可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、视频总线等等。所述cpu602可包括任何类型的电子数据处理器。所述存储器604可包括任意类型的非瞬时性系统存储器,例如静态随机存取存储器(staticrandomaccessmemory,简称sram)、动态随机存取存储器(dynamicrandomaccessmemory,简称dram)、同步dram(synchronousdram,简称sdram)、只读存储器(read-onlymemory,简称rom)或它们的组合等等。在实施例中,存储器604可包含在开机时使用的rom以及在执行程序时使用的存储程序和数据的dram。所述大容量存储器设备606可包括任意类型的非瞬时性存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。所述大容量存储器设备606可包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。所述视频适配器608和所述i/o接口610提供接口以将外部输入和输出设备耦合到所述处理系统600。如图所示,输入和输出设备的示例包括耦合到所述视频适配器608的显示器614和耦合到所述i/o接口610的鼠标/键盘/打印机616。其它设备可以耦合到所述处理器系统600,并且可以使用额外或更少的接口卡。例如,可使用如通用串行总线(universalserialbus,简称usb)(未示出)等串行接口将接口提供给打印机。所述处理系统600还包含一个或多个网络接口618,所述网络接口可以包括例如以太网电缆或其类似者等有线链路,和/或用以接入节点或不同网络的无线链路。所述网络接口618允许所述处理系统600通过网络与远程设备通信。举例来说,所述网络接口618可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,所述处理系统600耦合到网络620,例如局域网或广域网上,用于数据处理以及与远程设备通信,所述远程设备例如其它处理单元、因特网、远程存储设施等。本发明的实施例可以作为计算机实现方法执行。这些方法可以以软件的形式实现。在一个实施例中,可以获取所述软件并将其加载到可以运行所述软件的计算机或任何其它计算机中。或者,所述软件可以通过物理介质或分发系统获取,例如,包括来自所述软件创建者所拥有的服务器或来自非软件创建者所拥有但使用的服务器。所述软件可以存储在服务器上,以便通过互联网进行分发。本发明实施例可以实现为存储在计算机可读存储设备或介质上的指令,所述指令可以由至少一个处理器读取和执行,以执行此处描述的方法。计算机可读存储设备可以包括用于以机器(例如,计算机)可读形式存储信息的任何非暂时性机制。例如,计算机可读存储设备可以包括只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁盘存储介质、光存储介质、闪存设备、固态存储介质以及其它存储设备和介质。应当理解,此处提供的实施例方法的一个或多个步骤可以由相应的单元或模块执行。例如,信号可以由发送单元或发送模块进行发送。信号可以由接收单元或接收模块进行接收。信号可以由处理单元或处理模块进行处理。其它步骤可以由获取单元/模块、重构单元/模块、调整单元/模块、采样单元/模块、计算单元/模块、归一化单元/模块、输出单元/模块、确定单元/模块、检测单元/模块、存储单元/模块、构造单元/模块、执行单元/模块和/或生成单元/模块执行。各个单元/模块可以为硬件、软件或其组合。例如,一个或多个单元/模块可以为集成电路,例如,现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或专用集成电路(application-specificintegratedcircuit,简称asic)。尽管进行了详细的描述,但应理解,可在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,对本文做出各种改变、替代和更改。此外,本发明的范围不希望限于本文中所描述的特定实施例,所属领域的一般技术人员将从本发明中容易了解到,过程、机器、制造工艺、物质成分、构件、方法或步骤(包括目前存在的或以后将开发的)可执行与本文所述对应实施例大致相同的功能或实现与本文所述对应实施例大致相同的效果。相应地,所附权利要求范围包括这些流程、机器、制造、物质组分、构件、方法及步骤。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1