博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【机器学习】关联规则挖掘(二):频繁模式树FP-growth
阅读量:4591 次
发布时间:2019-06-09

本文共 1242 字,大约阅读时间需要 4 分钟。

        Apriori算法的一个主要瓶颈在于,为了获得较长的频繁模式,需要生成大量的候选短频繁模式。FP-Growth算法是针对这个瓶颈提出来的全新的一种算法模式。目前,在数据挖掘领域,Apriori和FP-Growth算法的引用次数均位列三甲。

        FP的全称是Frequent Pattern,在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构。FP-tree是一种特殊的前缀树,由频繁项头表和项前缀树构成。所谓前缀树,是一种存储候选项集的数据结构,树的分支用项名标识,树的节点存储后缀项,路径表示项集。

 

一、FP-tree的生成方法

        第二步根据支持度对频繁项进行排序是本算法的关键。第一点,通过将支持度高的项排在前面,使得生成的FP-tree中,出现频繁的项更可能被共享,从而有效地节省算法运行所需要的空间。第二点,通过这种排序,可以对FP-tree所包含的频繁模式进行互斥的空间拆分,得到相互独立的子集,而这些子集又组成了完整的信息。

 

二、FP-tree子集分割方法

        如上图,求p为前缀的投影数据库:根据头表的指针找到FP-tree的两个p节点,搜索出从这两个节点到树的根节点路径节点信息(包含支持度)。然后累加路径节点信息的支持度,删除非频繁项。对剩下的频繁项按照上一节的方法构建FP-tree。过程如下图所示:

三、FP-Growth算法流程

        基本思路是:不断地迭代FP-tree构造投影过程。

        对于每个频繁项,构造它的条件投影数据库投影FP-tree。对每个新构建的FP-tree重复这个过程,直到构造的新FP-tree为空,或者只包含一条路径。当构造的FP-tree为空时,其前缀即为频繁模式;当只包含一条路径时,通过枚举所有可能组合并与此树的前缀连接即可得到频繁模式。

---------------------------------------------------------------------------------------------------

要点:

  FP Growth是一种比Apriori更高效的频繁项挖掘方法,它只需要扫描项目表2次。其中第1次扫描获得当个项目的频率,去掉不符合支持度要求的项,并对剩下的项排序。第2遍扫描是建立一颗FP-Tree(frequent-patten tree)。

  接下来的工作就是在FP-Tree上进行挖掘。

  比如说有下表:

它所对应的FP_Tree如下:

  然后从频率最小的单项P开始,找出P的条件模式基,用构造FP_Tree同样的方法来构造P的条件模式基的FP_Tree,在这棵树上找出包含P的频繁项集。

依次从m,b,a,c,f的条件模式基上挖掘频繁项集,有些项需要递归的去挖掘,比较麻烦,比如m节点,具体的过程可以参考博客: ,里面讲得很详细。

转载于:https://www.cnblogs.com/DianaCody/p/5425630.html

你可能感兴趣的文章
R语言做正态性检验
查看>>
linux用户组管理
查看>>
Console-算法[for]-输出等腰三角形
查看>>
随机数产生方法小知识点
查看>>
Angular2.js——表单(上)
查看>>
aspose将datatable导出2
查看>>
windows下 JDK安装
查看>>
JS学习之闭包的理解
查看>>
Java学习之内部类
查看>>
Oracle内部视图:x$ktfbfe
查看>>
/etc/fstab文件中的一些参数
查看>>
雅可比矩阵与雅可比行列式
查看>>
Programming With Objective-C---- Introduction ---- Objective-C 学习(一)
查看>>
正则表达式语法大全
查看>>
DateUtils
查看>>
pb开发的客户端,使用oracle 9i客户端 提示oci.dll could not be loaded
查看>>
wordpress调用指定post type文章怎么操作
查看>>
magento开发手册之目录结构
查看>>
换个红圈1微信头像恶搞一下好友
查看>>
javascript学习_廖大_20170218
查看>>