关联规则——FP-growth算法

FP-growth算法

FP-growth是频繁模式的缩写,直接上例子:

下表是所示数据的清单,第一列为购买的id,第二列为物品的项目,1号购物id,它购买的商品是I1、I2、I5

TidItems
1I1, I2, I5
2I2, I4
3I2, I3
4I1, I2, I4
5I1, I3
6I2, I3
7I1, I3
8I1, I2, I3, I5
9I1, I2, I3

构建FP树

1、统计各元素出现频率:扫描数据的集合,对每个商品进行统计计数:

I1I2I3I4I5
67622

2、支持度过滤:设定最小的支持度,这里可以直接理解为商品最少出现的次数,人为设置为2

3、元素项降序排序:按照商品数目降序的规则重排数据集,对于计数的数目小于2的需要删除,结果为下表

I2I1I3I4I5
76622

4、重排后项目集:重新调整物品清单,按照次数重排顺序,注意如果这边遇到元素的数量一样的时候按照关键字(比如26英文字母那就按照Z开始降序)降序排列,这种重排会影响后续的树的结构:

TidItems
1I2, I1, I5
2I2, I4
3I2, I3
4I2, I1, I4
5I1, I3
6I2, I3
7I1, I3
8I2, I1, I3, I5
9I2, I1, I3

5、构建FP树

NUll作为根节点,加入第一条清单(I2、I1、I5)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c0Qi7h3h-1634978795859)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211023140925245.png)]

继续加入第二条(I2、I4)

注意出现相同节点且相同路径就累加数目,比如I2相同那就增加I2的频数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KjO6tUXK-1634978795862)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211023141318849.png)]

最后全部加入3-9清单,得到FP树,其实这边还省略了一部分,相同物品但是在不同路径也是有关联的(比如I2下的I1:4劲额另外的路径I1:2也是有link相连的)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1QT6xxl-1634978795864)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211023142008715.png)]

从FP树中挖掘频繁项集

条件模式基:头部链表中某一点的前缀路径集合就是条件模式基,条件模式基的值取决于末属节点的值(比如I5的条件模式基就是(I2 I1),(I2 I1 I3))

1、对头部链表进行降序排序,已降序

2、对头部链表进行由小到大的遍历,得到条件模式基,同时获得一个频繁项集,条件模式基的值取决于末尾节点的值

元素频数
I27
I16
I36
I42
I52

比如:从I5开始遍历,I5节点加入频繁项集,找到以I5节点为末尾的路径如下:(I2、I1、I5),(I2、I1、I3、I5),去掉I5节点,得到条件模式基<左边是路径,右边是值>,[I2,I1]:1、[I2,I1,I3]:1

条件FP树:以条件模式基作为数据集构造的FP树叫做条件FP树

3、条件模式基继续构造条件FP树

比如上述的I5条件模式基构建FP树,I3:1不符合支持度舍去,I2:2,I1:2,和模式后缀I5取并集得到支持度大于2的频繁模式

得到频繁项集和之前频繁项集组合起来,作为最终结果,如下表[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OoxbiHro-1634978795865)(F:/ZNV/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/%E7%AE%97%E5%AD%90%E5%B9%B3%E5%8F%B0%E8%AE%B0%E5%BD%95/image-20211023163924631.png)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

友培

数据皆开源!

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

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

打赏作者

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

抵扣说明:

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

余额充值