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

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. Linux下安装SVN,仓库创建,用户权限管理

    Exported from Notepad++           Linux下安装SVN,仓库创建,用户权限管理 1.SVN安装 Ubuntu系统下安装:sudoapt-getinstallsubv ...

  2. Codeforce 741B Arpa's weak amphitheater and Mehrdad's valuable Hoses(并查集&分组背包)

    题意: 给定n个价值为b 花费为w的物品, 然后某些物品是属于同一个组的, 给定一个花费限制V, 求在小于等于V的情况下取得到的价值最大为多少,能对于同一个组的物品,要么全取,要么只取一个. 分析: ...

  3. 商业研究(21):活力蛙,足疗O2O,曾经的“中国上门足疗领先品牌”

    友情提示:商业研究系列文章,只探讨项目和相关项目的商业本身,不针对任何人和任何组织!!! 2015年,在京东-东家 股权众筹平台,参与投资了足疗O2O项目,活力蛙.     后来由于,股市大跌和资本寒 ...

  4. python面向对象编程实例

    1.编写程序, 编写一个学生类, 要求有一个计数器的属性, 统计总共实例化了多少个学生 class Student: """学生类""" c ...

  5. python virtualenv 管理工具 - virtualenvwrapper

    我们使用python virtualenv构建不同的python环境,python3 也加入了virtualenv 模块. virtualenvwrapper 提供了更便捷的 virtualenv环境 ...

  6. Java AOP

    AOP 今天我要和大家分享的是 AOP(Aspect-Oriented Programming)这个东西,名字与 OOP 仅差一个字母,其实它是对 OOP 编程方式的一种补充,并非是取而代之.翻译过来 ...

  7. POJ1094 字母排序(拓扑排序)

    该题题意明确,就是给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列.是典型的拓扑排序,但输出格式上确有三种形式: 1.该字母序列有序,并依次输出: 2.该序列不能判断是否有序: 3.该序列字母次 ...

  8. BFS简单迷宫

    常见迷宫: 输入迷宫 启点 终点 然后求最短路径 BFS例题 用dist[][]数组来记录 启点到每个点的最短路径 #include <iostream> #include <fst ...

  9. 【intellij】intellij idea 建立与src级别的目录

    在使用三大框架时,通常会把配置文件放在自己新建的config文件夹里,以便编程.在 myeclipse里新建的config文件夹是Source Folder属性的 这样他的级别适合src一个级别,但是 ...

  10. android中后一个activity传值给前一个activity的实现

    前一个activity跳转到后一个activity设置code: Intent intent=new Intent(MainActivity.this,ActivityTwo.class); star ...