高维分层抽样的制作方法

文档序号:6361074阅读:154来源:国知局
专利名称:高维分层抽样的制作方法
技术领域
本发明总体上涉及信息处理领域,更具体地,涉及对与信息处理系统数据库相关联的记录进行分层抽样的技术。
背景技术
大型数据库常常包括数百万或更多记录,每条记录都具有很多属性。可以利用抽样技术对这样的数据库进行统计操作,一般涉及到从数据库随机选择记录。然后可以分析所选的记录以产生表征该数据库中完整记录集合的统计值。为了确保所得的统计值精确表征该数据库,可以使用分层抽样技术。在分层抽样中,数据库记录被分成子组或“层”,然后随机从每个子组中选择一个或多个记录加以分析。在题为“Stratified Sampling of Datain a Database System”的美国专利申请公开No. 2002/0198863中描述了常规分层抽样技术的范例。常规分层抽样技术的问题是这种技术通常试图将记录分成互相排斥的子组,因此可能仅考虑了有限数量的属性。通常每条记录的属性数量被称为该数据库的“维数”,常规的分层抽样技术实际上仅处于低维领域。不过,很多现代的数据库,例如用于跟踪电信应用中连接数据的那些数据库,具有非常高的维数。例如,考虑存储了 N条记录的数据库,每条记录有K个属性,其中每个属性取mk个离散值,I < k < K。如果K很小,就能够简单地连锁这些属性,以便将数据库划分成互相排斥的子组。在这种情况下,由给出子组的数目。不过,随着K变大,这种方法就变得不切实际了。例如,如果mk = 5且K= 10,那么有接近IO7个子组,其中很多将不包含记录或仅包含少量记录。在这种高维上下文中,常规的分层抽样技术不能针对K个属性的每个提供适当的分层样本。在众多信息处理应用中,包括大规模数据库集成和维护、数据挖掘、数据仓储、查询处理、电信网络流量分析、意见调查等,这个问题都很明显。

发明内容
本发明的例示性实施例提供了高维分层抽样技术,适用于每条记录的记录数量N和属性数量K都大的应用中。这些实施例包括顺序和最优高维分层抽样算法。前者对于在线抽样尤其有用,而后者对于离线或周期性抽样尤其有用,但两者都还可以用于各种其他抽样应用中。根据本发明的一个方面,信息处理系统的处理装置用于执行数据库的高维分层抽样,所述数据库包括多条布置在交叠子组中的记录。对于给定记录,处理装置确定给定记录与哪个子组相关联,对于与给定记录相关联的每个子组,检查子组的抽样率是否小于指定抽样率。如果每个子组的抽样率都小于指定抽样率,处理装置对所述给定记录抽样,否则,不对给定记录抽样。针对其他记录重复确定、检查和抽样操作,处理抽样操作获得的样本以产生表征数据库的信息。根据本发明的另一方面,信息处理系统的处理装置通过优化表征要对多条记录的哪条抽样的目标函数来执行数据库的高维分层抽样,所述数据库包括多条布置在交叠子组中的记录。目标函数可以基于例如被抽样记录的似然函数,更具体而言,可以基于被抽样记录的似然函数的二项式-正态近似。通过迭代地更新二进制指示符的分量来进行目标函数的优化,二进制指示符指定是否对多条记录的相应记录抽样。处理装置基于二进制指示符的已更新分量优化目标函数的值对多条记录的特定记录抽样,处理所得的样本以产生表征包括记录子组的数据库的信息。例示性实施例相对于常规方法提供了显著优点。例如,可以使用例示性实施例中的顺序和最优高维分层抽样过程产生计算和存储要求最小的可靠无偏样本。从附图和以下详细描述,本发明的这些和其他特征和优点将变得更加明显。


