在关联分析(1):概念及应用中,我们介绍了关联分析的应用场景、基本概念和规则产生思路。在本次的文章中,我们将介绍Apriori算法频繁项集产生的原理。文章中会涉及专有名词,不清楚概念的可在上一篇文章中查看。

先验原理与反单调性

产生频繁项集的原始方法是找到所有可能的候选项集,与每个事务比较,计算出支持度计数。但是这种方法开销太大,因此需要在候选项集的产生中,直接删除某些候选项集。这里,就需要用到先验原理和支持度的反单调性。

先验原理。如果一个项集频繁,则其所有子集也频繁。

比如{a,b}是频繁项集,则包含{a,b}的事务一定包含其子集{a}和{b},因此如果{a,b}频繁,其子集一定频繁。

反单调性。如果一个项集非频繁,则其所有超集也非频繁。

比如{a,b}是非频繁项集,则他的所有子集也是非频繁的。即项集的支持度不超过其子集的支持度。根据支持度的反单调性,可以通过剪枝减少候选项集的数量。

Apriori算法产生频繁项集

Apriori算法是非常常用的关联算法之一,我们继续使用上一篇文章中的例子,来分析Apriori算法产生频繁项集的过程。假定支持度阈值为50%,即最小支持度计数为2。

步骤一    初始,将每个项看成候选1-项集,计算支持度。这样,{handicapped-infants=?},{immigration=y}和{crime=n}被丢弃,因此频繁1-项集共6个。

步骤二    根据先验原理与支持度反单调性,非频繁1-项集的超集都非频繁,所以使用频繁1-项集来产生候选2-项集。

步骤三    同理,使用频繁2-项集来产生候选3-项集。根据先验原理,只需要保留子集全为频繁2-项集的候选3-项集。

步骤四    同理,使用频繁3-项集来产生候选4-项集。得到唯一的频繁4-项集

{republican,handicapped-infants=n,mx-missile=n,crime=y}。

产生频繁项集特点

1,逐层。从1-项集开始,直到可以产生的最长频繁项集。

2,产生测试策略。每次新的候选项集都由前一次产生的频繁项集生成,然后根据支持度要求,得到新的频繁项集。

候选项集产生

从上面的过程可以看出,生成频繁项集还包含一个非常重要的步骤,就是候选项集的产生。用一种可以快速有效的方法生成候选项集,可以有效提升算法效率。

为了避免生成候选项集时产生重复,同时保证产生候选的完全性,将频繁项集中的项按照字典序存储,即按照字母顺序排列。这样,只有在两个频繁k-项集的前(k-1)项都相同时,才进行合并,产生(k+1)项集,然后验证子集是否频繁,对非频繁子集进行剪枝,生成候选(k+1)项集。比如{crime=y,handicapped-infants=n,mx-missile=n}和{crime=y,handicapped-infants=n,republican}都是按照字典序排列的频繁3-项集,他们前两项都相同,所以进行合并,{crime=y,handicapped-infants=n,mx-missile=n,republican},且经验证,子集都为频繁,则{crime=y,handicapped-infants=n,mx-missile=n,republican}为频繁4-项集。

