一.频繁项集挖掘为什么会出现FP-growth呢?

原因:这得从Apriori算法的原理说起,Apriori会产生大量候选项集(就是连接后产生的),在剪枝时,需要扫描整个数据库(就是给出的数据),通过模式匹配检查候选集合(为的是找到满足最小支持度的项)。候选产生过程带来的就是昂贵的代价开销,所以FP-growth就出现了。

二.FP-growth(Frequent-Pattern Growth) :频繁模式增长

1.数据库(给出的数据)第一次扫描和Apriori一样,找出频繁1项集的集合,统计各个项的支持度计数(出现的次数)。设置最小支持度,需要将集合的各个项按支持度计数由(大->小)排序。假设排序好的集合为L。

2.构造FP树。首先,创建根结点(为NULL)。第二次扫描数据,将每个事务中的项按L的顺序,在FP树上构建分支。这里需要注意的是,在为新事务建分支的时候,沿共同前缀上的每个结点的计数加1,为后缀之后的项创建结点。例如:事务1:建的分支为:1,2,3。事务2:1,2,5。则FP树新分支(为事务2)需要与事务1共用(1,2)前缀,5则新建结点。此时(1,2)的支持度都相应的变为了2。结点3和5依旧是1

3.当FP树完成,数据频繁模式的挖掘就变为了FP树的挖掘。

4.FP数挖掘的核心流程:从L的最小支持度的项(后缀模式)开始---->构造它的条件模式基(由FP树中与该后缀模式一起出现的前缀路径集组成)--->构造这项的条件FP树,之后递归L中的各项------>产生频繁项集(后缀模式和条件FP树产生的频繁模式连接实现)

5.需要注意的问题:

条件模式基:需要注意--->各个项出现的支持度计数(这里会出现多个集合,因为后缀模式可能会有多个分支)要和当前的后缀模式的支持度计数保持一致。

条件FP树:需要注意--->将条件模式基产生的多个集合合并(将相同前缀路径的各个结点的支持度累计加1,这里去掉不符合最小支持度的结点)。

产生频繁模式:将条件FP树产生的各个集合与后缀模式连接。(如果多个集合中出现重复的项,需累加计数再与后缀模式连接)例如:条件FP数产生的集合:(a:4,b:3),(b:3),假设此刻的后缀模式为c 。则产生的频繁项集为:(a:4,c:4),(b:6,c:6),(a:4,b:3,c:3)

  

手推FP-growth (频繁模式增长)算法------挖掘频繁项集的更多相关文章

  1. apriori && fpgrowth:频繁模式与关联规则挖掘

    已迁移到我新博客,阅读体验更佳apriori && fpgrowth:频繁模式与关联规则挖掘 详细代码我放在github上:click me 一.实验说明 1.1 任务描述 1.2 数 ...

  2. 手推Apriori算法------挖掘频繁项集

    版权声明:本文为博主原创文章,未经博主允许不得转载. Apriori算法: 使用一种称为逐层搜索的迭代方法,其中K项集用于搜索(K+1)项集. 首先,通过扫描数据库,统计每个项的计数,并收集满足最小支 ...

  3. 频繁模式挖掘 Apriori算法 FP-tree

    啤酒 尿布 组合营销 X=>Y,其中x属于项集I,Y属于项集I,且X.Y的交集等于空集. 2类算法 Apriori算法 不断地构造候选集.筛选候选集来挖掘出频繁项集,需要多次扫描原始数据.磁盘I ...

  4. FP—Growth算法

    FP_growth算法是韩家炜老师在2000年提出的关联分析算法,该算法和Apriori算法最大的不同有两点: 第一,不产生候选集,第二,只需要两次遍历数据库,大大提高了效率,用31646条测试记录, ...

  5. 数据挖掘学习笔记:挖掘频繁模式、关联和相关[ZZ]

    所 谓挖掘频繁模式,关联和相关,即指在出现的数据集中找到一个经常出现的序列模式或者是一个经常出现的数据结构.就像搞CPU设计的人知道,Cache的预 取机制有流预取和指针预取,前者就是发现流模式,即发 ...

  6. 挖掘频繁项集之FP-Growth算法

    http://blog.csdn.net/pipisorry/article/details/48918007 FP-Growth频繁项集挖掘算法(Frequent-Pattern Growth, 频 ...

  7. 【机器学习】关联规则挖掘(二):频繁模式树FP-growth

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

  8. 用Spark学习FP Tree算法和PrefixSpan算法

    在FP Tree算法原理总结和PrefixSpan算法原理总结中,我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结,这里就从实践的角度介绍如何使用这两个算法.由于scikit-l ...

  9. 关联规则—频繁项集Apriori算法

    频繁模式和对应的关联或相关规则在一定程度上刻画了属性条件与类标号之间的有趣联系,因此将关联规则挖掘用于分类也会产生比较好的效果.关联规则就是在给定训练项集上频繁出现的项集与项集之间的一种紧密的联系.其 ...

随机推荐

  1. 【C++】使用find函数快速定位元素

    当有了STL,你还在用遍历的土方法定位元素吗? 今天就来介绍一下,如何使用algorithm库里的find函数快速定位数组或向量中的元素. 首先当然要包含头文件: #include <algor ...

  2. 集训第五周动态规划 G题 回文串

    Description A palindrome is a symmetrical string, that is, a string read identically from left to ri ...

  3. JavaEE JDBC PreparedStatement

    PreparedStatement @author ixenos PreparedStatement工作原理 注意:虽然mysql不支持PreparedStatement优化,但依然有预编译的实现! ...

  4. HDU 4803 贪心

    尽可能的让当前的平均值接近最后的平均值才能最快达到终点的情况 #include <cstdio> #include <cstring> #include <iostrea ...

  5. Mysql Replace语句的使用

    Mysql Replace语句的语法: REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name [(col_name,...)] VALUES ({expr ...

  6. segv & mini coredump 调研

    1. mini coredump    a. segv      http://zh.scribd.com/doc/3726406/Crash-N-Burn-Writing-Linux-applica ...

  7. linux 命令练习 2018-08-27

    linux 命令练习 2018-08-27 uname  显示系统名字 [test@localhost ~]$ uname Linux uname -a   即列出linux的内核版本号 [test@ ...

  8. BootStrap3栅格系统与布局

    栅格系统与布局 Use our powerful mobile-first flexbox grid to build layouts of all shapes and sizes thanks t ...

  9. [bzoj4826][Hnoi2017]影魔_单调栈_主席树

    影魔 bzoj-4826 Hnoi-2017 题目大意:给定一个$n$个数的序列$a$,求满足一下情况的点对个数: 注释:$1\le n,m\le 2\cdot 10^5$,$1\le p1,p2\l ...

  10. [bzoj1188][HNOI2007]分裂游戏_博弈论

    分裂游戏 bzoj-1188 HNOI-2007 题目大意:题目链接. 注释:略. 想法: 我们发现如果一个瓶子内的小球个数是奇数才是有效的. 所以我们就可以将问题变成了一个瓶子里最多只有一个球球. ...