FP-Growth算法是韩嘉炜等人在2000年提出的
关联分析
算法,它采取如下
分治策略
:将提供
频繁项集
的
数据库压缩
到一棵
频繁模式
树(
FP-tree
),但仍保留项集关联信息。
在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的
数据结构
。
FP-tree
是一种特殊的
前缀树
,由频繁项头表和项前缀树构成。FP-Growth算法基于以上的结构加快整个挖掘过程。
1.扫描数据库DB一遍.得到频繁项的集合F和每个频繁项的支持度.把F按支持度递降排序,结果记为L.
2.创建FP-tree的
根节点
,记为T,并且标记为’null’.然后对DB中的每个事务Trans做如下的步骤.
根据L中的顺序,选出并排序Trans中的事务项.把Trans中排好序的事务项列表记为[p|P],其中p是第一个元素,P是列表的剩余部分.调用insert_tree([p|P],T).
函数insert_tree([p|P],T)的运行如下.
如果T有一个子结点N,其中N.item-name=p.item-name,则将N的count域值增加1;否则,创建一个新节点N,使它的count为1,使它的
父节点
为T,并且使它的
node
_link和那些具有相同item_name域串起来.如果P非空,则
递归调用
insert_tree(P,N).