版权声明:本文为博主原创文章,未经博主允许不得转载。

Apriori算法:

使用一种称为逐层搜索的迭代方法,其中K项集用于搜索(K+1)项集。

首先,通过扫描数据库,统计每个项的计数,并收集满足最小支持度的项,找出频繁1项集的集合。该集合记为L1。然后,使用L1找出频繁2项集的集合L2,使用L2找出L3,如此下去,直到不能再找到频繁K项集。找出每个Lk需要一次数据库的完整扫描。

为了提高频繁项集逐层产生的效率,一种称为先验性质的重要性质用于压缩搜索空间。

先验性质:频繁项集的所有非空子集也一定是频繁的。

频繁1项集的集合------> L1:统计各个项的出现次数,将满足最小支持度(会给出)的项留下。

频繁2项集的集合------> L2:连接L1中各个项:例如:L1: 1,2,3,4 ------>L2:(1,2),(1,3),(1,4),(2,3),(2,4),(3,4) 。连接完成之后,需要剪枝(根据先验性质),由于L2中的每个项的子集都是频繁的,所以剪枝这步不需要删除L2中不满足的项。最后,扫描数据库(就是给出的数据),统计L2中所有项的支持计数(就是累加每个项在给出数据中出现的次数),挑出满足最小支持度的项构成L2。(一般这里会删除一些项,假设删除了(2,4)项)。 最终 L2:(1,2),(1,3),(1,4),(2,3),(3,4)

频繁3项集的集合------> L3:连接L2中的各个项: 例如:L2: (1,2),(1,3),(1,4),(2,3),(2,4),(3,4) ------->L3:(1,2,3),(1,2,4),(1,3,4),(2,3,4)。连接完成之后,需要剪枝,根据先验性质,频繁项集的所有子集必须是频繁的。所以删除(1,2,4)和(2,3,4)因为它们的子集(2,4)不在L2中所以不是频繁项集。最后,扫描数据库(就是给出的数据),统计L3中所有项的支持计数(就是累加每个项在给出数据中出现的次数),挑出满足最小支持度的项构成L3。最终L3:(1,2,3),(1,3,4)

频繁4项集的集合------> L4:正常迭代进行。

但就上面举的例子:因为连接L3中各项:L3:(1,2,3),(1,3,4)-------------->L4:(1,2,3,4) 。L4的子集(2,3,4)不是频繁项集,这样L4会为空集,所以算法迭代结束。找出的频繁项集为:(1,2,3),(1,3,4)

核心流程:集合连接-------->剪枝--------->挑选满足最小支持度的项---------->构成频繁项集

手推Apriori算法------挖掘频繁项集的更多相关文章

  1. 手推FP-growth (频繁模式增长)算法------挖掘频繁项集

    一.频繁项集挖掘为什么会出现FP-growth呢? 原因:这得从Apriori算法的原理说起,Apriori会产生大量候选项集(就是连接后产生的),在剪枝时,需要扫描整个数据库(就是给出的数据),通过 ...

  2. R_Studio(时序)Apriori算法寻找频繁项集的方法

    应用ARIMA(1,1,0)对2015年1月1日到2015年2月6日某餐厅的销售数量做为期5天的预测 setwd('D:\\dat') #install.packages("forecast ...

  3. FP-growth算法发现频繁项集(一)——构建FP树

    常见的挖掘频繁项集算法有两类,一类是Apriori算法,另一类是FP-growth.Apriori通过不断的构造候选集.筛选候选集挖掘出频繁项集,需要多次扫描原始数据,当原始数据较大时,磁盘I/O次数 ...

  4. FP-Growth算法之频繁项集的挖掘(python)

    前言: 关于 FP-Growth 算法介绍请见:FP-Growth算法的介绍. 本文主要介绍从 FP-tree 中提取频繁项集的算法.关于伪代码请查看上面的文章. FP-tree 的构造请见:FP-G ...

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

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

  6. FP-growth算法发现频繁项集(二)——发现频繁项集

    上篇介绍了如何构建FP树,FP树的每条路径都满足最小支持度,我们需要做的是在一条路径上寻找到更多的关联关系. 抽取条件模式基 首先从FP树头指针表中的单个频繁元素项开始.对于每一个元素项,获得其对应的 ...

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

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

  8. 【机器学习实战】第12章 使用FP-growth算法来高效发现频繁项集

    第12章 使用FP-growth算法来高效发现频繁项集 前言 在 第11章 时我们已经介绍了用 Apriori 算法发现 频繁项集 与 关联规则.本章将继续关注发现 频繁项集 这一任务,并使用 FP- ...

  9. 【机器学习实战】第12章 使用 FP-growth 算法来高效发现频繁项集

    第12章 使用FP-growth算法来高效发现频繁项集 前言 在 第11章 时我们已经介绍了用 Apriori 算法发现 频繁项集 与 关联规则.本章将继续关注发现 频繁项集 这一任务,并使用 FP- ...

随机推荐

  1. 《深入浅出深度学习:原理剖析与python实践》第八章前馈神经网络(笔记)

    8.1 生物神经元(BN)结构 1.人脑中有100亿-1000亿个神经元,每个神经元大约会和其他1万个神经元相连 2.细胞体:神经元的主体,细胞体=细胞核+细胞质+细胞膜,存在膜电位 3.树突:从细胞 ...

  2. Uva 1103 古代象形符号(dfs求连通块, floodfill, 进制转换)

    题意: 给定一个H行W列的字符矩阵(H<200, W < 50), 输入的是一个十六进制字符, 代表一行四个相邻的二进制, 1代表像素, 0代表没有像素. 然后要求判断输入的是以下哪些图形 ...

  3. Overload重載和Override重写的区别。Overloaded的方法是否可以改变返回值的类型?

    Overload是重载的意思,Override是覆盖的意思,也就是重写. 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同). 重写Ove ...

  4. Spark 静态内存管理

    作者编辑:杜晓蝶,王玮,任泽 Spark 静态内存管理详解 一. 内容简介 spark从1.6开始引入了动态内存管理模式,即执行内存和存储内存之间可以互相抢占.spark提供两种内存分配模式,即:静态 ...

  5. [Oracle, MySQL] Oracle通过dblink连接MySQL

    http://blog.csdn.net/dbanote/article/details/10488581 版权声明:本文为博主原创文章,未经博主允许不得转载. 业务上有这么一个需求,需要把Oracl ...

  6. K-th Number POJ - 2104 划分树

    K-th Number You are working for Macrohard company in data structures department. After failing your ...

  7. restful(3):认证、权限、频率 & 解析器、路由控制、分页、渲染器、版本

    models.py中: class UserInfo(models.Model): name = models.CharField(max_length=32) psw = models.CharFi ...

  8. NIST的安全内容自动化协议(SCAP)以及SCAP中文社区简介

    https://blog.csdn.net/langkew/article/details/8795530?utm_source=tuicool&utm_medium=referral

  9. 谈谈hibernate的缓存

    一,hibernate是什么技术? 1  hibernate是一个orm 就是对象关系映射框架.  及我们创建的实体类对象与数据库表中的数据是一一对应的关系.  我们可以改变对象信息从而改变数据库中的 ...

  10. 洛谷 P1122 最大子树和

    P1122 最大子树和 题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的 ...