Frequent Pattern挖掘之五(MapReduce框架下的FP Growth算法详解下篇)(转)

接着前面的博客Frequent Pattern之四继续分析。

结果聚合

请看伪码如下:


这个mapreduce实际上完成了一个index的功能,把上一步的结果进行了一个处理,它把上一步得到的frequent pattern按照item做了索引,这要得到的最后结果就是某一个item对应着一组frequent pattern。它把这些frequent pattern放在一个堆里,便于按频率的高低顺序进行访问。伪码中的if-else其实就是把frequent pattern插入堆,如果堆满了,和频率最小的那个节点(也就是根节点)比较一下,如果新节点的值大的话,删掉根节点,插入新节点。这样做的目的是始终保持堆里存储着某一item频率最高的top K个frequent pattern。

这就是map reduce框架下FP Growth算法的具体实现。在apache的开源项目mathout中它已经得到了实现,大家可以直接使用。

最后再谈一点个人意见,这个FP Growth Mapreduce实现在对F_list进行分组时可以再考虑一些负载均衡的策略,因为不采用任何策略的话,有可能会导致频率高的item都在一组,那么发射到这一组所对应机器上transaction就会得特别多,处理压力也会特别大,而别的机器上任务却过于轻松,这对整个系统效率的提升是很不利的。如果加入一定的策略考量,把频率高的item均匀的分配到各台机器上,将会使效率更加提高。

[1]PFP: ParallelFP-Growth for Query Recommendation

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值