FPTree算法笔记

FPTree算法笔记:

FPTree算法引入一些数据结构来临时的存储数据
数据结构分为三个部分
第一部分是一个项头表:记录所有1项频繁项集出现的次数,按照次数降序排列
第二部分是FP Tree: 将原始数据映射到一颗FP树。
第三部分是节点链表: 所有项头表里的1项频繁集都是一个节点链头的表,它依次指向FP
树中该1频繁项集出现的位置。(是一根线)方便项头表和FP Tree之间的联系查找和
更新。

项头表的建立:
第一次扫描:统计所有频繁1项集,支持度降序排列将其放入项头表中
第二次扫描:将源数据的每条数据中的非频繁1项集剔除,并将该数据中的元素按支持度
大小进行排序,存放回源数据中(可以尽可能的共用祖先节点)

FP Tree的建立
开始时FP树无数据,即根节点为空,建立FP树时我们一条一条的读入排序后的数据集
,插入FP树,插入时按排序后的顺序插入,排序靠前的是祖先节点,靠后的是子孙节点
。(源数据在第二次扫描的时候,已经将排序考前的节点放在了前面,因此祖先节点
排序考前,而子孙节点排序靠后)。如果有共用的祖先节点,则祖先节点数加1。如果
有新节点出现,则项头表对应的节点会通过节点链接上新的节点。
所有数据都插入到FP树后,FP树建立完成。

FPTree的挖掘
得到了FP树和项头表以及节点链表
首先从项头表的底部向上一次挖掘,对于项头表对应FP树的每一项,我们要找到条件
模式基。条件模式基是以我们要挖掘的节点作为叶子节点所对应的FP子树。
其次将得到的FP子树的每个节点的计数设置为叶子节点的而计数,并删除计数低于
支持度的节点。我们就可以得到频繁项集。

FPTree算法归纳
1) 扫描数据,得到所有频繁1项集的计数。然后删除支持度低于阈值的项,将频繁1项
集放入项头表,并按照支持度降序排列。
2)扫描数据,将读到的数据剔除非频繁1项集,并按支持度降序排列
3)读入排序后的数据集,插入FP树,序靠前的节点是祖先节点,而靠后的是子孙节点。
如果有共用的祖先,则对应的公用祖先节点计数加1。插入后,如果有新节点出现,则
项头表对应的节点会通过节点链表链接上新节点。直到所有的数据都插入到FP树后,
FP树的建立完成。
4)从项头表的底部项依次向上寻找条件模式基。从条件模式基递归挖掘得到项头表
项项的频繁项集。
5)如果不限制频繁项集的项数,则返回步骤4所有的频繁项集,否则只返回满足
项数要求的频繁项集。

参考链接:http://www.cnblogs.com/aeexiaoqiang/p/6531789.html———-

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值