频繁项集的生成方法及装置的制造方法_2

文档序号:9750997阅读:来源:国知局

[0036]例如,频繁支持度为0.6,表1所示的原始数据表中包含五个分组,因此,若某数据 项在分组中的出现次数大于或等于3(5*0.6),则可以认为该数据项是频繁的。
[0037]在实施中,可以根据实际需求,对原始数据表进行不同方式的关联分析,从而获得 不同元数的频繁项集。为了便于理解,对频繁项集的数据元个数进行说明。具体来讲,频繁 项集中的数据项,可以包括一个数据元,也可以包括多个数据元。
[0038] 参见表2,其是依据原始数据表即表1生成的一元频繁项集。表2包括四个数据项, 分别为尿布、面包、牛奶及啤酒,这些数据项都是一元的,所以称为一元频繁项集。
[0039] 表 2
[0040]
[0041] 再者,参见表3,其是依据原始数据表即表1生成的二元频繁项集。表3包括五个数 据项,分别为{面包、牛奶}、{尿布、牛奶}、{面包、尿布}、{牛奶、啤酒}及{尿布、啤酒},这些 数据项均包括两个数据元,所以称为二元频繁项集。同理可知,数据项包括N个数据元的频 繁项集被称为N元频繁项集。
[0042] 表 3
[0043]
?〇〇44?~需要说明的是,在本实施例中,频繁项集的数据元个数不同,则频繁项集的生成方^ 式也不同,因此,需要首先确定待生成频繁项集的数据项是几元的。具体的确定方式可以 是,获取预设的数据元个数N值,或者,接收外部输入的参数值,参数值中包括数据元个数N。
[0045] 如上,频繁支持度也是一个重要参数。因此,也需要确定出频繁支持度。具体的确 定方式,也可以是获取预先设置的频繁支持度,或者,接收外部输入的参数值,参数值中包 括频繁支持度。
[0046] 步骤S102:若数据元个数N为1,则使用包含分组过滤规则的数据库查询语句,从若 干组数据项中,查询所在组的个数满足频繁支持度的目标数据项,将包含目标数据项的数 据表确定为一元频繁项集。
[0047] 其中,若步骤S101确定出的数据元个数N是1,则说明需要生成一元频繁项集。
[0048] 需要说明的是,本实施例使用数据库查询语句,从原始数据表中读取数据,从而生 成一元频繁项集。由于一元频繁项集中的数据项是一元的,仅仅使用一张数据表即原始数 据表即可。
[0049] 本步骤中的数据库查询语言中包含分组过滤规则,用于对原始数据表的若干组数 据项进行分组。
[0050] -种分组标准是数据项在数据表中的标识,如表1中的订单编号,按照订单编号对 表1中的数据项分组后,获得五个分组。
[0051 ]将原始数据表中的数据项分组后,统计每个数据项在各个分组中出现的次数,换 句话后,即统计每个数据项所在组的个数。然后,查找出现次数或者所在组的个数满足频繁 支持度的数据项,将查找到的数据项作为目标数据项。
[0052] 其中,所在组的个数满足频繁支持度,指的是所在组的个数大于或等于频繁支持 度与原始数据表中的数据项的组数的乘积。
[0053] 以表1为例进行说明,原始数据表中数据项的组数为5,假设频繁支持度为0.6,则 需要查找所在组的个数大于或等于3(5*0.6)的目标数据项。经过查找发现,尿布、面包、牛 奶及啤酒所在组的个数分别为4、4、5及3,符合条件,因此尿布、面包、牛奶及啤酒为目标数 据项。
[0054]包含目标数据项的数据表即一元频繁项集,如上表2所示。
[0055]步骤S103:若数据元个数N大于1,则获得一个一元频繁项集、一个N-1元频繁项集 及N个原始数据表,使用包含表关联规则及分组过滤规则的数据库查询语句,对一元频繁项 集、N-1元频繁项集及N个原始数据表进行关联及分组过滤查询,获得所在组的个数满足频 繁支持度的N元目标数据项,将包含N元目标数据项的数据表确定为N元频繁项集。
[0056]其中,若步骤S101确定出的数据元个数N大于1,则表明需要生成多个数据元的频 繁项集,即多元频繁项集。
[0057]多元频繁项集的生成过程,需要使用数据库查询语句,对多个数据表进行关联查 询。数据表的个数及类型均与数据元个数N相关,具体地,数据表的个数为N+2个,分别为1个 一元频繁项集、1个N-1元频繁项集,及N个原始数据表。
[0058]例如,生成三元频繁项集,需要首先获得1个一元频繁项集、1个二元频繁项集及3 个原始数据表。
[0059] N个原始数据表可以从数据库直接获取到,一元频繁项集可以按照上述步骤S102 的方式获得。对于N-1元频繁项集,若N-1为1,则同样按照上述步骤S102的方式获得,若N-1 大于1,则可以按照本步骤的方式获得,即将N-1作为N进行运算。
[0060] 可见,若N-ι大于1,则生成频繁项集的过程是不断迭代的过程。例如,需要生成四 元频繁项集,则需要先生成一元频繁项集,依据一元频繁项集生成二元频繁项集、依据二元 频繁项集生成三元频繁项集,最后,使用一元频繁项集、三元频繁项集、及原始数据表,生成 四元频繁项集。
[0061] 需要说明的是,使用元数较低的频繁项集生成元数较高的频繁项集,依据的是先 验原理。先验原理保证所有非频繁的元数较低的频繁项集的超集都是非频繁的。
[0062] 在获得多个数据表后,使用数据库查询语句,对多个数据表进行关联查询。需要说 明的是,该数据库查询语句是包含关联规则及分组过滤规则的数据库查询语句。
[0063] 可以理解的是,数据库查询语句在进行关联运算时,会生成包括多个相同数据元 的数据项,如AA、BB类型的数据项,此种数据项是无效的,因此需要去除。另外,还会生成数 据元相同但排列顺序不同的数据项,关联分析时,并不关心数据项中数据元的排列顺序,因 此,需要去除一份数据元相同但排列顺序不同的数据项。
[0064]例如,进行关联的数据表中包括A、B及C三个数据项,使用数据库查询语句进行关 联运算时,会生成六4^8^(:、84、88、8(:、04丄8及〇:这几种数据项,但是,重复数据项44^8及 CC是无效的,需要去除。并且,AB与BA包含的数据元相同,只是顺序不同而已,需要去除其中 的一份数据项。同理,AC与CA等等均是如此。
[0065]为了实现上述去除部分无效组合的目的,需要在关联规则中添加限制条件。具体 地,N个原始数据表进行关联时,需要保证N个原始数据表中,相同标识的数据项之间进行组 合,其他的限制条件可以参见下文所示。
[0066]通过以上具有关联规则的限制条件,获得多个N元数据项。其中,N元数据项即包含 N个数据元的数据项。例如,3元数据项包括{尿布、牛奶、啤酒}。
[0067] 在获得多个N元数据项后,使用数据库查询语句中的分组过滤规则,对该多个N元 数据项进行分组。由以上限制条件可知,同一N元数据项中的数据元具有相同的标识,因此, 可以按照标识对N元数据项进行分组,即将同一标识的N元数据项作为一个分组。
[0068] 分组后,分别统计每个N元数据项出现在组内的次数,或者,称为所在组的个数。若 某个N元数据项出现的次数满足频繁支持度,则将该N元数据项作为N元的目标数据项。
[0069] 例如,{尿布、牛奶、啤酒}及{面包、尿布、牛奶}的出现在分组的个数均是3,等于频 繁支持度〇. 6与分组总数5的乘积,因此,将该两个数据项作为N元目标数据项。<
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1