Apriori算法与PFPGrowth算法推演比较

摘要:
Apriori算法是机器学习的一个基础算法,用于找出频繁项集,也即为购物篮算法。但是Apriori算法要多次遍历全量数据,效率较低,FP-Growth算法是对Apriori算法的改进,而PFP-Growth算法是对FP-Growth进行了Map-Reduce化,使FP-Growth能够处理海量的数据。PFP-Growth算法论文见http://infolab.stanford.edu/~echang/recsys08-69.pdf,该算法的说明如下图为验证PFP-Growth算法,使用《数据挖掘:概念与技术》书中例6.1的购物篮数据,进行手工推演,并检验与Apriori算法能否得到同样的结果。

Apriori算法是机器学习的一个基础算法,用于找出频繁项集,也即为购物篮算法。但是Apriori算法要多次遍历全量数据,效率较低,FP-Growth算法是对Apriori算法的改进(见韩家炜《数据挖掘:概念与技术》),而PFP-Growth算法是对FP-Growth进行了Map-Reduce化,使FP-Growth能够处理海量的数据。

PFP-Growth算法论文见http://infolab.stanford.edu/~echang/recsys08-69.pdf,该算法的说明如下图

Apriori算法与PFPGrowth算法推演比较第1张

为验证PFP-Growth算法,使用《数据挖掘:概念与技术》书中例6.1的购物篮数据,进行手工推演,并检验与Apriori算法能否得到同样的结果。

购物篮数据如下,需找出所有的频繁项集(支持度为2):

---------------------------------------

---购物篮- 项目

T100 I1,I2,I5

T200 I2,I4

T300 I2,I3

T400 I1,I2,I4

T500 I1,I3

T600 I2,I3

T700 I1,I3

T800 I1,I2,I3,I5

T900 I1,I2,I3


步骤1:计算所有购物篮中每个项目出现的次数,并删除出现次数小于支持度的项目(本例中支持度为2)

I2:7, I1:6, I3:6, I4:2, I5:2。

步骤2:按照项目出现的总次数对每个购物篮中的项目排序(map)

---------------------------------------

---购物篮- 根据项目 生成Key-value对,

出现总次数排序 即每个项目的上级项路径

T100 I2,I1,I5 I5:I2 I1 I1:I2

T200 I2,I4 I2:I4

T300 I2,I3 I2:I3

T400 I2,I1,I4 I4:I2I1 I1:I2

T500 I1,I3 I1:I3

T600 I2,I3 I2:I3

T700 I1,I3 I1:I3

T800 I2,I1,I3,I5 I5:I2I1 I3 I3:I2,I1 I1:I2

T900 I2,I1,I3 I3:I2,I1 I1:I2

步骤3:按项目进行汇总,得到每个项目的所有路径(reduce)

I1 : {I2/I2/I2/I2} ---> {(I2:4)}|I1

I2 : { } ---> { }|I2

I3 : {I2/I1/I2/I2 / I2I1 /I2I1} ---> {( I2:4, I1:4, I2I1:2 )}|I3

I4 : { I2/ I2I1 } ---> {( I2:2 )}|I4

I5 : { I2I1/ I2I1I3 } ---> {( I2:2, I1:2, I2I1:2 )}|I5

步骤4:得到频繁项集

--集合----------支持度计数--

(I2, I1) 4

(I2, I3) 4

(I1, I3) 4

(I2, I1, I3) 2

(I2, I4) 2

(I2, I5) 2

(I1, I5) 2

(I2,I1, I5) 2

结论:Apriori算法与PFP算法的结果一致。



来自为知笔记(Wiz)

免责声明:文章转载自《Apriori算法与PFPGrowth算法推演比较》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PYMOTW: CONFIGPARSERLCA(最近公共祖先)离线算法Tarjan+并查集下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Apriori 算法-如何进行关联规则挖掘

公号:码农充电站pro主页:https://codeshellme.github.io 在数据分析领域有一个经典的故事,叫做“尿布与啤酒”。 据说,在美国西部的一家连锁超市发现,很多男人会在周四购买尿布和啤酒。这样超市就可以将尿布与啤酒放在一起卖,便可以增加销售量。 “尿布与啤酒”这个案例就属于数据分析中的关联分析,也就是分析数据集中的内在隐含关系。 关联...

数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法

转自:http://www.cnblogs.com/fengfenggirl/p/associate_apriori.html 数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法我计划整理数据挖掘的基本概念和算法,包括关联规则挖掘、分类、聚类的常用算法,敬请期待。今天讲的是关联规则挖掘的最基本的知识。 关联规则挖掘在电商、零售、大气物理、生物...