CN104809175B - 特征库的生成方法和装置 - Google Patents
特征库的生成方法和装置 Download PDFInfo
- Publication number
- CN104809175B CN104809175B CN201510173241.0A CN201510173241A CN104809175B CN 104809175 B CN104809175 B CN 104809175B CN 201510173241 A CN201510173241 A CN 201510173241A CN 104809175 B CN104809175 B CN 104809175B
- Authority
- CN
- China
- Prior art keywords
- target
- random number
- arbitrary width
- record
- scale
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供一种特征库的生成方法和装置。该方法包括:确定目标集元规模以及目标集元内特征记录的个数;利用预设的随机种子随机生成个数与目标集元内特征记录的个数相同的随机数,并保存为初始随机步长数组;对初始随机步长数组进行最多两次修正,得到目标随机步长数组,修正效率高;根据目标集元规模对整个目标记录进行划分;利用目标随机步长数组在各集元内获取相应的特征记录,作为对应的样本库;将各集元对应的样本库的并集作为整个目标记录的特征库。目标随机步长数组只需生成一次就可用于所有集元,降低了数据库管理***采集特征记录的性能开销,提高了CBO的分析效率,可满足采样随机性及采样率的精确性。
Description
技术领域
本发明实施例涉及数据库管理***的数据采样技术,尤其涉及一种特征库的生成方法和装置。
背景技术
数据库管理***根据用户输入的SQL(Structured Query Language,结构化查询语言)语句生成对应的执行计划。大多数数据库管理***,都引入了基于成本的优化器(cost based optimizer,CBO),即数据库管理***获取执行计划相关的所有信息,通过对这些信息做计算分析,得出所有可行的执行计划中一个代价最小的执行计划作为最终执行计划,以提高数据库管理***的执行效率。而对数据库记录的采样计算分析,是CBO存在的基石。
对所有记录进行计算分析,固然可以提高CBO的准确性,但是对于海量记录而言,这样的代价太高,反而会降低数据库管理***的执行效率。所以,如何在海量的记录中,随机地采样,获取特征记录,并生成特征库显得尤为重要。
通常,可认为数据库管理***中的记录是连续存储的,获取特征库的采样过程一般为:相对当前记录偏移A即步长后,获取一个特征记录,再相对偏移该获取到的特征记录相对偏移A’,获取下一个特征记录;反复此过程,最终得到特征库。
由于数据库中数据分布的不均匀性,目前的数据库管理***厂商多采用上述随机采样方法获取特征记录,从而生成特征库,但目前公开的资料都没有涉及如何有效地利用随机步长来生成特征库的方法。
发明内容
本发明实施例提供一种特征库的生成方法和装置,以优化特征记录的采集方式。
第一方面,本发明实施例提供了一种特征库的生成方法,包括:
根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数;
利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于0到所述目标集元规模之间;
计算所述初始随机步长数组包含的各随机数之和;
在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;
根据所述目标集元规模对整个目标记录进行划分;
对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库;
确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
第二方面,本发明实施例提供了一种特征库的生成装置,包括:
参数配置模块,用于根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数;
初始随机步长数组生成模块,用于利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于0到所述目标集元规模之间;
目标随机步长数组生成模块,用于计算所述初始随机步长数组包含的各随机数之和;在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;
特征库生成模块,用于根据所述目标集元规模对整个目标记录进行划分;对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库;确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
本发明实施例提供的特征库的生成方法和装置,通过确定目标集元规模,并使用目标集元规模对数据库管理***存储的指定表中的整个目标记录进行划分得到各集元,通过确定目标集元内特征记录的个数,利用随机种子生成相应的随机数,并将目标集元内特征记录的个数作为初始随机步长数组的容量,得到初始随机步长数组,通过初始随机步长数组包含的各随机数之和与目标集元规模的一致性判断,将符合一致性的初始随机步长数组作为目标随机步长数组,利用目标随机步长数组能够控制在每个集元中采集得到的特征记录的数量,而且集元的目标随机步长数组只需要生成一次就可用于所有集元,从而降低了数据库管理***采集特征记录的性能开销,减少了CBO分析采集到的特征记录的代价,提高了CBO的分析效率,此外,由于目标随机步长数组包含的各随机数之和与所述目标集元规模一致,对于划分得到的每个集元,可以保证每个集元内获取的特征记录的采样范围覆盖每个集元,能够同时满足采样的随机性及采样率的精确性。
附图说明
为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例一提供的一种特征库的生成方法的流程示意图;
图1b为本发明实施例一提供的使用目标随机数组在集元内获取特征记录的示意图;
图2a为本发明实施例二提供的一种特征库的生成方法的流程示意图;
图2b为本发明实施例二提供的通过一次修正得到目标随机步长数组的流程示意图;
图2c为本发明实施例二提供的通过二次修正得到目标随机步长数组的流程示意图;
图3为本发明实施例三提供的一种特征库的生成装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
请参阅图1a,为本发明实施例一提供的一种特征库的生成方法的流程示意图。本发明实施例的方法可以由配置以硬件和/或软件实现的特征库的生成装置来执行,该实现装置一般可集成于能够提供特征记录采集服务的服务器中。
该方法包括:步骤110~步骤170。
步骤110、根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数。
具体地,可以包括如下两个步骤:
计算预设的初始集元规模与预设的采样百分比之积;
在所述初始集元规模与采样百分比之积小于1时,扩大所述初始集元规模,直至计算到的扩大后的集元规模与采样百分比之积大于等于1,将扩大后的当前集元规模确定为目标集元规模,并将所述目标集元规模与采样百分比之积取整后确定为目标集元内特征记录的个数。
其中,集元规模是指集元包含的目标记录的总数,所述目标记录存储在数据库管理***中,数据库管理***中存储的指定表中的整个目标记录被划分为数个集元。也即,数据库管理***中存储有很多表,每个表中都存储有不同的记录,而本实施例的划分对象针对的是数据库管理***中存储的指定表中的整个目标记录。
目标集元规模与预设的采样百分比之积大于等于1,是指在目标集元规模对应的集元中至少获取一个特征记录。
例如,假设预设的初始集元规模G0为1000,预设的采样百分比为0.09%,计算得到的预设的初始集元规模G0与预设的采样百分比之积为0.9,判断到初始集元规模G0与采样百分比之积0.9小于1,将初始集元规模G0扩大10倍,扩大后的当前集元规模G为10000;再次计算得到当前集元规模G与预设的采样百分比之积为9,判断到当前集元规模G与采样百分比之积9大于1,此时,将扩大后的当前集元规模G确定为目标集元规模,并将所述目标集元规模10000与采样百分比0.09%之积9取整后确定为目标集元内特征记录的个数,表示在每10000条目标记录中应该随机采集9条目标记录作为特征记录,也即在目标集元规模为10000的每个集元中均需随机采集9条目标记录作为各目标集元的特征记录。
步骤120、利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于0到所述目标集元规模之间。
换言之,目标集元内特征记录的个数为N,则利用随机种子随机生成N个随机数,N个随机数中的每个随机数的取值范围均介于0到所述目标集元规模G之间,并将生成的N个随机数保存为初始随机步长数组,也即,目标集元内特征记录的个数N就是初始随机步长数组的容量。
在本实施例中,随机种子的设定是为了保证初始随机步长数组是相对可控的。
步骤130、计算所述初始随机步长数组包含的各随机数之和。
步骤140、在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组。
步骤150、根据所述目标集元规模对整个目标记录进行划分。
步骤160、对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库。
具体地,如果整个目标记录能整除目标集元规模,则划分得到的各集元包括:个数为整个目标记录整除目标集元规模之商、且规模为所述目标集元规模的集元。例如,假设数据库管理***中存储的整个目标记录为30000条,确定的目标集元规模G为10000,预设的采样百分比为0.09%,则划分得到3个集元,每个集元的规模均为10000。
如果整个目标记录不能整除目标集元规模,则划分得到的各集元包括:个数为整个目标记录整除目标集元规模之商、且规模为所述目标集元规模的集元,以及一个规模为整个目标记录整除目标集元规模之余数的集元。例如,假设数据库管理***中存储的整个目标记录为34000条,确定的目标集元规模G为10000,预设的采样百分比为0.09%,则划分得到4个集元,前3个集元的规模均为10000,第4个集元的规模为4000。
需要说明的是,使用集元的优点是,能够控制每次采集特征记录的数量,且集元的目标随机步长数组只需要生成一次就可用于所有集元,从而降低了数据库管理***采集特征记录的性能开销,减少了CBO分析采集到的特征记录的代价。
相应地,利用所述目标随机步长数组在该集元内获取相应的特征记录,具体可以包括:
对于规模为所述目标集元规模的各集元,根据所述目标随机步长数组中的第一个随机数,在该集元内获取相应的第一个特征记录;根据所述目标随机步长数组中的第i个随机数,获取在该集元内与所述第i-1个特征记录相对偏移为所述第i个随机数的记录,作为第i个特征记录,其中i≥2。
对于规模小于所述目标集元规模的集元,根据所述目标随机步长数组中的第一个随机数,在该集元内获取相应的第一个特征记录;根据所述目标随机步长数组中的第i个随机数,获取在该集元内与所述第i-1个特征记录相对偏移为所述第i个随机数的记录,作为第i个特征记录,其中i≥2,直至所述目标随机步长数组中的前i+1个随机数之和大于该集元的规模,则停止所述获取特征记录的操作。
在本实施例中,目标随机数组中的随机数用作随机步长,具体是指从前一个特征记录到当前特征记录的相对偏移。随机步长(也即目标随机数组中的随机数)的值应是大于等于0的整数。
请参阅图1b,为本发明实施例一提供的使用目标随机数组在集元内获取特征记录的示意图。该目标随机步长数组包含的随机数分别为0,3,2,5,3,6,3。根据该目标随机步长数组中的第一个随机数0,在图1b所示的集元内获取相应的第一个特征记录(如图1b中左侧第一个黑色实心标记所示);根据所述目标随机步长数组中的第2个随机数,获取在该集元内与所述第1个特征记录相对偏移为所述第2个随机数的记录(即与所述第1个特征记录相对偏移值为3的记录),作为第2个特征记录(如图1b中左侧第二个黑色实心标记所示);根据所述目标随机步长数组中的第3个随机数,获取在该集元内与所述第2个特征记录相对偏移为所述第3个随机数的记录(即与所述第2个特征记录相对偏移值为2的记录),作为第3个特征记录(如图1b中左侧第三个黑色实心标记所示),依次类推,获取到该集元内其余特征记录,从而得到该集元对应的样本库。
步骤170、确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
本实施例的技术方案,通过确定目标集元规模,并使用目标集元规模对数据库管理***存储的指定表中的整个目标记录进行划分得到各集元,通过确定目标集元内特征记录的个数,利用随机种子生成相应的随机数,并将目标集元内特征记录的个数作为初始随机步长数组的容量,得到初始随机步长数组,通过初始随机步长数组包含的各随机数之和与目标集元规模的一致性判断,将符合一致性的初始随机步长数组作为目标随机步长数组,利用目标随机步长数组能够控制在每个集元中采集得到的特征记录的数量,而且集元的目标随机步长数组只需要生成一次就可用于所有集元,从而降低了数据库管理***采集特征记录的性能开销,减少了CBO分析采集到的特征记录的代价,提高了CBO的分析效率,此外,由于目标随机步长数组包含的各随机数之和与所述目标集元规模一致,对于划分得到的每个集元,可以保证每个集元内获取的特征记录的采样范围覆盖每个集元,能够同时满足采样的随机性及采样率的精确性。
实施例二
请参阅图2a,为本发明实施例二提供的一种特征库的生成方法的流程示意图。该方法包括:步骤210~步骤290。
步骤210、根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数。
本步骤同样适用于前述实施例一步骤110中的具体操作,不再赘述。
步骤220、利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于0到所述目标集元规模之间。
步骤230、计算所述初始随机步长数组包含的各随机数之和。
步骤240、判断所述初始随机步长数组包含的各随机数之和与所述目标集元规模是否一致,若是,执行步骤250,若否,执行步骤260。
步骤250、将所述初始随机步长数组作为目标随机步长数组,继续执行步骤270。
步骤260、对所述初始随机步长数组包含的各随机数进行最多两次修正,得到目标随机步长数组,其中,所述目标随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率,继续执行步骤270。
需要说明的是,对于划分得到的各集元,为了保证特征记录的采样范围覆盖整个集元,集元样本库的作用域应该是整个集元。理想是目标随机步长数组包含的各随机数之和与目标集元规模一致。
但是,由于随机数的存在,不能保证生成的初始随机步长数组包含的各随机数之和与目标集元规模肯定一致。为此需要对所述初始随机步长数组包含的各随机数进行最多两次修正,使得得到的目标随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率。
下面对第一次修正方法和第二次修正方法分别进行介绍。
请参阅图2b,为本发明实施例二提供的通过一次修正得到目标随机步长数组的流程示意图。具体包括:步骤261~步骤263。
步骤261、对所述初始随机步长数组包含的各随机数均等比例缩放并取整,得到第一次修正后的随机步长数组,其中,所述缩放系数为所述目标集元规模与所述初始随机步长数组包含的各随机数之和的比值。
步骤262、判断所述第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差是否符合预设误差率,若是,执行步骤263。
步骤263、将所述第一次修正后的随机步长数组作为目标随机步长数组。
换言之,在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对原始随机步长数组中的各随机数进行第一次修正,具体是:对原始随机步长数组中的每个随机数,按照所述初始随机步长数组包含的各随机数之和S与目标集元规模G的比例等比地缩放(对原始随机步长数组中的每一个随机数都乘(G÷S),再取整。
本方式,在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对原始随机步长数组中所有的随机数进行第一次修正,从而使得第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率,进而得到目标随机步长数组,由于目标随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率,因此对于划分得到的每个集元,可以保证每个集元内获取的特征记录的采样范围覆盖每个集元,能够同时满足采样的随机性及采样率的精确性。
请参阅图2c,为本发明实施例二提供的通过二次修正得到目标随机步长数组的流程示意图。具体包括:步骤261~步骤267。
步骤261、对所述初始随机步长数组包含的各随机数均等比例缩放并取整,得到第一次修正后的随机步长数组,其中,所述缩放系数为所述目标集元规模与所述初始随机步长数组包含的各随机数之和的比值。
步骤262、判断所述第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差是否符合预设误差率,若是,执行步骤263,若否,执行步骤264。
步骤263、将所述第一次修正后的随机步长数组作为目标随机步长数组。
换言之,在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对原始随机步长数组中的各随机数进行第一次修正,如果第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率,则通过一次修正即可得到目标随机步长数组,否则,还需要对第一次修正后的随机步长数组进行第二次修正,从而使得第二次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率,进而得到目标随机步长数组。第二次修正方法具体包括:步骤264~步骤267。
步骤264、根据所述目标集元规模和所述预设误差率,确定集元覆盖范围的下限值和上限值,继续执行步骤265。
具体地,根据所述目标集元规模G和所述预设误差率,确定集元覆盖范围的下限值L和上限值U,其中,L=G-G×预设误差率,U=G+G×预设误差率。
步骤265、在所述集元覆盖范围的下限值至上限值之间,随机选取一个值作为修正参数,确定所述修正参数与所述第一次修正后的随机步长数组包含的各随机数之和的偏差,继续执行步骤266。
也即,在范围[L,U]内,随机选择一个值W作为修正参数,并确定W与第一次修正后的随机步长数组包含的各随机数之和S之间的偏差D。
步骤266、在所述第一次修正后的随机步长数组中随机选取个数与所述偏差相同的随机数,继续执行步骤267。
具体是,在第一次修正后的随机步长数组中随机选取D个随机数,作为第二次修正的修正对象。
步骤267、如果所述修正参数大于所述第一次修正后的随机步长数组包含的各随机数之和,则将所述随机选取的个数与所述偏差相同的各随机数均加1,得到第二次修正后的随机步长数组,并作为目标随机步长数组;
如果所述修正参数小于所述第一次修正后的随机步长数组包含的各随机数之和,则将所述随机选取的个数与所述偏差相同的各随机数均减1,得到第二次修正后的随机步长数组,并作为目标随机步长数组。
也即,如果W>第一次修正后的随机步长数组包含的各随机数之和S,则将第一次修正后的随机步长数组中随机选取的D个随机数每一个都加1;否则,将第一次修正后的随机步长数组中随机选取的D个随机数每一个都减1。
本方式,在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对原始随机步长数组中所有的随机数进行第一次修正,在第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率时,通过一次修正即可得到目标随机步长数组;在第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差仍不符合预设误差率时,进行第二次修正,得到目标随机步长数组,由于目标随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率,因此对于划分得到的每个集元,可以保证每个集元内获取的特征记录的采样范围覆盖每个集元,能够同时满足采样的随机性及采样率的精确性。
需要说明的是,第一次修正是针对原始随机步长数组中所有的随机数;第二次修正只需要从第一次修正后的随机步长数组中随机的选取部分随机数来修正,并不涉及全部随机数。
步骤270、根据所述目标集元规模对整个目标记录进行划分。
步骤280、对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库。
本步骤同样适用于上述实施例一提供的利用所述目标随机步长数组在该集元内获取相应的特征记录的具体操作,不再赘述。
步骤290、确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
本实施例的技术方案,通过确定目标集元规模,并使用目标集元规模对数据库管理***存储的指定表中的整个目标记录进行划分得到各集元,通过确定目标集元内特征记录的个数,利用随机种子生成相应的随机数,并将目标集元内特征记录的个数作为初始随机步长数组的容量,得到初始随机步长数组,在判断到初始随机步长数组包含的各随机数之和与目标集元规模的不一致时,通过最多两次修正,即可目标随机步长数组,利用目标随机步长数组能够控制在每个集元中采集得到的特征记录的数量,而且集元的目标随机步长数组只需要生成一次就可用于所有集元,从而降低了数据库管理***采集特征记录的性能开销,减少了CBO分析采集到的特征记录的代价,提高了CBO的分析效率,此外,由于目标随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率,因此对于划分得到的每个集元,可以保证每个集元内获取的特征记录的采样范围覆盖每个集元,能够同时满足采样的随机性及采样率的精确性。
实施例三
请参阅图3,为本发明实施例三提供的一种特征库的生成装置的结构示意图。该装置包括:参数配置模块310、初始随机步长数组生成模块320、目标随机步长数组生成模块330和特征库生成模块340。
其中,参数配置模块310用于根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数;初始随机步长数组生成模块320用于利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于0到所述目标集元规模之间;目标随机步长数组生成模块330用于计算所述初始随机步长数组包含的各随机数之和;在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;特征库生成模块340用于根据所述目标集元规模对整个目标记录进行划分;对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库;确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
本实施例的技术方案,通过确定目标集元规模,并使用目标集元规模对数据库管理***存储的指定表中的整个目标记录进行划分得到各集元,通过确定目标集元内特征记录的个数,利用随机种子生成相应的随机数,并将目标集元内特征记录的个数作为初始随机步长数组的容量,得到初始随机步长数组,通过初始随机步长数组包含的各随机数之和与目标集元规模的一致性判断,将符合一致性的初始随机步长数组作为目标随机步长数组,利用目标随机步长数组能够控制在每个集元中采集得到的特征记录的数量,而且集元的目标随机步长数组只需要生成一次就可用于所有集元,从而降低了数据库管理***采集特征记录的性能开销,减少了CBO分析采集到的特征记录的代价,提高了CBO的分析效率,此外,由于目标随机步长数组包含的各随机数之和与所述目标集元规模一致,对于划分得到的每个集元,可以保证每个集元内获取的特征记录的采样范围覆盖每个集元,能够同时满足采样的随机性及采样率的精确性。
在上述方案中,所述目标随机步长数组生成模块330还可用于,在计算所述初始随机步长数组包含的各随机数之和之后,在根据所述目标集元规模对整个目标记录进行划分之前,在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对所述初始随机步长数组包含的各随机数进行最多两次修正,得到目标随机步长数组,其中,所述目标随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率。
进一步地,所述目标随机步长数组生成模块330可优选包括:计算子模块、第一修正子模块和目标随机步长数组生成子模块。
其中,计算子模块用于计算所述初始随机步长数组包含的各随机数之和;第一修正子模块用于在计算所述初始随机步长数组包含的各随机数之和之后,在根据所述目标集元规模对整个目标记录进行划分之前,在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对所述初始随机步长数组包含的各随机数均等比例缩放并取整,得到第一次修正后的随机步长数组,其中,所述缩放系数为所述目标集元规模与所述初始随机步长数组包含的各随机数之和的比值;目标随机步长数组生成子模块用于在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;或者用于在判断到所述第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率时,将所述第一次修正后的随机步长数组作为目标随机步长数组。
进一步地,所述目标随机步长数组生成模块330还可包括:第二修正子模块,用于在得到第一次修正后的随机步长数组之后,在判断到所述第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差不符合预设误差率时,根据所述目标集元规模和所述预设误差率,确定集元覆盖范围的下限值和上限值;在所述集元覆盖范围的下限值至上限值之间,随机选取一个值作为修正参数,确定所述修正参数与所述第一次修正后的随机步长数组包含的各随机数之和的偏差;在所述第一次修正后的随机步长数组中随机选取个数与所述偏差相同的随机数;如果所述修正参数大于所述第一次修正后的随机步长数组包含的各随机数之和,则将所述随机选取的个数与所述偏差相同的各随机数均加1,得到第二次修正后的随机步长数组,并作为目标随机步长数组;如果所述修正参数小于所述第一次修正后的随机步长数组包含的各随机数之和,则将所述随机选取的个数与所述偏差相同的各随机数均减1,得到第二次修正后的随机步长数组,并作为目标随机步长数组。
在上述方案中,所述参数配置模块310具体可用于:
计算预设的初始集元规模与预设的采样百分比之积;
在所述初始集元规模与采样百分比之积小于1时,扩大所述初始集元规模,直至计算到的扩大后的集元规模与采样百分比之积大于等于1,将扩大后的当前集元规模确定为目标集元规模,并将所述目标集元规模与采样百分比之积取整后确定为目标集元内特征记录的个数。
在上述方案中,如果整个目标记录能整除目标集元规模,则划分得到的各集元包括:个数为整个目标记录整除目标集元规模之商、且规模为所述目标集元规模的集元;
如果整个目标记录不能整除目标集元规模,则划分得到的各集元包括:个数为整个目标记录整除目标集元规模之商、且规模为所述目标集元规模的集元,以及一个规模为整个目标记录整除目标集元规模之余数的集元。
相应的,所述特征库生成模块340具体用于:
对于规模为所述目标集元规模的各集元,根据所述目标随机步长数组中的第一个随机数,在该集元内获取相应的第一个特征记录;根据所述目标随机步长数组中的第i个随机数,获取在该集元内与所述第i-1个特征记录相对偏移为所述第i个随机数的记录,作为第i个特征记录,其中i≥2;
对于规模小于所述目标集元规模的集元,根据所述目标随机步长数组中的第一个随机数,在该集元内获取相应的第一个特征记录;根据所述目标随机步长数组中的第i个随机数,获取在该集元内与所述第i-1个特征记录相对偏移为所述第i个随机数的记录,作为第i个特征记录,其中i≥2,直至所述目标随机步长数组中的前i+1个随机数之和大于该集元的规模,则停止所述获取特征记录的操作。
本发明实施例提供的特征库的生成装置可执行本发明任意实施例所提供的特征库的生成方法,具备执行方法相应的功能模块和有益效果。
显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以通过如上所述的服务器和客户端实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其进行限制;实施例中优选的实施方式,并非对其进行限制,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种特征库的生成方法,其特征在于,包括:
根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数;
利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于0到所述目标集元规模之间;
计算所述初始随机步长数组包含的各随机数之和;
在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;
根据所述目标集元规模对整个目标记录进行划分;
对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库;
确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
2.根据权利要求1所述的方法,其特征在于,在计算所述初始随机步长数组包含的各随机数之和之后,在根据所述目标集元规模对整个目标记录进行划分之前,所述方法还包括:
在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对所述初始随机步长数组包含的各随机数进行最多两次修正,得到目标随机步长数组,其中,所述目标随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率。
3.根据权利要求2所述的方法,其特征在于,对所述初始随机步长数组包含的各随机数进行最多两次修正,得到目标随机步长数组,包括:
对所述初始随机步长数组包含的各随机数均等比例缩放并取整,得到第一次修正后的随机步长数组,其中,缩放系数为所述目标集元规模与所述初始随机步长数组包含的各随机数之和的比值;
在判断到所述第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率时,将所述第一次修正后的随机步长数组作为目标随机步长数组。
4.根据权利要求3所述的方法,其特征在于,在得到第一次修正后的随机步长数组之后,所述方法还包括:
在判断到所述第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差不符合预设误差率时,根据所述目标集元规模和所述预设误差率,确定集元覆盖范围的下限值和上限值;
在所述集元覆盖范围的下限值至上限值之间,随机选取一个值作为修正参数,确定所述修正参数与所述第一次修正后的随机步长数组包含的各随机数之和的偏差;
在所述第一次修正后的随机步长数组中随机选取个数与所述偏差相同的随机数;
如果所述修正参数大于所述第一次修正后的随机步长数组包含的各随机数之和,则将所述随机选取的个数与所述偏差相同的各随机数均加1,得到第二次修正后的随机步长数组,并作为目标随机步长数组;
如果所述修正参数小于所述第一次修正后的随机步长数组包含的各随机数之和,则将所述随机选取的个数与所述偏差相同的各随机数均减1,得到第二次修正后的随机步长数组,并作为目标随机步长数组。
5.根据权利要求1-4任一所述的方法,其特征在于,根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数,包括:
计算预设的初始集元规模与预设的采样百分比之积;
在所述初始集元规模与采样百分比之积小于1时,扩大所述初始集元规模,直至计算到的扩大后的集元规模与采样百分比之积大于等于1,将扩大后的当前集元规模确定为目标集元规模,并将所述目标集元规模与采样百分比之积取整后确定为目标集元内特征记录的个数。
6.根据权利要求1-4任一所述的方法,其特征在于:
如果整个目标记录能整除目标集元规模,则划分得到的各集元包括:个数为整个目标记录整除目标集元规模之商、且规模为所述目标集元规模的集元;
如果整个目标记录不能整除目标集元规模,则划分得到的各集元包括:个数为整个目标记录整除目标集元规模之商、且规模为所述目标集元规模的集元,以及一个规模为整个目标记录整除目标集元规模之余数的集元。
7.根据权利要求6所述的方法,其特征在于,利用所述目标随机步长数组在该集元内获取相应的特征记录,包括:
对于规模为所述目标集元规模的各集元,根据所述目标随机步长数组中的第一个随机数,在该集元内获取相应的第一个特征记录;根据所述目标随机步长数组中的第i个随机数,获取在该集元内与第i-1个特征记录相对偏移为所述第i个随机数的记录,作为第i个特征记录,其中i≥2;
对于规模小于所述目标集元规模的集元,根据所述目标随机步长数组中的第一个随机数,在该集元内获取相应的第一个特征记录;根据所述目标随机步长数组中的第i个随机数,获取在该集元内与所述第i-1个特征记录相对偏移为所述第i个随机数的记录,作为第i个特征记录,其中i≥2,直至所述目标随机步长数组中的前i+1个随机数之和大于该集元的规模,则停止所述获取特征记录的操作。
8.一种特征库的生成装置,其特征在于,包括:
参数配置模块,用于根据预设的初始集元规模以及采样百分比,确定目标集元规模以及目标集元内特征记录的个数;
初始随机步长数组生成模块,用于利用预设的随机种子随机生成个数与所述目标集元内特征记录的个数相同的随机数,并将生成的各随机数保存为初始随机步长数组,各随机数的取值范围均介于0到所述目标集元规模之间;
目标随机步长数组生成模块,用于计算所述初始随机步长数组包含的各随机数之和;在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;
特征库生成模块,用于根据所述目标集元规模对整个目标记录进行划分;对于划分得到的各集元,利用所述目标随机步长数组在该集元内获取相应的特征记录,作为该集元对应的样本库;确定各集元对应的样本库的并集,作为所述整个目标记录的特征库。
9.根据权利要求8所述的装置,其特征在于:
所述目标随机步长数组生成模块还用于,在计算所述初始随机步长数组包含的各随机数之和之后,在根据所述目标集元规模对整个目标记录进行划分之前,在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对所述初始随机步长数组包含的各随机数进行最多两次修正,得到目标随机步长数组,其中,所述目标随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率。
10.根据权利要求9所述的装置,其特征在于,所述目标随机步长数组生成模块包括:
计算子模块,用于计算所述初始随机步长数组包含的各随机数之和;
第一修正子模块,用于在计算所述初始随机步长数组包含的各随机数之和之后,在根据所述目标集元规模对整个目标记录进行划分之前,在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模不一致时,对所述初始随机步长数组包含的各随机数均等比例缩放并取整,得到第一次修正后的随机步长数组,其中,缩放系数为所述目标集元规模与所述初始随机步长数组包含的各随机数之和的比值;
目标随机步长数组生成子模块,用于在判断到所述初始随机步长数组包含的各随机数之和与所述目标集元规模一致时,将所述初始随机步长数组作为目标随机步长数组;或者用于在判断到所述第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差符合预设误差率时,将所述第一次修正后的随机步长数组作为目标随机步长数组;
所述目标随机步长数组生成模块还包括:
第二修正子模块,用于在得到第一次修正后的随机步长数组之后,在判断到所述第一次修正后的随机步长数组包含的各随机数之和与所述目标集元规模之间的误差不符合预设误差率时,根据所述目标集元规模和所述预设误差率,确定集元覆盖范围的下限值和上限值;在所述集元覆盖范围的下限值至上限值之间,随机选取一个值作为修正参数,确定所述修正参数与所述第一次修正后的随机步长数组包含的各随机数之和的偏差;在所述第一次修正后的随机步长数组中随机选取个数与所述偏差相同的随机数;如果所述修正参数大于所述第一次修正后的随机步长数组包含的各随机数之和,则将所述随机选取的个数与所述偏差相同的各随机数均加1,得到第二次修正后的随机步长数组,并作为目标随机步长数组;如果所述修正参数小于所述第一次修正后的随机步长数组包含的各随机数之和,则将所述随机选取的个数与所述偏差相同的各随机数均减1,得到第二次修正后的随机步长数组,并作为目标随机步长数组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510173241.0A CN104809175B (zh) | 2015-04-13 | 2015-04-13 | 特征库的生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510173241.0A CN104809175B (zh) | 2015-04-13 | 2015-04-13 | 特征库的生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104809175A CN104809175A (zh) | 2015-07-29 |
CN104809175B true CN104809175B (zh) | 2018-02-27 |
Family
ID=53693997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510173241.0A Active CN104809175B (zh) | 2015-04-13 | 2015-04-13 | 特征库的生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104809175B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279864A (zh) * | 2018-01-31 | 2018-07-13 | 上海集成电路研发中心有限公司 | ***随机数生成方法 |
CN110825783B (zh) * | 2019-10-31 | 2024-07-02 | 深圳前海微众银行股份有限公司 | 数据抽样方法、装置、设备及存储介质 |
CN112308330B (zh) * | 2020-11-09 | 2021-07-09 | 清华大学 | 数字化事故数据库构建方法、装置和计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081651A (zh) * | 2010-12-29 | 2011-06-01 | 北京像素软件科技股份有限公司 | 一种网络游戏数据库分表的方法 |
CN102999594A (zh) * | 2012-11-16 | 2013-03-27 | 上海交通大学 | 基于最大划分和随机数据块的安全最近邻查询方法及*** |
CN104156451A (zh) * | 2014-08-18 | 2014-11-19 | 深圳市一五一十网络科技有限公司 | 数据存储管理方法及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8880506B2 (en) * | 2009-10-16 | 2014-11-04 | Oracle International Corporation | Leveraging structured XML index data for evaluating database queries |
US9128984B2 (en) * | 2009-02-02 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Query plan analysis of alternative plans using robustness mapping |
CN104216894B (zh) * | 2013-05-31 | 2017-07-14 | 国际商业机器公司 | 用于数据查询的方法和*** |
-
2015
- 2015-04-13 CN CN201510173241.0A patent/CN104809175B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081651A (zh) * | 2010-12-29 | 2011-06-01 | 北京像素软件科技股份有限公司 | 一种网络游戏数据库分表的方法 |
CN102999594A (zh) * | 2012-11-16 | 2013-03-27 | 上海交通大学 | 基于最大划分和随机数据块的安全最近邻查询方法及*** |
CN104156451A (zh) * | 2014-08-18 | 2014-11-19 | 深圳市一五一十网络科技有限公司 | 数据存储管理方法及*** |
Non-Patent Citations (1)
Title |
---|
混合MapReduce环境下大数据划分的查询优化;李伏等;《计算机科学与探索》;20120815;第877页-第887页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104809175A (zh) | 2015-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104809175B (zh) | 特征库的生成方法和装置 | |
US20140292765A1 (en) | Aggregating graph structures | |
CN103473171A (zh) | 一种基于函数调用路径的覆盖率动态跟踪方法及装置 | |
Zhijia et al. | Study of the Xinanjiang model parameter calibration | |
CN104281940A (zh) | 用于通过通信网络提供数据处理方式列表的方法及装置 | |
CN105989129A (zh) | 实时数据统计方法和装置 | |
CN111078094B (zh) | 分布式机器学习可视化装置 | |
CN108204819A (zh) | 一种地图数据自动检测方法和装置、及混合导航*** | |
CN104077438A (zh) | 电网大规模拓扑结构构建方法与*** | |
CN103714124B (zh) | 超大规模低压数据处理方法 | |
CN106250457A (zh) | 大数据平台物化视图的查询处理方法及*** | |
CN101576849A (zh) | 测试数据的生成方法 | |
CN108632047A (zh) | 一种资费数据的确定方法及装置 | |
CN106022590B (zh) | 有源配电网的电压质量评估方法和装置 | |
CN109872159B (zh) | 一种区块链共识方法及架构 | |
CN110019205A (zh) | 一种数据存储、还原方法、装置及计算机设备 | |
CN110880754A (zh) | 一种全网受阻电量确定方法和*** | |
CN104299065B (zh) | 一种调度自动化主备***间模型正确性校验的方法 | |
CN103984723A (zh) | 一种针对增量数据对频繁项进行更新数据挖掘方法 | |
CN107798007A (zh) | 一种分布式数据库数据校验的方法、装置及相关装置 | |
CN106789147A (zh) | 一种流量分析方法及装置 | |
CN112733234A (zh) | 一种基于电缆信息传递的三维桥架自动计算及生成的装置 | |
CN103281202A (zh) | 一种浏览器/服务器架构的***及其前端呈现方法 | |
CN103490949A (zh) | 一种数据信息采集、数据信息异常检测的方法和设备 | |
CN110784349A (zh) | 一种电力通信设备与网络割接方案自动生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |