【数据挖掘】FPgrowth算法笔记

FPgrowth算法是一种用于数据挖掘的频繁模式增长方法,旨在减少Apriori算法的候选集生成和数据库扫描次数。该算法利用FPTree数据结构,避免了候选项集的生成,同时在确定支持度时无需重复扫描数据库。主要步骤包括构造项头表、建立FPTree以及递归调用FP-growth函数。FP-growth提高了效率,但在处理大量数据时仍面临挑战,可以通过数据库划分和数据采样等方法优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 提出问题

对于Apriror算法来说,仍然受到两种非平凡开销的影响:

  • 仍然需要产生大量的候选集。例如,如果有10^4个频繁1项集,则需要产生10^7个候选频繁2项集。

  • 可能需要重复地扫描整个数据库。检索数据库中每个事务来确定候选项集支持度的开销会很大。

所以,我们需要设计一种方法,挖掘全部频繁项集而无须这种代价昂贵的候选产生过程。即,不需要产生如此大量的候选集,同时在确定候选集支持度时不需要重复地扫描整个数据库。

这里试图解决这种问题的方法称为频繁模式增长(Frequent-Pattern Growth, FP-growth)

2. FP-growth

总的来说,就是在不生成候选项的情况下,完成Apriori算法的功能。

FPTree算法的基本数据结构,包含一个一棵FP树和一个项头表,每个项通过一个结点链指向它在树中出现的位置。基本结构如下所示。需要注意的是项头表需要按照支持度递减排序,在FPTree中高支持度的节点只能是低支持度节点的祖先节点。

这里写图片描述

另外还要交代一下FPTree算法中几个基本的概念:

  • FP-Tree:就是上面的那棵树,是把事务数据表中的各个事务数据项按照支持度排序后,把每个事务中的数据项按降序依次插入到一棵以NULL为根结点的树中,同时在每个结点处记录该结点出现的支持度。

  • 条件模式基:包含FP-Tree中与后缀模式一起出现的前缀路径的集合。也就是同一个频繁项在PF树中的所有节点的祖先路径的集合。比如I3在FP树中一共出现了3次,其祖先路径分别是{I2,I1:2(频度为2)},{I2:2}和{I1:2}。这3个祖先路径的集合就是频繁项I3的条件模式基。

  • 条件树:将条件模

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值