一种基于Topology模型的数据流频繁闭项集的挖掘方法

文档序号:10512271阅读:212来源:国知局
一种基于Topology模型的数据流频繁闭项集的挖掘方法
【专利摘要】本发明公开了一种基于Topology模型的数据流频繁闭项集的挖掘方法,该方法通过单遍扫描输入数据流并基于基础窗口的概念进行划分,对若干基础窗口组成一个滑动窗口处理单元,数据流更新和删除以基础窗口为单位;对当前滑动窗口利用Topology分布式并行模型处理基础窗口,每个基础窗口利用CET树结构挖掘临界结果并合并插入GCFI?tree树中,挖掘出整个滑动窗口的全局频繁闭项集合并存储至Result?List表。转而进入下一次滑动窗口的迭代过程。实验证明,本文的方法能够保证挖掘结果准确性的同时,大大提高挖掘速度和存储空间,效果显著,具有较强的实用价值。
【专利说明】
一种基于Topo I ogy模型的数据流频繁闭项集的挖掘方法
技术领域
[0001]本发明涉及数据挖掘技术中的数据流频繁模式挖掘方法,尤其涉及一种基于Topology模型的数据流频繁闭项集的挖掘方法,属于数据处理领域。
【背景技术】
[0002]随着计算机网络和信息全球化的发展,人类进入大数据时代。诸多网络入侵监控、传感器网络、通讯访问数据、股票交易记录、天气、环境或交通监测等领域中,信息量的指数式增长、大量数据流形式信息的出现,使得人们迫切需要从中获取有用的知识和信息。由此,数据流的挖掘和分析已成为一个研究热点,而频繁闭模式挖掘作为其中一个重要分支显得尤为重要。
[0003]通常挖掘数据流频繁项集的方法存在着不足之处:有可能产生组合爆炸问题,严重影响算法的时间和空间效率,同时用户难以理解和应用数量众多的频繁项集结果。频繁闭项集作为频繁项集的一个子集,能够确定挖掘频繁模式的准确支持度,并且相较于频繁项集小了几个数量级,尤其适合于存在大量强模式、长模式和要求阈值较低的实际应用,具有很好的实用意义。
[0004]为了解决数据流的无限性,人们将窗口模式应用于数据流挖掘模式中。大致可主要分为3类不同的模式:界标窗口模型(Landmark Window Model)、时间衰减窗口模型
[0005](Damped Window Model)和滑动窗口模型(Sliding Window Model)。界标窗口指特定一时间点(或数据流中一条特定的数据)到当前时间(或当前条数据)之间的数据;时间衰减窗口和界标窗口所包含的数据是相同的,但衰减窗口中的每条数据有不同的权重,距离当前时间越近,数据的权重越大;滑动窗口模型中,当前处理数据的个数固定或者当前处理数据的时间段长度是固定的。实际应用中人们往往只对数据流中的某一部分数据感兴趣,因此利用滑动窗口模式不但能提高数据处理效率,减少系统资源浪费,而且能够得到用户需求的挖掘结果。
[0006]与此同时,随着信息化和数据规模的增长,催生出了一批新的处理技术,面向不同场景的大数据处理平台相继出现:用于批处理的Hadoop平台、立足于内存计算的分布式计算系统Spark、分布式实时计算系统Storm等,这些技术的应用,解决了大数据背景下现有单机环境处理数据存在的吞吐量小、实时性差、难以达到预期效果的缺陷。总而言之,传统的数据流挖掘算法无法应对大数据环境所产生的海量实时数据处理需求,并且在处理效率和资源使用上也达不到用户预期的需求,需要对其进行改进和研究。

【发明内容】

