【机器学习算法】关联规则2 FPgrowth法算法

目录

案例

FPgrows如何去运作

FP-tree


我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主

目前进度:第四部分【机器学习算法】

上次我们讲了关联规则里最有名的Apriori的算法,其中最重要的是它有两个瓶颈,第一个是它在产生候选项集的量可能会非常大,这个会占用我们的数据库,还有就是我们会多次扫描数据库,如果我们要产生长度为n关联规则,我们至少要扫描N+1次的数据库。多一次是因为那一次可能不会产生任何的频繁项集。

这样会很浪费时间。

于是就有学者提出了FPGrowth的方法,好处就是可以并行的处理频繁项目的产生。

案例

上面这个是我们用Apriori的方法得出的结果。

如果我们使用的是FPgrowth的方法,就会产生下面的情况

我能对应的去看的话,它的结果其实和Apriori的方法产生的结果是相同的。但是他是分别产生I5,I3,I4,I1。它没有说那个要先执行,哪些要后执行,可以并行运算,而且它不需要扫描数据库多次,只要扫描数据库2次

FPgrows如何去运作

首先它会把交易数据库建成一个Fp-tree,之后就不再扫描交易数据库,然后我们会对这个FP-tree进行处理,去找它的子树,

我们就可以通过这个寻找到trimming sub DB

举个案例:

比如这个,第一个表格的第一行记录是1,5,7,9,12代表的是这笔数据它购买了1,5,7,9,12六项产品的交易。一次类推

假设我们制定最小支持度为百分之40,那最小支持度的最小支持的次数也就是2.8。也就是最少7笔数据出现3次,才是我们的频繁项目, 这里面我们就发现,1,2,5,7,9,10,12.

然后我们对它们按出现的次数进行排序。

由大到小的排序结果如上,我们建立这个FPtree的时候,我们需要建立一个比较精简的FPtree,

我们要将原始的数据库按照这个顺序排序,然后把已经没有出现的商品,进行排除。

右下角就是我们表格

第一次扫描得到每个商品的次数,第二次扫描得到FP-tree

我们按照左上角的原始数据表格,把每一笔交易记录,读进数据,虚线代表它通过最小支持度了。这里读的就是第一笔交易记录,其中交易过的每个商品交易记录为1

第二笔就得记入为上图情况,如果在这个位置有,就直接重复次数加1,如果没有的话,就新串一个子叶,比如5在第4个位置不存在,就新串一个,虚线代表相同数字横向连接

第4笔数据,因为2作为第一笔数据,是新的情况,就串一个新子树

第6笔数据也会出现新子树

FP-tree

这个就是我们建立的FP-tree,如果一个数字对应的次数越多,说明它越容易与其他子树共用分支

这个树会比较精简,比较不占用内存。交易数据库就可以扔掉了,所有的信息都在这个FP-tree

现在我们就要开始产生我们的频繁项目集。

For 10

我们就会列出:

这个就是产品10的3个序列。因为我们最后都是10,就可以不用管。得到右上角的表格。对应的次数都是一次。

我们在生成其中每个水平出现的次数表格右下角:

7出现2次,9出现2次,1出现2次。因为我们最小次数需要出现3次,所以就没有任何频繁项目集的出现。

For8

同样的,我们产生8的部分的子树图

我们计算每个商品出现的次数,就会发现,7,9,的次数超过3,那么我们就可以建立程度为2的频繁项目

并且我们还可以再画一个fptree,得到长度为3的频繁项目。

For 5

一样的,按步骤我们得到每个商品的次数,然后得到新子树,然后两两搭配。

For1

所以1没有频繁项目产生。

这就是FPgrowth,他可以根据不同的产品产生频繁项目,而且可以并行产生频繁项目,速度快,而且只要扫描数据库2次。是因为它产生了一个FP-tree储存起来,就可以不用多次扫描了。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴天qt01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值