#coding=utf-8
'''
Created on Jun 14, 2011
FP-Growth FP means frequent pattern
the FP-Growth algorithm needs:
1. FP-tree (class treeNode)
2. header table (use dict)
This finds frequent itemsets similar to apriori but does not
find association rules.
@author: Peter
使用FP-growth算法发现频繁项集
FP-growth只会扫描数据集两次,它发现频繁项集的基本过程如下:
(1)构建FP树
(2)从FP树中挖掘频繁项集
FP-growth算法
优点:一般要快于Apriorio
缺点:实现比较困难,在某些数据集上性能会下降。
适用数据类型:标称型数据。
FP-growth算法将数据存储在一种称为FP树的紧凑数据结构中。FP代表频繁模式(Frequent
Pattern )。一棵FP树看上去与计算机科学中的其他树结构类似,但是它通过链接(link)来连接相
似元素,被连起来的元素项可以看成一个链表。
同搜索树不同的是,一个元素项可以在一棵FP树中出现多次。FP树会存储项集的出现频率,
而每个项集会以路径的方式存储在树中。存在相似元素的集合会共享树的一部分。只有当集合之