图1是本发明例示性实施例中实施高维分层抽样的信息处理系统的方框图。图2示出了图1系统的处理装置的更详细视图。图3是本发明例示性实施例中的顺序高维分层抽样过程的流程图。图4是本发明例示性实施例中的最优高维分层抽样过程的流程图。图5示出了可以应用图3或4的高维分层抽样过程的网络流量应用中一组连接记录的简单范例。图6是比较顺序和最优高维分层抽样作为抽样率的函数的估计误差与常规随机抽样估计误差的一组曲线。图7示出了多组曲线,每组曲线比较了顺序和最优高维分层抽样作为子组数量的函数的估计误差与常规随机抽样估计误差。
具体实施例方式这里将结合示范性信息处理系统、处理装置和高维分层抽样技术例示本发明。不过要理解,本发明不限于用于所公开的特定类型的系统、装置和技术。例如,可以利用除结合例示性实施例描述的那些之外的处理装置和工序在各种各样的其他信息处理系统配置中实现本发明的各方面。图1示出了信息处理系统100,包括通过网络104耦合到数据库系统105的控制
器102,数据库系统包括多个服务器106-1、106-2、......106-N,也表不为服务器I、服务器
2.......服务器N。服务器106的每个都具有关联的数据库108。这些数据库存储记录或
其他数据对象,供控制器102经由网络104访问。本实施例中的控制器102包括抽样模块110,配置成实施下文更详细描述的一种或多种高维分层抽样技术。抽样模块110利用高维分层抽样技术处理记录集合,记录集合被分成未必互相排斥的子组。由抽样模块110处理的记录可以从数据源112接收或从数据库系统105的一个或多个数据库108检索。可以由控制器102在样本数据库114中存储得到的分层样本。尽管在图中被示为与数据库系统105分开,但也可以在数据库系统105之内实现诸如控制器102和样本数据库114的系统元件。控制器102可以包括适于通过网络104与数据库系统105通信的计算机或任何其他类型处理装置的至少一部分。例如,控制器可以包括便携式或膝上型计算机、移动电话、个人数字助理(PDA)、无线电子邮件装置、电视机顶盒(STB)或其他通信装置。
网络104可以包括诸如因特网的广域网、城域网、局域网、有线电视网、电话网、卫星网络以及这些或其他网络的部分或组合。在其他实施例中,可以在一个或多个服务器106中或其关联的数据库108中,或在耦合到这些元件中一个或多个的独立集中式控制器中实现抽样模块110。也可以通过分布式方式实现抽样模块,模块的各部分布置于装置102、106或108的相应装置或其子集中。数据库108不必是任何特定配置,因此这里使用的术语“数据库”意在被宽泛解释为涵盖存储记录的任何数量的不同布置。现在参考图2,示出了系统100的控制器102的一种可能实施方式。在这一实施例中,控制器包括耦合到存储器202的处理器200,还包括网络接口电路204。假设存储器202存储记录205或其部分以供抽样模块110处理。存储的记录205可以从数据源112接收或通过网络104从数据库系统105检索。在这种实施方式中,控制器102的抽样模块110包括子组识别模块210、抽样率确定模块212、抽样决策模块214、优化模块215和一组计数器220,包括统计每个子组的记录数目的计数器222和统计每个子组的样本数目的计数器224。下文将结合图3和4更详细地描述这些模块和计数器的操作。可以将处理器200实现为微处理器、微控制器、专用集成电路(ASIC)或其他类型的处理装置,以及这种装置的部分或组合。存储器202可以包括电子随机存取存储器(RAM)、只读存储器(ROM)、基于磁盘的存储器或其他类型的存储装置以及这种装置的部分或组合。可以在存储和执行用于高维分层抽样,以及用于执行相关操作,例如与记录存储和处理相关联的那些操作的一种或多种软件程序时使用处理器和存储器。因此可以至少部分利用这样的软件程序实现模块210、212、214和215。可以将存储器202看做这里更一般地称为计算机程序产品或更一般地称为计算机可读存储介质(其中包含可执行程序代码)的范例。计算机可读存储介质的其他范例可以包括处于任何组合形式的磁盘或其他类型的磁性或光学介质。处理器200、存储器202和接口电路204可以包括经适当修改以工作于这里所述方式下的公知常规电路。而且,可以将图2中所示的各种模块视为用于实现关联功能的电路范例。例如,这样的电路的部分可以包括矩阵乘法电路或其他类型的运算逻辑电路。这种电路的常规方面是本领域的技术人员公知的,因此这里将不会详细描述。要认识到,可以利用除图1和2的示范性布置中具体示出的那些之外的部件和模块实现这里公开的信息处理系统和关联控制器。现在将参考图3和4的流程图描述例示性实施例中的系统100的操作。这些流程图例示了相应的顺序和最优高维分层抽样技术。对于这些实施例,将假设将抽样技术用于存储N条记录的数据库,每条记录有K个属性,其中每个属性取mk个离散值,I < k < K。这个被抽样的数据库例如可以包括数据库系统105中的一个或多个数据库108或整个数据库系统105。应当指出,在这种语境中,N是指所存储记录的总数,不是如图1语境中那样的服务器106和数据库108的数量。一般由感兴趣字段及其组合的类别预定义子组。在以下描述的部分中,不带限制性地假设,记录的每个子组都针对一个属性取Hlk个离散值或类别值(对于连续的属性,可以将它们离散化或分类成Hlk个值)的特定一个,从而共有J = 个子组或层。因此,在这些实施例中子组可以具有很多交叠的记录。这与常规的分层抽样不同,如前所述,常规的分层抽样将记录分成互相排斥的子组。应当指出,对于大规模的复杂数据库J可能非常大。而且,子组的数量J可能大于上述假设下得到的个子组每个子组针对一个属性取Hlk个离散或类别值的特定一个。例如,可能通过取超过一个属性的组合来定义子组。在很多典型实际应用中,多个属性的这种组合都可能很重要。因此,J可能大于但小于。可以如下用公式表示记录和子组之间的关系。令A是NX J的二元矩阵,其中Aij表示第i条记录是否是第j个子组的部分,i = 1,…,N,j = l,…,J。为简单起见,假设每条记录都属于至少一个子组,于是A的每排必须包含至少一个I。令c e
其中n是被抽样的记录数量,N是要从其抽样的记录数量,使得Ci表示第i条记录是否被抽样。令
N n} =
=1
NSj = YfAj分别是对于第j个子组而言的记录数量和被抽样记录数量。由于J可能很大,可以将当前语境中高维分层抽样的目标表征为选择,使得= 1,…,J。如前所述,这里提到的用于高维分层抽样的两种不同技术为顺序和最优高维分层抽样,并分别结合图3和4描述。重要的是指出上述NX J的二元矩阵A通常非常稀疏,从而A可能被存储于紧凑的存储空间中。而且,可以利用本领域的技术人员公知的稀疏矩阵运算有效率地进行利用了A稀疏性的计算。图5中示出了网络流量应用中一组连接记录的简单范例,其中可以应用图3或4的高维分层抽样处理。在本范例中,示出了三条连接记录,每条记录都包括用于开始时间、终止时间、连接类型、失败呼叫尝试(FCA)和最强导频的字段。不过要认识到,可以将这里公开的技术应用于任何类型的记录,不要求使用任何特定的记录格式。因此,这里使用的术语“记录”应当做宽泛的解释,以便涵盖所存储数据或其他数据对象的众多不同布置。现在参考图3,示出了流程图,例示了在图I的系统100中实施的顺序高维分层抽样过程。本实施例中的抽样过程一般涉及顺序处理记录,例如,在从数据源112接收这样的记录时。这是一种“在线”抽样,因为可以在每条新记录可用时以顺序方式实时对记录抽样。该过程包括图示的步骤300到312。在步骤300中,获得要考虑进行抽样的下一记录。如前所述,这条记录可以是从数据源112之一接收的新记录,要存储于数据库108之一中。在一些实施例中,可以随机变更考虑抽样的记录次序,以便确保抽样不会被诸如本地存储器结构的因素影响。在步骤302中,确定这一特定记录属于J个子组的哪个。在这一实施例中,假设子组是以上述方式预定的。在其他实施例中,可以利用诸如关联规则采掘算法的技术确定子组。在步骤304中,确定针对记录所属的每个子组的抽样率是否小于指定的抽样率P。利用每个子组计数器222记录的对应一个和每个子组计数器224样本的对应一个为给定子组确定抽样率。每个子组计数器的记录给出了以作为该子组一部分的记录数衡量的子组大小度量。每个子组计数器的样本给出了子组被抽样的次数。确定子组被抽样次数除以作为子组一部分的记录数目作为子组的抽样率。针对包括考虑要抽样的记录的每个子组独立确定这一抽样率。如果针对记录所属的每个子组的抽样率小于指定抽样率p,如步骤306中所示对记录抽样。否则,如步骤308中所示,不对记录抽样。于是,当且仅当对于记录所属的每个子组,由指定抽样率P界定所实现抽样率的上限时,才对考虑中的给定记录抽样。然后该过程前进到步骤310,以为被抽样或未抽样记录所属的子组更新适当的计数器。然后在应用于下一条考虑抽样的记录时在过程的下一次迭代中使用更新的计数器。如果在步骤306中对样本抽样,对于该记录所属的每个子组,更新每个子组记录的计数器222的对应一个和每个子组样本的计数器224的对应一个。不过,如果不对考虑的记录抽样,使得过程通过步骤308到达步骤310,仅需要更新每个子组计数器的记录,因为每个子组的样本数量将不变。 在步骤312中,确定是否有更多记录要处理。如果有更多记录,该过程返回到步骤300以获得考虑进行抽样的下一记录。否则,如图所示结束该过程。一旦已经利用图3的过程产生了给定一组记录的适当样本,样本就可以被存储在样本数据库114中或系统100中的别处,并用于执行回归分析、数据采掘或其他功能。更一般地,进一步处理样本操作的结果以产生表征包括记录子组的数据库的信息。现在参考图4,示出了流程图,例示了在图I的系统100中实施的最优高维分层抽样过程。本实施例中的抽样过程一般涉及按组处理记录,例如,在从一个或多个数据库108检索时或在从一个或多个数据源112接收时。可以将此视为一种“离线”或周期抽样,因为不是像图3实施例那样顺序处理记录。该过程包括图示的步骤400到410。在最优抽样过程中,优化目标函数获得期望的抽样方案。一种可能的目标函数是
根据c使函数-〃J)2最小化。这是一个二次范数,容易忽略小的层,因此在特定应
r _ Y
用中不适宜。另一种可能性是使相对误差;最小化,这更多注重小层。不过,作
\ ni J
为这两个可能目标函数的替代,下面将描述在大层和小层之间实现良好折衷的目标函数。注意,如前所述,针对每个子组的样本大小S」遵循二项式分布。通过独立处理每个子组,能够如下表示由样本的似然函数给出的二项式目标函数
fiA s. usQ p J (I-p) } 1其中r^_是第j个子组的大小。注意,对子组的独立性假设并不表示子组不交叠。相反,仅仅意味着每个子组可能涉及到记录的任意子集,与什么记录与其他子组相关联无关。因此,这暗中假设与不同子组相关联的记录间有随机交叠。似然函数的最大化将获得关于要对哪些记录抽样的方案。基于二项式-正态近似,即,Sj大致遵守正态分布N (njP,njP (l_p)),可以如下用公式表示对应的正常目标函数
权利要求
1.一种设备,包括 处理装置,包括具有关联存储器的处理器; 其中,所述处理装置用于 对于给定记录,确定所述给定记录与多个子组中的哪个子组相关联; 对于与所述给定记录相关联的每个子组,检查所述子组的抽样率是否小于指定抽样率; 如果每个子组的抽样率都小于所述指定抽样率,对所述给定记录抽样,否则,不对所述给定记录抽样;以及 对于多个其他记录中的每个,重复所述确定、检查和抽样操作; 其中,由所述抽样操作所获得的样本被处理以产生表征包括所述子组的数据库的信肩、O
2.根据权利要求I所述的设备,其中,所述处理装置包括具有抽样模块的控制器,所述抽样模块被配置成,对于所述给定记录和所述多个其他记录,执行所述确定、检查和抽样操作。
3.根据权利要求I所述的设备,其中,所述子组包括所述数据库记录的交叠集合。
4.根据权利要求3所述的设备,其中,所述处理装置还用于为每个子组维持第一计数器和第二计数器,所述第一计数器指示与所述子组相关联的记录数量,所述第二计数器指示来自所述子组的所述记录被抽样的次数。
5.根据权利要求4所述的设备,其中,所述处理装置还用于为每个子组确定抽样率,所述抽样率根据为所述子组维持的所述第一计数器的值和为所述子组维持的所述第二计数器的值确定。
6.根据权利要求5所述的设备,其中,所述处理装置还用于基于所述给定记录是否被抽样,为与所述给定记录相关联的每个子组更新所述第一和第二计数器中的至少一个。
7.一种包括根据权利要求I所述的设备的集成电路。
8.一种处理器实现的方法,包括如下步骤 对于给定记录,确定所述给定记录与多个子组中的哪个子组相关联; 对于与所述给定记录相关联的每个子组,检查所述子组的抽样率是否小于指定抽样率; 如果每个子组的抽样率都小于所述指定抽样率,对所述给定记录抽样,否则,不对所述给定记录抽样; 对于多个其他记录中的每个,重复所述确定、检查和抽样步骤;以及 处理由所述抽样步骤获得的样本,以产生表征包括所述子组的数据库的信息。
9.一种包括计算机可读存储介质的产品,所述计算机可读存储介质中包含可执行程序代码,在由处理装置的处理器执行时,所述代码令所述装置执行根据权利要求8所述方法的步骤。
10.一种设备,包括 处理装置,包括具有关联存储器的处理器; 其中,所述处理装置用于 通过迭代地更新指定多个记录的各自记录是否被抽样的二进制指示符的分量,优化目标函数,所述目标函数表征在交叠的记录子组中多个记录的哪个记录被抽样;以及 基于所述二进制指示符的已更新分量优化所述目标函数的值,对所述多个记录的特定记录抽样; 其中,由所述抽样操作所获得的样本被处理以产生表征包括所述记录子组的数据库的信息。
11.一种处理器实现的方法,包括如下步骤 通过迭代地更新指定多个记录的各自记录是否被抽样的二进制指示符的分量,优化目标函数,所述目标函数表征在交叠的记录子组中多个记录的哪个记录被抽样; 基于所述二进制指示符已更新分量优化所述目标函数的值,对所述多个记录的特定记录抽样;以及 处理由所述抽样步骤所获得的样本,以产生表征包括所述多个记录的数据库的信息。
全文摘要
在一个方面中,信息处理系统的处理装置用于执行数据库的高维分层抽样,所述数据库包括多条布置在交叠子组中的记录。对于给定记录,处理装置确定给定记录与哪个子组相关联,对于与给定记录相关联的每个子组,检查子组的抽样率是否小于指定抽样率。如果每个子组的抽样率都小于指定抽样率,处理装置对所述给定记录抽样,否则不对给定记录抽样。针对其他记录重复确定、检查和抽样操作,处理抽样操作获得的样本以产生表征数据库的信息。本发明的其他方面涉及通过迭代地优化目标函数来确定对哪些记录抽样,目标函数可以基于例如被抽样记录的似然函数。
文档编号G06F17/30GK102985923SQ201180032445
公开日2013年3月20日 申请日期2011年6月9日 优先权日2010年6月28日
发明者陈爱友, 雄明 申请人:阿尔卡特朗讯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1