数据结构--FP Tree

来源:互联网 发布:ios虚拟定位软件 编辑:程序博客网 时间:2024/05/29 17:12

FP Tree的数据结构

FP Tree算法引入了一些数据结构来临时存储数据,这些数据结构有3个组成部分,分别是项头表、FP Tree 、节点链表

FP Tree的构建

1、源数据的准备:
下面的数据为源数据,我们将用下面的数据构建FP tree

TIDItems1{A,B,E}2{B,C,D}3{A,E}4{B,E,F}5{B,C}6{F}7{A,E}


2、构建表头项:我们先设定最小支持度的阈值为10%,然后把所有的1项频繁集按照出现的频率从高到底排列,由于D的出现次数为1,低于阈值10%,所以不会出现在表头项,得到如下表格

单项频繁集频率B4E4A3C2F2


3、把源数据中的集合按照表头项的顺序重新排列,得到如下表格

TIDItems1{B,E,A}2{B,C,D}3{E,A}4{B,E,F}5{B,C}6{F}7{E,A}


4、PF Tree是一棵以null为根节点的树,从第一条数据{B,E,A}开始,FP Tree中无与B->E->为公共前缀的路径,所以结构如下图,冒号后面的为经过该节点的路径数目
这里写图片描述

5、接下来到第二条数据{B,C,D},节点B为B->C->D的公共前缀,所以经过B节点的路径数目会变成2,形成如下结构
这里写图片描述

6、重复上述的步骤,把所有记录都记录到FP Tree上,最后会形成如下结构
这里写图片描述

7、把项头表的各个节点分别指向对应的节点,并指向树中和它同名的节点,最后得到如下结构图,也就是一棵完整的FP Tree
这里写图片描述



PS:博文中如有什么不对的地方恳请大家指出,谢谢~