【Python机器学习】FP-growth算法——从一棵FP树中挖掘频繁项集

有了FP树之后,就可以抽取频繁项集了。这里的思路与Apriori算法大致类似,首先从单元素项集合开始,然后在此基础上逐步构建更大的集合。这里将利用FP树来做实现上述过程,不再需要原始数据集。

从FP树中抽取频繁项集的三个基本步骤如下:

1、从FP树中获得条件模式基;

2、利用条件模式基,构建一个条件FP树;

3、迭代重复步骤1、2,直到树包含一个元素项为止。

抽取条件模式基

首先从已经保存在头指针表中的单个频繁元素项开始。对于每一个元素项,获得其对应的条件模式基。条件模式基是以所查找元素项为结尾的路径集合。每一条路径其实都是一条前缀路径。简而言之,一条前缀路径是介于所查找元素项与树根节点之间的所有内容。

以之前的数据为例,符号r的前缀路径是{x,s}、{z,x,y}和{z}。每一条前缀路径都与一个计数值关联。该计数值等于起始元素项的计数值,该计数值给了每条路径上r的数目。下表列出了每个频繁项的所有前缀路径:

前缀路径将被用于构建条件FP树。为了获取这些前缀路径,可以对树进行穷举式搜索,直到获得想要的频繁项集为止,或者使用一个更有效的方法来加速搜索过程。可以利用先前创建的头指针表来得到一种更有效的方法。头指针表包含相同类型元素链表的起始指针。一旦到达了每一个元素项,就可以上溯这棵树直到根节点为止。

下面是前缀路径发现的代码:

def as
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值