详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(5)

详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(5)

在这一个节我们将谈一谈算法的优化。

一 构造树的优化方法:
1. 垂直数据格式中,diffset法,这些方法在.《数据挖掘 概念与技术》这本书都有提到但都有缺陷,不善于发现长模式(长模式是什么意思?谁来告诉我?)。总之可能用的比较少。
2. 在生成条件模式基的时候,有一种优化算法很实用,叫FPCFB_I,把生成条件模式基的步骤提前了,在一开始,就从树的每个叶子节点开始向上遍历父节点,并且设置相应节点的条件模式基。


二 挖掘树的优化方法:
这就涉及一个重要的概念了,叫闭频集项。
     让我们回顾一下在第一节中我们挖掘出的结果:
('chips', 'eggs') 6
('milk', 'chips') 5
('milk', 'bread') 5
('chips', 'bread') 5
('bread', 'eggs') 5
('milk', 'eggs', 'chips') 4
('milk', 'eggs') 4

('chips', 'eggs', 'bread') 4
('milk', 'chips', 'bread') 4
('milk', 'eggs', 'chips', 'bread') 3
('beer', 'bread') 3
('beer', 'eggs') 3
('milk', 'eggs', 'bread') 3

大家请看标成红色的两条关联结果,你会发现('milk', 'eggs') 4其实是('milk', 'eggs', 'chips') 4 的"子集",没有必要重复。我们把('milk', 'eggs', 'chips') 4 称为一个闭频集,具体的定义大家去看书吧。在挖掘的过程中,及时发现非闭频集,并进行剪枝是一个很重的优化手段。

《数据挖掘 概念与技术》提到了三种优化手段,分别是项合并,子项集剪枝还有项跳过。
其中可能项跳过比较难于理解,我来试着解释(网上资料实在少,我也不是做学术的,若讲的不对,望高人指正)。请看下面一张图:

在上面的FP树中,以n为条件基和以 n ,m 为条件基,生成的模式树种,a,b,c的支持度都是3
所以可以得出 结论 没有必要以n,c或n,b或n,a为条件基去挖掘,因为挖掘出的结果必定是 以n,m为条件基的挖掘结果的子集。
这里的a,b,c就相当于书里提到的局部频繁项p,他在倒数第二层和倒数第三层的头表中都有相同的支持度3,可以被剪枝。
这种剪枝方法即所谓“项跳过”。

三 分布式挖掘(map-reduce)
大坑,敬请期待



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱知菜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值