CN107451290B - 一种并行化的数据流频繁项集挖掘方法 - Google Patents

一种并行化的数据流频繁项集挖掘方法 Download PDF

Info

Publication number
CN107451290B
CN107451290B CN201710696637.2A CN201710696637A CN107451290B CN 107451290 B CN107451290 B CN 107451290B CN 201710696637 A CN201710696637 A CN 201710696637A CN 107451290 B CN107451290 B CN 107451290B
Authority
CN
China
Prior art keywords
node
stream structure
mining
key2
stream
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
Application number
CN201710696637.2A
Other languages
English (en)
Other versions
CN107451290A (zh
Inventor
段贵多
罗光春
田玲
韩宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201710696637.2A priority Critical patent/CN107451290B/zh
Publication of CN107451290A publication Critical patent/CN107451290A/zh
Application granted granted Critical
Publication of CN107451290B publication Critical patent/CN107451290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种并行化的数据流频繁项集挖掘方法,旨在解决现有技术数据挖掘吞吐量小的问题;本申请包括初始化,预挖掘,FP‑Stream结构维护,频繁项集生成四部分,算法收集一小段时间内到达的事务,构成一个事务集,第一个事务集被特殊处理,它被用于初始化,以建立f_list和FP‑Stream结构,每个事务集触发一轮微批处理。每轮微批处理先进行预挖掘,再进行FP‑Stream结构维护,当计算请求到达时,算法利用FP‑Growth算法在指定的时间窗口内挖掘FP‑Stream结构得到频繁项集;本申请采用的算法增加了系统的整体吞吐量,极大程度提高了数据挖掘的处理速度;本申请适用于数据挖掘相关方面。

Description

一种并行化的数据流频繁项集挖掘方法
技术领域
本发明涉及数据挖掘领域,尤其涉及一种并行化的数据流频繁项集挖掘方法。
背景技术
频繁项集挖掘也叫关联规则挖掘,目标是从大量事务中找出有价值项目间隐含的关系。所谓频繁项是指在事务集合中,出现频率较高的项目;频繁项集是指在事务集合中,多次同时出现的项目所组成的集合。极大频繁项集被定义为元素个数最多的频繁项集,它的所有超集都是非频繁项集。频繁项集挖掘的经典应用案例是利用频繁项集挖掘技术发现了啤酒销售和尿布销售之间的隐含关系。
传统数据流上的频繁项集挖掘算法是基于单机环境,其吞吐量受单机环境的限制。然而,不断增长的海量数据已经远远超过了单机的处理能力,单机频繁项集挖掘技术仅适用于少量数据的环境。
大数据时代,分布式计算是解决海量数据难题的重要手段。并行化的算法能够有效提升系统的整体吞吐量,所以在分布式环境下并行化地挖掘数据流中的频繁项集是极其重要的。鉴于对并行化的数据流频繁项集挖掘算法的需求,本发明提出一种基于微批处理思想的并行化数据流频繁项集挖掘方法。
发明内容
本发明的目的在于:针对现有技术数据挖掘吞吐量小的问题,本发明提供一种并行化吞吐量大的数据流频繁项集挖掘方法。
本发明采用的技术方案如下:
本申请提供了一种并行化的数据流频繁项集挖掘方法,包括以下步骤:
步骤1:初始化,首个事务集到达时,进行算法初始化工作。
步骤1.1:收集单位时间的所有事务,形成事务集,依次记为{B1…Bi},并分散存储至各个节点上,第一个事务集为B1,统计所有项目在B1中的频率,然后根据频率降序排列得到f_list;
步骤1.2:用FP-growth算法,支持度阈值设为∈,挖掘事务集B1,并用挖掘事务集B1得到的项目集建立FP-Stream结构并储存至所述Zookeeper集群;
步骤2:单轮微批处理
当除了B1事务集的其他一个事务集到达时,进行一轮微批处理,每轮微批处理包含预挖掘部分与FP-Stream结构维护两部分,两部分依次分布式执行;
步骤2.1:并行执行预挖掘,当一个事务集(首个事务集除外)到达时,进行一轮微批处理。每轮微批处理包含预挖掘与FP-Stream结构维护维护两部分,这两部分依次分布式执行;
步骤2.1.1:统计分散在各个节点的Bi(i>1)中事务出现的对应频率,得到集合T,集合T中记录的形式为<事务,频率>;
步骤2.1.2:以f_list为依据,对T中事务的项目进行排序,得到新的集合W;
步骤2.1.3:再次统计集合T中事务对应的频率,得到新的集合R,求R中每条事务的元素个数大于1的项目集以及项目集对应的频率,组成集合S,集合S的记录形式为<项目集,频率>;
步骤2.1.4:汇总步骤2.1.3中每一个项目集出现的频率;
具体地,开始时,事务集Bi分散在各个节点上;
执行第一步时,各节点读取本地的事务,将各事务发送到各节点,相同的事务会发送到同一节点,各节点每收到一条事务,就将其对应的计数增加1,这一步是一次典型的MapReduce过程;
执行第二步时,各节点按条读取本地的<事务,频率>记录,对于每一条记录,以f_list作为标准,对事务中各项目进行排序;
第三步与第一步相似,也是统计事务出现的频率,整个过程也是一次典型的MapReduce过程,与第一步有所不同的是,各节点收到一条记录后,对应的计数增量是频率字段的值。执行第四步时,各节点按条读取本地的记录,然后求事务元素个数大于1的子集,然后构成<项目集,频率>的键值对。最后一步是汇总各项目集的频率统计值,它与上一步构成了一次MapReduce过程,同一项目集的键值对发送到同一节点,各节点按照累加的规则,统计每个项目集的频率;
步骤2.2:FP-Stream结构维护,预挖掘执行完毕后,下一步在各个节点上分布式进行FP-Stream结构的维护。
步骤2.2.1:向各节点分发数据
步骤2中预挖掘的输出集合中每一条记录转化为<key1,<key2,value>>的形式向集群各个节点发送,key1相同的记录被发送到相同的节点,key1是项目集key2的首项,value是项目集的频率;
步骤2.2.2:建立集合E
各节点建立一个空的集合E,用于记录被删除的项目集;
步骤2.2.3:获取部分FP-Stream结构
依次处理各节点收到的每条记录,若其key1字段是第一次出现,则从Zookeeper将FP-Stream结构中根节点的子树中以key1为根节点的子树下载到本地;
步骤2.2.4:优化插入过程
若E中存在任意一项前缀,则丢弃这条记录;
若E中不存在符合的记录,将其插入FP-Stream结构:若FP-Stream中存在key2,则将value插入对应的倾斜时间窗口表,然后进行tail pruning;若key2的倾斜时间窗口表为空,则删除key2节点,并将key2加入E;若FP-Stream结构中不存在key2,且支持度小于∈,则将key2加入E;若FP-Stream结构中不存在key2,且key2的支持度不小于∈,将key2插入,并新建表项;
步骤2.2.5:遍历本地FP-Stream结构并上传
当节点收到的全部记录都处理完毕,从根节点出发,深度优先遍历本地存储的FP-Stream结构。对于碰到的每个节点,若在本轮处理过程中没有更新过,则加入一个0项,同时进行shift back,然后进行tail pruning;
遍历过程中,如果碰到叶子节点且表为空,则删除该节点,然后遍历其兄弟节点;
若节点的孩子都被删除,节点变为叶节点,重复上述过程;
遍历完成后,将整个FP-Stream结构上传至Zookeeper集群中;
步骤2.2.6:遍历FP-Stream结构中未被访问的节点
当所有节点的任务执行完毕后,任意选择一个节点,下载整个FP-Stream结构,并对其进行遍历:对于根节点的每棵子树,在本轮处理过程中,若其被访问过,放弃对其遍历;若没有被访问过,对其进行深度优先遍历,过程如步骤3.5所示,遍历完成后,将整个FP-Stream结构更新到Zookeeper中;
进一步地,所述步骤FP-Stream结构采用的是倾斜时间窗口模型,窗口大小呈2的倍数增长,设当前时刻为N,则窗口的大小模式为:(N,N);(N-1,N-1),[(N-2,N-2)];(N-3,N-4);……,依次编号为level 0~level m级的窗口,每级窗口包含一个中间窗口和一个主窗口,两个大小相同,如(N-1,N-1)与(N-2,N-2),在FP-Stream结构中节点的倾斜时间窗口表上插入记录均要进行后移操作(shift back);
后移操作时,前一级的两个窗口合并向后加入后一级的主窗口,若后一级的两个窗口均为空,则直接加入后一级的主窗口;若后一级的中间窗口为空,则前一级的窗口直接作为后一级的主窗口,原来的主窗口加入本级的中间窗口;若后一级的两个窗口均不为空,则前一级的窗口加入后一级的主窗口,后一级的两个窗口合并后继续后移。
进一步地,所述步骤2.2.5中的tail pruning具体步骤为:设有n个时间窗口,t0表示当前时间窗口,tn表示最老的时间窗口,tail pruning就是找出一个m,0≤m≤n,对[m,n]内的时间窗口,直接丢弃。m满足的条件如公式(1)所示:
Figure BDA0001379306360000041
fI(ti)表示在窗口ti中项目集I的频率,ωi表示时间窗口ti的宽度,即时间窗口ti中包含的事务数量,σ和ò是两个支持度阈值,σ≥ò,ò也是tail pruning(数据修剪)后,支持度最大的误差。
步骤3:频繁项集生成
在指定的时间窗口内,用FP-Growth算法挖掘得到频繁项集。
FP-Stream结构保存了频繁项集信息。当有挖掘请求时,可以通过挖掘FP-Stream结构得到频繁项集。挖掘FP-Stream结构使用的是FP-Growth算法。先在FP-Stream结构上建立Header Table,然后按照指定的时间范围,用FP-Growth算法挖掘即可得到频繁项集。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.预挖掘部分,通过在各节点上求事务的元素个数大于1的所有子集再汇总的方式,实现了分布式预挖掘的功能,同时本申请中按照根节点的子树来拆分,然后分别在各个节点更新一部分子树,最后再汇总处理,克服了并行化执行过程中的树形结构的拆分与组合的技术难题;
2.本发明通过在分布式下实现并行化数据挖掘,增加了系统的整体吞吐量,极大程度提高了数据挖掘的处理速度;
3.优化插入过程,删除支持度低项目集,并同时删除与此相对于的父集,以最大程度上的减少数据挖掘过程的非必要存储空间占用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。
图1是本发明的挖掘方法的整体框架图;
图2是本发明所使用的FP-Stream结构图;
图3是本发明所使用的FP-Stream结构添加Header Table后的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1、图2、图3对本发明作详细说明。
实施例一
本发明所述方案并结合附图具体实现在下面给出,提供了一种并行化吞吐量大的数据流频繁项集挖掘方法:
算法的参数包括支持度阈值σ和ò,σ≥ò。
图1是本发明的算法整体框架图,具体而言包括:
步骤101:统计获取f_list
初始化时,统计第一个事务集B1中所有项目出现的频率,降序排列得到f_list;
步骤102:FP-Growth算法挖掘首个事务集
以首个事务集B1做为FP-Growth算法的输入,支持度阈值为ò,进行挖掘,挖掘得到的所有项目集是下一步的输入;
步骤103:建立FP-Stream结构
上一步挖掘得到的项目集按照图2所示的结构在Zookeeper中建立FP-Stream结构,根节点为空,不代表任何项目,没有倾斜时间窗口表,由于Zookeeper是树形存储结构,所以FP-Stream中每个节点存储为Zookeeper中一个Znode,每个Znode中存储项目名和倾斜时间窗口表;
步骤101~103构成了算法的初始化过程,初始化只用于处理数据流开始时的第一个事务集;
整个算法若没有人工干预会不停的执行下去。第一个事务集到达时(就是事务集中所有事务都到达)进行初始化,此后不会在进行初始化工作。
当一个普通事务集到达时,先进行预先挖掘,在进行FP-Stream结构维护。每个事务集到达后都进行这么一轮处理;但是只有用户请求进行频繁项集挖掘时,才会继续执行下面的步骤,否则将不会执行。
步骤201:统计事务频率
这一步是一次典型的MapReduce过程,最后输出由<事务,频率>二元组所构成的集合;
步骤202:根据f_list排序
本步骤,将上一步输出的<事务,频率>二元组中的事务字段提取出来后,根据f_list,对事务包含的项目进行排序,这在一个Map函数中实现,本步输出的也是<事务,频率>构成的二元组;
步骤203:再次统计事务频率
本步与上一步构成了一次完整的MapReduce过程,上一步对应Map函数,本步对应Reduce函数,上一步输出的二元组作为本步的输入,事务的频率信息在各节点上汇总,Reduce利用累加,统计事务的频率;
步骤204:求事务子集
本步读取上一步输出的二元组,提取出事物,求事务元素个数大于1的子集,子集的元素按照f_list排列,最后输出<项目集,频率>组成的二元组。本步是一个map函数;
步骤205:汇总项目集频率
本步的实现对应一个Reduce函数,上一步输出的二元组,以项目集为key,进行shuffle过程。各节点的Reduce函数按照项目集进行累加操作,以汇总项目集的频率信息,本步与上一步一起构成了一次MapReduce过程;
步骤201~205构成了算法的预挖掘过程
数据流中除首个事务集外,其他事务集都先进行预挖掘,然后用预挖掘的输出维护FP-Stream结构;
数据流中的事务集,除第一个外,每个事务集到达时,触发一轮微批处理。单轮微批处理先进行预挖掘,然后进行FP-Stream结构的维护,预挖掘模块与FP-Stream结构维护模块构成了算法的在线维护部分。
步骤301:向各节点分发数据
本步读取预挖掘模块的输出,对于每一条记录,提取出项目集字段,然后从项目集中提取出其首项,构成<key1,<key2,value>>形式的两层二元组结构,其中key1是项目集key2的首项,value是项目集key2的频率,得到二层二元组结构后,以key1为依据,将数据发送到各节点,key1相同的记录,被发送到同一节点,且每个key1的取值,会且只会出现在一个节点上;
步骤302:建立集合E
集合E用于记录被删除的项目集,初始时集合E为空;
步骤303:获取部分FP-Stream结构
当301步所述的key1第一次出现在某个节点时,该节点需要从Zookeeper将FP-Stream结构中根节点的子树中以key1为根节点的子树下载到本地,待数据处理完毕后再上传到Zookeeper中,由于一个特定的key1值只会出现在一个节点,所以这一步各节点间没有冲突;
步骤304:向本地FP-Stream结构中插入项目集
在插入过程中需要进行剪枝。剪枝的基础是两个结论:首先,一个项目集的父集的支持度一定不大于该项目集的支持度;进而可以得出,当一个项目集因支持度小于阈值被删除后,其父集也应该被删除;这就是集合E发挥作用的理论基础。其次,进行tail pruning后,项目集的支持度误差不大于ò;所以,在插入过程中,需要根据公式(1)进行剪枝。对于每一条记录<key1,<key2,value>>,这一步的具体过程为:
(1)取出key2的所有前缀;
(2)若E中存在任意一项前缀,则丢弃这条记录;
(3)若E中不存在符合的记录,将其插入FP-Stream结构:
若FP-Stream中存在key2,则将value插入对应的倾斜时间窗口表,然后进行tailpruning,若key2的倾斜时间窗口表为空,则删除key2节点,并将key2加入E;
若FP-Stream结构中不存在key2,且支持度小于∈,则将key2加入E;
若FP-Stream结构中不存在key2,且key2的支持度不小于∈,将key2插入,并新建表项。
在上述过程中,当value插入倾斜时间窗口表时,都要进行shift back操作。
步骤305:遍历本地FP-Stream结构
这一步的主要任务是访问本地FP-Stream结构中没有被访问过的节点。遍历使用深度优先策略,对于碰到的每个节点,若在本轮处理过程中没有更新过,则加入一个0项,同时进行shift back(后移),然后进行tail pruning;遍历过程中,如果碰到叶子节点且倾斜时间窗口表为空,则删除该节点,然后遍历其兄弟节点;若节点的孩子都被删除,节点变为叶节点,重复上述过程;
步骤306:上传本地FP-Stream结构
一个节点数据处理完毕后,将其本地保存的FP-Stream结构上传到Zookeeper中,并覆盖老的数据;
步骤307:遍历FP-Stream结构中未被访问的节点,完成后上传FP-Stream结构
当所有节点的数据处理完毕后,需要遍历整个FP-Steam结构,以处理未被访问过的FP-Stream结构,单机执行过程,任意选取一个节点,下载全部FP-Steam结构,对于根节点的所有子树,在本轮处理过程中,若其被访问过,放弃对其遍历,若没有被访问过,对其进行深度优先遍历,过程如305步所示。遍历完成后,将整个FP-Stream结构上传到Zookeeper中;
步骤301~307构成了算法的FP-Stream结构维护模块
该模块以预挖掘模块的输出为输入,在各节点上分布式维护FP-Stream结构。预挖掘模块与FP-Stream结构维护模块构成了算法的在线维护部分。
步骤401:为FP-Stream结构添加Header Table
在遍历FP-Stream的树形结构时,除根节点外,每碰到一个节点,就将其插入到HeaderTable对应项保存的链表的末尾,最后形成的结构如图3所示。
步骤402:FP-Growth算法挖掘FP-Stream结构
在指定了时间范围后,通过倾斜时间窗口表存储的数据很容易求出这个时间范围内该项目集的支持度。设置支持度阈值后即可用标准的FP-Growth算法挖掘FP-Stream结构生成频繁项集;
步骤401和步骤402构成了算法的频繁项集生成模块。该模块按需计算,有计算请求时才用FP-Growth算法挖掘FP-Stream结构生成结果。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (5)

1.一种并行化的数据流频繁项集挖掘方法,其特征在于,包括以下步骤:
步骤1:初始化
首个事务集到达时,进行初始化步骤;
步骤1.1:收集单位时间的所有事务,形成事务集,依次记为{B1…Bi},并分散存储至各个节点上,第一个事务集为B1,统计所有项目在B1中的频率,然后根据频率降序排列得到f_list;
步骤1.2:用FP-growth算法,支持度阈值设为∈,挖掘事务集B1,并用挖掘事务集B1得到的项目集建立FP-Stream结构并储存至Zookeeper集群;
步骤2:单轮微批处理
当除了B1事务集的其他一个事务集到达时,进行一轮微批处理,每轮微批处理包含预挖掘部分与FP-Stream结构维护两部分,两部分依次分布式执行;
步骤2.1:并行执行预挖掘
并行执行预挖掘是产生维护FP-Stream结构所需的项目集;
步骤2.1.1:统计分散在各个节点的Bi(i>1)中事务出现的对应频率,得到集合T;
步骤2.1.2:以f_list为依据,对T中事务的项目进行排序,得到新的集合W;
步骤2.1.3:再次统计集合T中事务对应的频率,得到新的集合R,求R中每条事务的元素个数大于1的项目集以及项目集对应的频率,组成集合S;
步骤2.1.4:汇总步骤2.1.3中每一个项目集出现的频率;
步骤2.2:FP-Stream结构维护
预挖掘执行完毕后,将在各个节点上分布式进行FP-Stream结构维护;
步骤2.2.1:向各节点分发数据
步骤2.1中预挖掘的输出集合中每一条记录转化为<key1,<key2,value>>的形式向集群各个节点发送,key1相同的记录被发送到相同的节点,key1表示项目集key2的首项,key2表示项目集,value表示项目集的频率;
步骤2.2.2:建立集合E
各节点建立一个空的集合E,用于记录被删除的项目集;
步骤2.2.3:获取部分FP-Stream结构
依次处理各节点收到的每条记录,若其key1字段是第一次出现,则从Zookeeper将FP-Stream结构中根节点的子树中以key1为根节点的子树下载到本地;
步骤2.2.4:优化插入过程
提取出key2,用key2的所有前缀,查找E;
步骤2.2.5:遍历本地FP-Stream结构并上传至Zookeeper中
当节点收到的全部记录都处理完毕,从根节点出发,深度优先遍历本地存储的FP-Stream结构,遍历完成后,将整个FP-Stream结构上传至Zookeeper集群中;
步骤2.2.6:遍历FP-Stream结构中未被访问的节点并更新至Zookeeper中;
步骤3:频繁项集生成
在指定的时间窗口内,用FP-Growth算法挖掘得到频繁项集。
2.如权利要求1所述的一种并行化的数据流频繁项集挖掘方法,其特征在于,所述集合T中记录的形式为<事务,频率>;所述集合S的记录形式为<项目集,频率>。
3.如权利要求1所述的一种并行化的数据流频繁项集挖掘方法,其特征在于,所述步骤2.2.4,优化插入过程的具体为:
提取出key2,用key2的所有前缀,查找E;
若E中存在任意一项前缀,则丢弃这条记录;
若E中不存在符合的记录,将其插入FP-Stream结构:若FP-Stream中存在key2,则将value插入对应的倾斜时间窗口表,然后进行tail pruning;
若key2的倾斜时间窗口表为空,则删除key2节点,并将key2加入E;若FP-Stream结构中不存在key2,且支持度小于∈,则将key2加入E;
若FP-Stream结构中不存在key2,且key2的支持度不小于∈,将key2插入,并新建表项。
4.如权利要求1所述的一种并行化的数据流频繁项集挖掘方法,其特征在于,所述步骤2.2.5,遍历本地FP-Stream结构并上传至Zookeeper中具体为:
对于碰到的每个节点,若在本轮处理过程中没有更新过,则加入一个0项,同时进行shift back,然后进行tail pruning;
遍历过程中,如果碰到叶子节点且表为空,则删除该节点,然后遍历其兄弟节点;
若节点的孩子都被删除,节点变为叶节点,重复上述过程;
遍历完成后,将整个FP-Stream结构上传至Zookeeper集群中。
5.如权利要求4所述的一种并行化的数据流频繁项集挖掘方法,其特征在于,所述步骤2.2.6,遍历FP-Stream结构中未被访问的节点并更新至Zookeeper中具体为:
当所有节点的任务执行完毕后,任意选择一个节点,下载整个FP-Stream结构,并对
其进行遍历:对于根节点的每棵子树,在本轮处理过程中,若其被访问过,放弃对其遍历;
若没有被访问过,对其进行深度优先遍历;遍历过程如步骤2.2.5所示,遍历完成后,将整个FP-Stream结构更新到Zookeeper中。
CN201710696637.2A 2017-08-15 2017-08-15 一种并行化的数据流频繁项集挖掘方法 Active CN107451290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710696637.2A CN107451290B (zh) 2017-08-15 2017-08-15 一种并行化的数据流频繁项集挖掘方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710696637.2A CN107451290B (zh) 2017-08-15 2017-08-15 一种并行化的数据流频繁项集挖掘方法

Publications (2)

Publication Number Publication Date
CN107451290A CN107451290A (zh) 2017-12-08
CN107451290B true CN107451290B (zh) 2020-03-10

Family

ID=60491131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710696637.2A Active CN107451290B (zh) 2017-08-15 2017-08-15 一种并行化的数据流频繁项集挖掘方法

Country Status (1)

Country Link
CN (1) CN107451290B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109447251B (zh) * 2018-09-28 2021-09-24 电子科技大学 一种具有新型内存模块的神经图灵机模型及其设置方法
CN110489652B (zh) * 2019-08-23 2022-06-03 重庆邮电大学 基于用户行为检测的新闻推荐方法、系统及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020256A (zh) * 2012-12-21 2013-04-03 电子科技大学 一种大规模数据的关联规则挖掘方法
CN103136244A (zh) * 2011-11-29 2013-06-05 中国电信股份有限公司 基于云计算平台的并行数据挖掘方法及系统
CN106126341A (zh) * 2016-06-23 2016-11-16 成都信息工程大学 应用于大数据的多计算框架处理系统及关联规则挖掘方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136244A (zh) * 2011-11-29 2013-06-05 中国电信股份有限公司 基于云计算平台的并行数据挖掘方法及系统
CN103020256A (zh) * 2012-12-21 2013-04-03 电子科技大学 一种大规模数据的关联规则挖掘方法
CN106126341A (zh) * 2016-06-23 2016-11-16 成都信息工程大学 应用于大数据的多计算框架处理系统及关联规则挖掘方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Mining frequent patterns in data streams at multiple time granularities;Giannella C等;《data mining next generation challenges & future directions》;20031231;全文 *
Pfp:parallel fp-growth for query recommendation;Li H等;《Proceedings of the 2008 ACM conference on recommender systems》;20081231;全文 *
基于hadoop的改进的并行FP-Growth算法;周诗慧;《万方数据库》;20131029;全文 *

Also Published As

Publication number Publication date
CN107451290A (zh) 2017-12-08

Similar Documents

Publication Publication Date Title
CN110383261B (zh) 用于多流存储装置的流选择
KR102290835B1 (ko) 유지관리 동작들을 위한 병합 트리 수정들
TWI682274B (zh) 鍵值儲存樹
KR102289332B1 (ko) 병합 트리 가비지 메트릭스
Durand et al. Loglog counting of large cardinalities
Flajolet et al. Hyperloglog: the analysis of a near-optimal cardinality estimation algorithm
EP2924594B1 (en) Data encoding and corresponding data structure in a column-store database
Elkin Streaming and fully dynamic centralized algorithms for constructing and maintaining sparse spanners
EP3400543A1 (en) Outlier detection for streaming data
KR102160318B1 (ko) 중개 시스템에서 데이터 집계
CN105608135B (zh) 一种基于Apriori算法的数据挖掘方法及系统
CN107451290B (zh) 一种并行化的数据流频繁项集挖掘方法
CN106815260B (zh) 一种索引建立方法及设备
CN110719106B (zh) 一种基于节点分类排序的社交网络图压缩方法及系统
WO2020082597A1 (zh) 一种b+树节点的批量插入和删除方法及装置
CN112667860A (zh) 一种子图匹配方法、装置、设备及存储介质
WO2020211466A1 (zh) 一种非冗余基因集聚类方法、系统及电子设备
Tang et al. A Novel Strategy for Mining Frequent Closed Itemsets in Data Streams.
US20150032732A1 (en) Classification engine for data packet classification
CN112182031B (zh) 数据查询方法及装置、存储介质、电子装置
CN113761390A (zh) 一种用于属性亲密度的分析方法和系统
Totad et al. Batch processing for incremental FP-tree construction
CN112269726A (zh) 一种数据处理方法及装置
CN114185884A (zh) 基于列存数据的流式数据处理方法及系统
CN113902003A (zh) 一种基于MITree的多维时间序列在线模体发现方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant