一种基于FpGrowth算法的剪枝策略的制作方法

文档序号:16069280发布日期:2018-11-24 13:00阅读:1770来源:国知局
本发明涉及数据挖掘领域,尤其涉及一种基于fpgrowth算法的剪枝策略。
背景技术
:随着信息技术的迅猛发展,要从日益庞大和复杂的数据中发现有价值的信息和知识,达到为决策服务的目的,己成为非常艰巨的任务。数据挖掘技术在此背景下应运而生。关联规则挖掘是数据挖掘中的一个重要分支,也是目前应用最广的一种数据挖掘类型。数据关联规则的挖掘目的,是发现在大量的数据项之间存在的值得关注的关联或相关关系,典型应用是零售业的购物篮分析。所谓购物篮分析是指对数据进行关联规则研究,有助于发现交易数据库中不同商品之间的联系,找出顾客购买行为的模式,例如,如果面包和牛奶经常被顾客同时购买,则把它们摆放在一起有助于增加两种商品的销售量。为了衡量一条规则的重要程度,关联规则通常采用支持度和可信度作为度量标准。支持度可以表示商品在超市销售中的重要程度,可信度反映了商品之间的关联程度。如果在购买面包的交易中,有60%的交易既购买了面包又购买了牛奶,则称关联规则“面包牛奶”,表示如果购买面包则购买牛奶的可信度为60%。关联规则,表示a与b同时存在的情况下,在事务数据库d中的支持度,可用概率表示;关联规则在事务数据库d中的可信度,是在事务数据库d中的那些包含a的事务中,b也同时出现的概率,即条件概率。一个项集x在事务数据库d中的支持度,是事务数据库d中包含x的事务占事务总数的百分比,即概率p(x)。对于一个项集x,如果其支持度大于或等于预先给定的支持度阈值min_support,则称x为频繁项集或频繁模式。fpgrowth算法的基本思想是利用树结构对事务进行压缩,同时保留了事务中属性之间的关系。这种算法不会产生候选项集,而采用增长频繁集的方法进行数据挖掘。fpgrowth算法的重要步骤是fp-tree的构造过程,需要扫描两次事务集:第一次扫描事务集t,找出频繁1-项集合l_list,并且将l_list按照支持度计数降序排列;第二次扫描事务集t,以“null”为根节点,基于l_list构建fp-tree。为了方便遍历fp-tree,还需创建项头表。该表中每一行表示一个频繁项,并且有一个指针指向它在fp-tree中对应的节点。具体算法流程如下:(1)创建原始fp-tree。1)扫描事务集合t,找出支持度计数满足条件的项,并将这些项组合成频繁1-项集合l,基于支持度计数将l降序排列得到l_list。2)创建原始fp-tree,并以“null”为根节点。3)创建项头表。为了方便遍历原始fp-tree,项头表中每一行表示一个频繁项,并且有对应指针指向它在fp-tree中的节点。4)遍历一次事务集合t,将t中所有事务的项次序根据l_list进行调整。为每个调整后项次序的事务创建一个事务分支。如果分支可以共享路径则共享,并且在各个节点上记录共享事务数目。(2)在原始fp-tree上递归地找出所有的频繁项集。1)赋后缀模式a的初始值为根节点null,即a=null。在fp-tree上采用递归的方法搜索频繁项集,如果fp-tree只有一个分支,那么分支路径上的节点的一个组合就是一个前缀模式b。剔除分支路径上的不满足最小支持度的节点,剩余的节点值所组成的任何集合b与后缀模式a取并,可获得所有对应的频繁项集。其中bi为一前缀模式,否则增长a,a=a∪{ei},其中ei为l_list中的最后一项,即支持度计数的最小项。然后构造后缀模式的条件模式基与条件fp-tree,其中a的条件模式基,指得是fp-tree中以ei为叶子节点的所有分支。a的条件fp-tree,指得是以a的条件模式基为事务按照步骤1中的方式所创建的新的fp子树。2)在条件fp-tree上采用相同方法递归地搜索频繁项集,后缀模式a此时为{ei}。3)对每个最大频繁项集,取其所有子集,其中每个子集为一频繁项集。fpgrowth算法主要包括3个模块,fpgrowth模块体现了fpgrowth算法的流程,insert模块主要完成生成fp-tree的功能,search模块则完成获得条件模式基以方便下一层递归运算。技术实现要素:本发明的目的是为了解决传统数据关联规则挖掘效率不高的问题,为此对经典fpgrowth算法的fp-tree的结构和挖掘过程进行了深入分析和研究,分析了fp-tree单路径和多路径的挖掘方法,提出了一个剪枝方法,可以减少部分分支的迭代次数。提高了fpgrowth算法对数据的处理能力和效率。本发明实施例提供的一种数据关联规则挖掘fp-tree的剪枝方法,包括:通过对fpgrowth算法的挖掘步骤研究,文中提出了一个剪枝方法。如果项集i在某一个路径上是非频繁的,又项集i在fp-tree中存在前缀路径集合a,b并且a⊂b,那么集合b就可以剪掉和短路径集合a合并。因为fp-tree的项集是按照项集的频度排列的,那么从树的结构上来说,频度是从根到叶子依次递减的,如果多路径的项集在某一个路径上的项是非频繁的,并且存在一个路径的前缀完全包含另外路径的项集前缀,那么长路径的项就可以剪掉和短路径合并,这样而来短路径就包含了长路径的频繁模式。本发明提供的数据关联规则挖掘实现方法中,在对频繁模式树挖掘过程采用了剪枝策略,减少了数据挖掘的迭代次数,提高了处理效率。本发明可用于数据挖掘的关联规则提取中;适用于数据处理在商业、企业、政府部门及科学研究等领域中;也适用于其他需要提取数据的关联性的各种场合。本发明的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。附图说明图1为表一数据集建立的fp-tree结构示意图。图2为由图1建立的fp-tree进行剪枝的结构示意图。图3为本发明实施提供的数据关联规则挖掘实现方法的步骤流程图。具体实施方式下面结合附图,对本发明实施例提供的数据关联规则挖掘实现方法及系统进行详细阐述。参见图1-2,为本发明实施例提供的剪枝方法,包括如下步骤:如果项集i在某一个路径上是非频繁的,又项集i在fp-tree中存在前缀路径集合a,b并且a⊂b,那么集合b就可以剪掉和短路径集合a合并。对于多路径的项集来说,有的项集存在某个路径上的支持度小于给定的阈值,因此可以采用上述的剪枝策略进行剪枝。剪枝后如果是单路径的就可以归为单路径的情况下去考虑。改进的方法相对于原始的算法来说在挖掘的过程中采用一个优化,这样可以减少项集挖掘的递归次数。表1下面用表1事务数据集d来说明剪枝方法的过程。假如最小支持度为2,在建立图1的fp-tree后,可以得到该fp-tree对应的headertable的信息,通过用headertable中节点链的信息,查找各个项的各个节点前缀路径。从图1可以看出,i5项的一个前缀路径是a={i2,i1},i5项的另外一个前缀路径是b={i2,i1,i3},a是b的真子集,满足上面提出的剪枝方法,所以剪枝i5后的fp-tree如图2所示,这样i5就从原来的多路径变为单路径,直接进行频繁项的挖掘,减少了挖掘的递归次数。参见图3,为本发明实施例提供的剪枝频繁模式树算法步骤流程图,包括如下步骤:1)剪枝频繁模式树算法,在串行算法上表现了一定的优势。该算法总体分成四个步骤:步骤一是频繁1-项集的频率统计;步骤二是利用1-项集的频率统计结果建立一个频繁1-项集表,按照频繁1-项集表创建fp-tree;步骤三是判断fp-tree是否满足剪枝算法的要求,如果需要剪枝走剪枝策略,然后进行挖掘关联规则;步骤四汇总最后的频繁模式,即m1,m2,m3,m4。11)m1阶段是使用频繁1-项集的频率统计。当输入原始数据之后,按照频率统计的结果按照设定的最小支持度进行筛选,把筛选的结果按照项集的频度从高到低的顺序存入频繁1-项集表中。12)m2阶段是创建项头表,从上往下降序排列。13)m3阶段是创建fp-tree,扫描fp-tree树的各个路径,是否有满足图2的场景,进行剪枝处理。14)m4阶段是统计最后的频繁模式,关联规则的挖掘。综上所述,本发明提供的数据关联规则挖掘实现方法中,提出了一个剪枝方法,并提出了剪枝频繁模式树算法,减少部分分支的迭代次数。本发明对传统的fpgrowth算法进行了优化,提高了挖掘效率,本发明可用于数据挖掘的关联规则提取中;适用于数据处理在商业、企业、政府部门及科学研究等领域中;也适用于其他需要提取数据的关联性的各种场合。以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人员可以采用本发明中的剪枝频繁模式树算法进行优化,然后在商业、企业中对本发明进行应用,不脱离本发明的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1