频繁项目集java实现_关联分析(2):Apriori产生频繁项集相关推荐

  1. apriori算法c++_关联分析——基于Apriori算法实现

    电子商务推荐系统主要是通过统计和挖掘技术,根据用户在网站上的行为,主动为用户提供推荐服务,从而提高网站体验.而根据不同的业务场景,推荐系统需要满足不同的推荐粒度,包括搜索推荐,商品类目推荐,商品标签推 ...

  2. apriori数据集_关联分析——基于Apriori算法实现

    电子商务推荐系统主要是通过统计和挖掘技术,根据用户在网站上的行为,主动为用户提供推荐服务,从而提高网站体验.而根据不同的业务场景,推荐系统需要满足不同的推荐粒度,包括搜索推荐,商品类目推荐,商品标签推 ...

  3. python机器学习案例系列教程——关联分析(Apriori、FP-growth)

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 关联分析的基本概念 关联分析(Association Analysis):在大规模数据集中寻找有趣的关系. 频繁项集(Frequent ...

  4. 关联分析(Apriori,FP-growth)

    关联分析是数据挖掘中的重要组成部分,旨在挖掘数据中的频繁模式.我们可以通过一个案例数据库挖掘著名案例来大致了解挖掘频繁项集并产生关联规则. 关联分析的基本概念 关联分析:在大规模数据集中寻找有趣的关系 ...

  5. 轻松入门机器学习数据挖掘算法——关联分析(Apriori算法)

    小故事:20世纪90年代,沃尔玛超市在对顾客的购物记录进行购物篮分析时,发现了一个奇怪的现象: "啤酒"和"尿布"两件看上去毫无关系的商品,经常出现在同一个购物 ...

  6. python 频繁项集_关联分析之发现频繁项集--使用Apriori算法(1)

    从大规模数据集中寻找物品间的隐含关系被称为关联分析,最有名的案例应该是啤酒和尿布了.这些关系可以用两种方式来量化,一个是使用频繁项集,给出经常在一起出现的元素项:一个是关联规则,每条关联规则意味着元素 ...

  7. 数据挖掘之关联分析七(非频繁模式)

    非频繁模式 非频繁模式,是一个项集或规则,其支持度小于阈值minsup. 绝大部分的频繁模式不是令人感兴趣的,但其中有些分析是有用的,特别是涉及到数据中的负相关时,如一起购买DVD的顾客多半不会购买V ...

  8. python关联分析代码_1行代码实现关联分析(Apriori)算法

    本文不涉及关联分析算法的计算原理,只注重代码实现. 最近公司分了个任务,要求写一篇面向python初学者的关联分析演习材料.遇到这种情况,我的解决办法当然是优先使用已有模块,然后写一篇模块使用方法指南 ...

  9. 西瓜书+实战+吴恩达机器学习(十五)无监督学习之关联分析(Apriori, FP-growth)

    文章目录 0. 前言 1. Apriori算法 1.1. 寻找频繁项集 1.2. 挖掘关联规则 2. FP-growth算法 2.1. 构建FP树 2.2. 寻找频繁项集 如果这篇文章对你有一点小小的 ...

最新文章

  1. 继承ViewGroup类
  2. NSString字符串常用知识点
  3. Python入门100题 | 第025题
  4. 关于4.8节第一个例子
  5. 【机器学习】特征预处理
  6. python3 Django框架报错(备忘录)
  7. monkey 运行时间怎么计算_基于STM32F103C8T6工控板利用定时器计算某段代码的运行时间...
  8. 如何使用「番茄法」高效的写算法题?
  9. VC++获取文本框1内容在文本框2显示
  10. 做游戏,学编程(C语言) 3 利用函数对飞机游戏进行重构
  11. 只要学会它,再多 Bug 也不怕
  12. 模型预测控制与机器学习
  13. iis php环境安装包下载,php5 环境集成安装包 for IIS6
  14. 全国办公软件高级操作员证书是计算机水平,《办公软件应用高级操作员级课程标准》.doc...
  15. 求视网膜oct图像数据集
  16. MySQL - 大量 sending data 状态进程,让数据库性能急剧下降。
  17. 笑喷了,电视剧里的代码真能运行吗?
  18. Martin Fowler:持续集成(很有参考意义)
  19. Hadoop Applier
  20. Django7-2.模板系统常用知识点(2)

热门文章

  1. ASP .NET 如何在 SQL 查询层面实现分页 1
  2. 如何在博客园中自定义导航菜单
  3. 三、悟透javascript中的function
  4. Java_常遇问题(一)
  5. swift Tablview中cell 的用withtag方法绑定里面的button
  6. JSON.parse 函数
  7. 判断字符串中是否包含Emoji表情代码
  8. map容器find用法
  9. JS遮罩效果 (很强)
  10. GARFIELD@01-25-2005