[0007]本发明所要解决的技术问题是针对【背景技术】的不足提供了一种基于Topology模型的数据流频繁闭项集的挖掘方法。
[0008]本发明为解决上述技术问题采用以下技术方案:
[0009]—种基于Topology模型的数据流频繁闭项集的挖掘方法,具体包含如下步骤:
[0010]步骤一,输入数据流并划分为多个基础窗口 ;
[0011 ] 步骤二,若干基础窗口组成一个滑动窗口处理单元,利用Topology模型对每个滑动窗口处理单元进行操作;
[0012]步骤三,在滑动窗口处理单元中利用CET树结构并行化计算挖掘每个基础窗口的临界频繁闭集合;
[0013]步骤四,将步骤三挖掘的临界频繁闭集合插入GCF1-tree树中,进而挖掘全局频繁闭集合;
[OOM] 步骤五,将步骤四挖掘的全局频繁闭集合存储至Result-List表中。
[0015]作为本发明一种基于Topology模型的数据流频繁闭项集的挖掘方法的进一步优选方案,所述Topology模型包含依次连接的DS-Spout模块、CET-Bolt模块、Count-Bolt模块、GCF1-tree-Bolt模块、Result-Bolt模块,所述CET-Bolt模块用于并行化计算,设置其执行并行度为滑动窗口包含的基础窗口数目;所述Count-Bolt用于统计临界挖掘结果,并行度与CET-Bolt模块保持一致;所述GCF1-tree-Bolt用于汇总结果;所述Result-Bolt模块负责全局te掘结果输出。
[0016]作为本发明一种基于Topology模型的数据流频繁闭项集的挖掘方法的进一步优选方案,所述CET树结构的子节点包含非频繁节点、无希望节点、中间节点和闭合节点四种节点类型。
[0017 ]作为本发明一种基于Topology模型的数据流频繁闭项集的挖掘方法的进一步优选方案,所述CET树结构由五个域组成,所述五个域具体包含:滑动窗口中的基础窗口序列号、节点表示的项集名、项集在基础窗口中的支持度计数、用于链接该节点的子节点或父节点节点指针链表、临界频繁闭项集节点判断标识符。
[0018]作为本发明一种基于Topology模型的数据流频繁闭项集的挖掘方法的进一步优选方案,所述GCF1-tree中的节点由k+3个域组成,即:
[0019](Itemname,SumCount,fi,fi+i,fi+2,....fi+k-1,Bffn-List)
[0020]其中,Itemname为项目名;SumCount为滑动窗口的项集支持度总计数;i为第i次挖掘迭代过程中的第i个滑动窗口,f为各基础窗口的支持度计数,k为设置的基础窗口数目,BWn-List为指向BWr^最后一临界频繁闭项集的尾节点,i < η < i+k-Ι。
[0021]本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0022]1、通过引入Topology分布式并行处理模型,优化了算法的执行效率,大大减少了计算时间成本;
[0023]2、只需挖掘存储基础窗口中的临界频繁闭合项集,CET树结构在使用得出输出结果后即可释放其占用内存空间,大大加强了算法的灵活性,节省了存储空间消耗;
[0024]3、改善了传统算法频繁更新造成的难维护和数据颠簸问题,提高了稳定性。
【附图说明】
[0025]图1是本发明数据流频繁模式挖掘的实现流程图;
[0026]图2是Topology模型各处理模块的示意图;
[0027]图3是CET模式树结构的示意图;
[0028]图4是前缀压缩树结构GCF1-tree的示意图。
【具体实施方式】
[0029]下面结合附图对本发明的技术方案做进一步的详细说明:
[0030]如图1所示,一种基于Topology模型的数据流频繁闭项集的挖掘方法,具体包含如下步骤:
[0031 ]步骤一,输入数据流并划分为多个基础窗口 ;
[0032]步骤二,若干基础窗口组成一个滑动窗口处理单元,利用Topology模型对每个滑动窗口处理单元进行操作;
[0033]步骤三,在滑动窗口处理单元中利用CET树结构并行化计算挖掘每个基础窗口的临界频繁闭集合;
[0034]步骤四,将步骤三挖掘的临界频繁闭集合插入GCF1-tree树中,进而挖掘全局频繁闭集合;
[0035]步骤五,将步骤四挖掘的全局频繁闭集合存储至Result-List表中。
[0036]其中,所述Topo1gy模型包含依次连接的DS-Spout模块、CET-BoIt模块、Count-Bolt模块、GCF1-tree-Bolt模块、Result-Bolt模块,所述CET-Bolt模块用于并行化计算,设置其执行并行度为滑动窗口包含的基础窗口数目;所述Count-Bolt用于统计临界挖掘结果,并行度与CET-BoIt模块保持一致;所述GCF1-tree-Bolt用于汇总结果;所述Result-Boltl^块负责全局fe掘结果输出。
[0037]所述CET树结构的子节点包含非频繁节点、无希望节点、中间节点和闭合节点四种节点类型,所述CET树结构由五个域组成,所述五个域具体包含:滑动窗口中的基础窗口序列号、节点表示的项集名、项集在基础窗口中的支持度计数、用于链接该节点的子节点或父节点节点指针链表、临界频繁闭项集节点判断标识符。
[0038]所述GCF1-tree中的节点由k+3个域组成,即:
[0039](Itemname,SumCount,fi,fi+i,fi+2,....fi+k-1,Bffn-List)
[0040]其中,Itemname为项目名;SumCount为滑动窗口的项集支持度总计数;i为第i次挖掘迭代过程中的第i个滑动窗口,f为各基础窗口的支持度计数,k为设置的基础窗口数目,BWn-List为指向BWr^最后一临界频繁闭项集的尾节点,i < η < i+k-Ι。
[0041]本发明公开了一种基于Topology模型的数据流频繁闭项集的挖掘方法,该方法通过单遍扫描输入数据流并基于基础窗口的概念进行划分,对若干基础窗口组成一个滑动窗口处理单元,数据流更新和删除以基础窗口为单位;对当前滑动窗口利用Topology模型对每个滑动窗口处理单元进行操作,每个基础窗口利用CET树结构挖掘临界结果并合并插入GCF1-tree树中,挖掘出整个滑动窗口的全局频繁闭项集合并存储至Result-List表。转而进入下一次滑动窗口的迭代过程。实验证明,本文的方法能够保证挖掘结果准确性的同时,大大提高挖掘速度和存储空间,效果显著,具有较强的实用价值。
[0042]具体步骤如下:
[0043 ]本发明提供一种基于T opo 1gy模型的数据流频繁闭项集的改进挖掘方法,基于所述滑动窗口进行操作,数据流随着时间的推进不断滑动,以基础窗口作为迭代挖掘过程的更新处理单元,一次挖掘过程包括以下步骤:
[0044]步骤I,单遍扫描预处理事务数据流对其划分事务片段,获得基础窗口单元BW,标注基础窗口序列号BWi;
[0045]步骤2,向一个滑动窗口处理单元SW不断加入新到达的基础窗口,判断滑动窗口是否填满,所述滑动窗口内包含k个所述基础窗口,当所述基础窗口序列号i小于k时,往滑动窗口中加入新到达的基础窗口 ;当滑动窗口积满时,即新的基础窗口序列号i大于k时,先对过期窗口进行删除,再加入新到达的基础窗口;
[0046]步骤3,对当前处理滑动窗口的每个基础窗口,构建CET树结构存储数据流中的事务项集信息。首先对基础窗口中的L个事务项集先按字典顺序排序,统计生成事务项集集合Σ,依次按照Σ中的项顺序,插入到CET树结构中,计算各子节点的支持度计数,并判断出节点所属类型;
[0047]步骤4,根据每个基础窗口的CET树结构,找出对应节点类型为闭合节点,输出其节点信息作为临界频繁闭项集合信息CFI;
[0048]步骤5,根据输出的基础窗口序列号i和对应的临界频繁闭项集合信息CFI,依次插入存储到前缀压缩树结构GCF1-tree中,统计各基础窗口的项集支持度得出GCF1-tree的项集支持度总数,生成记录基础窗口信息的BWn-Li st指针链表;
[0049]步骤6,单遍遍历GCF1-tree,根据推论得出的定理,找到树中不小于用户定义的最小支持度阈值的频繁项集输出作为最终在当前滑动窗口挖掘得到的全局频繁项集集合信息,存储至Result-List表中。
[0050]所述滑动窗口定义包含k个所述基础窗口 3BSSW:〈BWi,BWi+1,...,BWi+k-1>,其中i
[0051]表示第i个操作的滑动窗口数。
[0052]所述字典序列为用户事先定义的项目集中项目的顺序排序项目A按字典顺序小于B记为A〈B;同样可定义项集间的字典序列,如AB〈ABC〈⑶E。
[0053]如图2所示,所述Topology模型包含依次连接的DS-Spout模块、CET-Bolt模块、Count-Bo 11 模块、GCF1-tree-Bo 11 模块、Resul t_Bo 11 模块,所述 CET-Bo 11 模块用于并行化计算,设置其执行并行度为滑动窗口包含的基础窗口数目;所述Count-Bolt用于统计临界挖掘结果,并行度与CET-BoIt模块保持一致;所述GCF1-tree-BoIt用于汇总结果;所述Result-Bolt模块负责全局挖掘结果输出。DS-Spout模块对到达的数据流进行事务集的分害J,按照设置的基础窗口大小将事务数据集封装为一个Tuple元组,每个Tuple有唯一的Id来保证数据的顺序性,然后分配到待处理的Bolt中;CET-Bolt模块对滑动窗口的每个基础窗口在一个Bolt中利用CET结构发现临界闭项集合,设置Bolt执行的并行度k即为滑动窗口中的基础窗口数目,当数据流在滑动窗口中流动更新时,清空最先分配到的窗口序号最小的Bolt中的树结构,并分配新到达的基础窗口到Bolt中处理;Count-Bolt模块存储基础窗口中挖掘出的临界频繁闭项集合信息并传递给下一级Bolt处理,当数据流更新时其更新过程与CET-Bolt保持一致;GCF1-tree-Bolt模块接收汇总k个Count-Bolt中存储的临界闭项集合,依次插入并构建整个滑动窗口的GCF1-tree树结构,以基础窗口为更新单位进行树结构的更新;Result-Bol t模块利用GCF1-tree挖掘滑动窗口中的全局频繁闭项集,输出最终挖掘结果并存储。
[0054]如图3所示,所述CET树结构一棵具有根节点的压缩扩展模式树,树中的子节点分为4种节点类型,非频繁(infrequent)节点、无希望(unpromising)节点、中间(intermediate)节点和闭合(closed)节点,由5个域组成:(I)BW1:滑动窗口中的基础窗口序列号;(2) Items:节点表示的项集名;(3 )Count:项集在基础窗口中的支持度计数;(4)NodeLinks:节点指针链表,用于链接该节点的子节点或父节点节点指针链表;(5)FCTag:判断节点是否为临界频繁闭项集。所述CET树结构用来挖掘每个基础窗口中的临界频繁闭项集合信息。
[0055]判断树中节点类型的步骤如下:(I)创建空的CET-tree,确定根节点root; (2)如果sup(ru, I).I D I <min_sup将ru标记为非频繁的节点,置FCTag为O; (3)否则判断调用函数leftCheck(ru) =true满足将ru标记为无希望节点,置FCTag为O ; (4)不满足则进行遍历foreach(m以及右兄弟节点nj)作并运算产生新节点r/ i,重复上述判断流程;(5)比较父节点和子节点支持度sup(ru)和supl;' i),如果两者支持度相同满足sup(rn) = =sup(n/ i)将ru标记为为中间节点,置FCTag为O; (6)否则将m标记为为闭合节点,保留为临界频繁闭节点,置FCTag为I。IeftCheck函数的作用是检查判断节点ru是否为无希望节点,返回false则需要进一步判断来确定其节点性质。
[0056]如图4所示,所述GCF1-tree树采用一种新的前缀压缩树结构GCF1-tree。前缀子树中的节点由k+3个域组成:(Itemname,SumCount,fi,fi+i,fi+2,...,fi+k-1,BWn-List),其中,Itemname为项目名;SumCount为滑动窗口的项集支持度总计数;i为第i次挖掘迭代过程中的第i个滑动窗口,f为各基础窗口的支持度计数,k为设置的基础窗口数目,BWn-List为指向BWn中最后一临界频繁闭项集的尾节点,i < η < i+k-1 list指针将BWn的所有临界频繁闭项集的尾节点链接起来。
[0057]更新GCF1-tree的过程分为2步:删除过时的基础窗口的临界频繁闭项集及相关信息和将新到来的基础窗口项集信息插入到GCF1-tree中进行重构。利用定义的BW1-List指针即可找到过时基础窗口中所有的临界频繁闭项集合,避免遍历整棵GCF1-tree。同时各节点的SumCount值分别减去尾节点的fi值作为新的SumCount值,删除SumCount为O的节点。最后再插入新基础窗口信息完成重构。
[0058]挖掘全局频繁闭项集所用定理描述如下:若项集X既是某个基础窗口BWn(iSn < i+k-1)内的临界频繁闭项集又是滑动窗口 SW中的频繁项集,则X必定是滑动窗口 SW中的全局频繁闭项集。证明,设X在基本窗口BWi内是频繁闭合项集(支持数为A),若在其他基本窗口内不出现X的超集,显然,如果X是滑动窗口中的频繁项集,则X也一定是频繁闭合项集;若在其他基本窗口内出现X的超集Y(支持数为B),则X是滑动窗口中的支持数变为A+B,大于其超集的支持数,X也是频繁闭合项集。
[0059]在IBM合成数据发生器产生的数据集T10I4D1000K上测试该方法的性能。T10I4D1000K数据集仿真真实购物数据集,数据流事务平均长度为10,数据流潜在频繁项集平均长度为4,包含的事务集数目大小为1000K。实验对比了该方法与Moment算法的时空性能。所述方法性能提升较大。
[0060]需要申明的是,本发明的内容以及【具体实施方式】意在证明本发明所提供的技术方案的实际应用,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
【主权项】
1.一种基于Topology模型的数据流频繁闭项集的挖掘方法,其特征在于:具体包含如下步骤: 步骤一,输入数据流并划分为多个基础窗口; 步骤二,若干基础窗口组成一个滑动窗口处理单元,利用Topology模型对每个滑动窗口处理单元进行操作; 步骤三,在滑动窗口处理单元中利用CET树结构并行化计算挖掘每个基础窗口的临界频繁闭集合; 步骤四,将步骤三挖掘的临界频繁闭集合插入GCF1-tree树中,进而挖掘全局频繁闭集合; 步骤五,将步骤四挖掘的全局频繁闭集合存储至Result-List表中。2.根据权利要求1所述的一种基于Topology模型的数据流频繁闭项集的挖掘方法,其特征在于:所述Topology模型包含依次连接的DS-Spout模块、CET-Bolt模块、Count-Bolt模块、GCF1-tree-Bolt模块、Result-Bolt模块,所述CET-Bolt模块用于并行化计算,设置其执行并行度为滑动窗口包含的基础窗口数目;所述Count-Bolt用于统计临界挖掘结果,并行度与CET-Bolt模块保持一致;所述GCF1-tree-Bolt用于汇总结果;所述Result-Bolt模块负责全局te掘结果输出。3.根据权利要求1所述的一种基于Topology模型的数据流频繁闭项集的挖掘方法,其特征在于:所述CET树结构的子节点包含非频繁节点、无希望节点、中间节点和闭合节点四种节点类型。4.根据权利要求1所述的一种基于Topology模型的数据流频繁闭项集的挖掘方法,其特征在于:所述CET树结构由五个域组成,所述五个域具体包含:滑动窗口中的基础窗口序列号、节点表示的项集名、项集在基础窗口中的支持度计数、用于链接该节点的子节点或父节点节点指针链表、临界频繁闭项集节点判断标识符。5.根据权利要求1所述的一种基于Topology模型的数据流频繁闭项集的挖掘方法,其特征在于:所述GCF1-tree中的节点由k+3个域组成,即:(Itemname,SumCount,fi,fi+i,fi+2,....fi+k-1 ,Bffn-List) 其中,Itemname为项目名;SumCount为滑动窗口的项集支持度总计数;i为第i次挖掘迭代过程中的第i个滑动窗口,f?为各基础窗口的支持度计数,k为设置的基础窗口数目;BWn-List为指向BWn*最后一临界频繁闭项集的尾节点,i SnS i+k-1。
【文档编号】G06F17/30GK105868293SQ201610172070
【公开日】2016年8月17日
【申请日】2016年3月24日
【发明人】王诚, 许晓
【申请人】南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1