基于Mapreduce的关联规则挖掘(2)

二、调研近年来基于Mapreduce的关联规则挖掘算法,并进行综述。

目前已提出的基于 Mapreduce计算模型的并行关联规则 挖掘算法大多是将 Apriori、FP-Growth算法及Eclat算法三种经典算法向 Mapreduce计算模型迁移,实现并行计算。其基本思路是:利 用 Mapreduce的开源实现 Hadoop作为设计和运行的平台;利 用 Hadoop的分布式文件系统 HDFS进行大数据集的分布式存 储;将算法的输入和输出改造成 Mapreduce计算模型要求的 〈key,value〉模型;将算法的运行改造成 map和 reduce两个阶段, 实现了较好的效果。

1、并行Apriori算法

2阶段并行Apriori算法较好地平衡了所需要的MapReduce任务数和中间候选项集的数量,在效率上比 1阶 段、k阶段算法都有所提升。后续很多并行的Apriori算法均使 用了 2阶段的思想,使用局部频繁项集及两个MapReduce任务来完成挖掘任务。

对2阶段Apriori算法进行性能优化 主要可以从两个方面来进行:a)使用比 Apriori算法性能更好 的算法来挖掘得到局部频繁项集及它们的支持度计数;b)使 用更好的方法来减少全局候选频繁项集的数量,减轻第二阶段 计算的负载。谢志明等人于2017年提出了Apriori_MMR 算法,引入了布尔矩阵的概念,将Apriori_Matrix算法移植到 了MapReduce计算模型上,通过将数据分片转换为布尔矩阵,既加快了第一阶段挖掘局部频繁模式的速度,也提高了第二阶段对全局候选模式进行计数的速度,从而提高整个算法的效率。

2、并行FP-growth算法

FP-growth与Apriori算法有着根本的不同,它不产生候选项集,通过将所有事务T中的频繁项压缩成特殊的树结构,然后对树结构进行遍历直接得到频繁项集。由于FP-growth算 法自身就具有的“分治”的特点,这就意味着每个计算节点可 独立计算,计算节点之间不需要相互等待,也不需要相互交换 数据,更适合于将其移植到MapReduce计算模型上进行分布式计算。

FP-growth算法在挖掘时需要递归构建频繁项的FP-tree, 需要大量的计算资源,有很多对 FP-tree数据结构进行优化的 结构,主要目的是避免递归构建 FP-tree,减少了计算量。Xun等人在 2016年提出的算法 FiDoop,将传统算法 FIUT向 MapReduce计算模型上进行了迁移。FIUT算法摈弃了 FP-growth算法需要递归构造频繁项的条件模式基树,而是将频繁 项的集合构造成 FIT-tree以提高挖掘的效率。FiDoop算法使 用三个MapReduce任务来完成并行频繁项集挖掘工作,第一 个任务计算得到所有频繁项的集合 FList;第二个任务将每一 个事务 T中的非频繁项删除,得到 h-项集;第三个任务将每一 个 h-项集分解成 2~M(M为 h的最大值)项集的集合,将相同 长度的项集发送给同一个reduce任务,构造k-FIU-tree进行挖 掘,最后合并得到所有的频繁项集。实验表明,当数据集的维 度小于等于 30时,FiDoop算法的效率要明显高于PFP算法; 但当维度增大时,FiDoop算法的效率急剧下降。为解决高维 数据集的挖掘问题,Xun等人还提出了 FiDoop-HD算法,通 过维度减少的方法来提高高维数据集的挖掘效率。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值