关联分析分为非时序关联分析和时序关联分析,其中非时序关联分析采用Apriori算法,利用先验知识产生频繁项集以及关联规则,而时序关联分析采用GSP算法。

Apriori算法

其名字是因为算法基于先验知识(prior knowledge).根据前一次找到的频繁项来生成本次的频繁项。Apriori是关联分析中核心的算法。

Apriori算法的特点

只能处理分类变量,无法处理数值型变量;

数据存储可以是交易数据格式(事务表),或者是事实表方式(表格数据);

算法核心在于提升关联规则产生的效率而设计的。

Apriori的思想

正如我们之前所提到的,我们希望置信度和支持度要满足我们的阈值范围才算是有效的规则,实际过程中我们往往会面临大量的数据,如果只是简单的搜索,会出现很多的规则,相当大的一部分是无效的规则,效率很低,那么Apriori就是通过产生频繁项集,然后再依据频繁项集产生规则,进而提升效率。

以上所说的代表了Apriori算法的两个步骤:产生频繁项集和依据频繁项集产生规则。

那么什么是频繁项集?

频繁项集就是对包含项目A的项目集C,其支持度大于等于指定的支持度,则C(A)为频繁项集,包含一个项目的频繁项集称为频繁1-项集,即L1。

为什么确定频繁项集?

刚才说了,必须支持度大于我们指定的支持度,这也就是说能够确定后面生成的规则是在普遍代表性上的项目集生成的,因为支持度本身的高低就代表了我们关联分析结果是否具有普遍性。

怎么寻找频繁项集?

这里不再讲述,直接说一个例子大家就都明白了。例子来源于Fast Algorithms for Mining Association Rules

Apriori寻找频繁项集的过程是一个不断迭代的过程,每次都是两个步骤,产生候选集Ck(可能成为频繁项集的项目组合);基于候选集Ck计算支持度,确定Lk。

Apriori的寻找策略就是从包含少量的项目开始逐渐向多个项目的项目集搜索。

数据如下:

我们看到,数据库存储的数据格式,会员100购买了 1 3 4三种商品,那么对应的集合形式如右边的图所示。那么基于候选集C1,我们得到频繁项集L1,如下图所示,在此表格中{4}的支持度为1,而我们设定的支持度为2。支持度大于或者等于指定的支持度的最小阈值就成为L1了,这里{4}没有成为L1的一员。因此,我们认定包含4的其他项集都不可能是频繁项集,后续就不再对其进行判断了。

此时我们看到L1是符合最低支持度的标准的,那么下一次迭代我们依据L1产生C2(4就不再被考虑了),此时的候选集如右图所示C2(依据L1*L1的组合方式)确立。C2的每个集合得到的支持度对应在我们原始数据组合的计数,如下图左所示。

此时,第二次迭代发现了{1 2} {1 5}的支持度只有1,低于阈值,故而舍弃,那么在随后的迭代中,如果出现{1 2} {1 5}的组合形式将不被考虑。

如上图,由L2得到候选集C3,那么这次迭代中的{1 2 3} { 1 3 5}哪去了?如刚才所言,{1 2} {1 5}的组合形式将不被考虑,因为这两个项集不可能成为频繁项集L3,此时L4不能构成候选集L4,即停止。

如果用一句化解释上述的过程,就是不断通过Lk的自身连接,形成候选集,然后在进行剪枝,除掉无用的部分。

根据频繁项集产生简单关联规则

Apriori的关联规则是在频繁项集基础上产生的,进而这可以保证这些规则的支持度达到指定的水平,具有普遍性和令人信服的水平。

以上就是Apriori的算法基本原理,留了两个例子,可以加深理解。

例子1:

例子2:

关联分析(一)--Apriori算法相关推荐

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

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

  2. 机器学习 (十五) 关联分析之Apriori算法

    前言 目前随着数据量迅速增多,从海量数据中寻找有价值的信息带来的成本也在不断增加,传统的搜索数据方式已经不能满足我们的需要,我们先来通过一个算法看一下算法时间复杂度快慢带来的影响,通过计算耗时我们会有 ...

  3. 微信推文属性的关联分析 by Apriori算法

    本文通过Apriori算法来对某公司的微信推文属性的关联分析. 本文的目的 找出可让 ['阅读量超过1K'] 的因素,以便达到这些因素使微信推文阅读量提升. 本文的结论 若想让微信推文阅读量超过1K, ...

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

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

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

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

  6. 【机器学习】Apriori 算法进行关联分析和FP-growth算法

    [机器学习]Apriori 算法进行关联分析和FP-growth算法 文章目录 1 关联分析 2 FP-growth算法理解和实现 3 FP增长算法的频繁项集产生 4 FP-Growth关联分析算法在 ...

  7. 关联分析:FP-Growth算法

    转载自  关联分析:FP-Growth算法 关联分析又称关联挖掘,就是在交易数据.关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式.关联.相关性或因果结构.关联分析的一个典型例子是 ...

  8. 购物篮分析( Apriori算法)—零售数据实战

    购物篮分析( Apriori算法)-零售数据实战 [开题]在我从事零售行业的期间,曾拜读过"啤酒与尿布"一书,对于沃尔玛的购物篮分析模型产生极大的兴趣.由于网上对Aprioro算法 ...

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

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

  10. 【数据挖掘】4、关联分析:Apriori、FP-Growth 算法、买面包是否也爱买啤酒

    文章目录 一.概念 1.1 支持度 1.2 置信度 1.3 提升度 二.Apriori 算法 2.1 频繁项集的定义 2.2 手动推导 2.3 SDK 实战 2.3.1 超市购物 2.3.2 挑选演员 ...

最新文章

  1. js之操作JSON数据
  2. review what i studied `date` - 2017-4-11
  3. Apache Hadoop 2.4.1 单节点安装
  4. OpenGL Indirect Culling间接剔除实例
  5. 光纤收发器如何选择?
  6. shellcode---c和汇编混合编程---弹出cmd
  7. 字符串题目 1 --------判断两个字符串是否为旋转词
  8. cvpr 注意力机制_视频人员重识别:关系引导空间注意力 + 时间特征提取模型
  9. Css学习总结(4)——CSS选择器总结
  10. 数据库性能Quest Performance Analysis Overview
  11. oracle判断为周一_oracle sql技巧:取上周一到上周日(本周一到本周日\下周一到下周日)的时间...
  12. LM2903器件使用说明
  13. 旧手机改文件储存服务器,旧手机改云服务器
  14. 网络安全涉及到的知识积累(1)
  15. 报错:tensorflow.python.framework.errors_impl.UnimplementedError: Cast string to float is not supported
  16. HTML5 基础练习题总结(一)
  17. 更多python内容请移步
  18. 蓝桥杯 时间管理大师
  19. 如何让区块链获得人工智能的能力
  20. ProcessDefinition是干这个用的

热门文章

  1. Win10右键添加notepad++
  2. PyQt5系列(二)Mac下使用py2app打包python项目
  3. dumpsys命令用法
  4. linux标准输入/输出/错误
  5. Oracle rac误删归档,rac 归档的存放路径下的不同的恢复方法
  6. python图像转字符画_Python3:图片转字符画
  7. springboot传入json和文件_SpringBoot中文参考指南(2.1.6)29.1.13、CORS 支持
  8. sql关联查询子表的第一条_SQLAlchemy(8)惰性查询
  9. 如何查看Android项目的gradle版本和路径
  10. Android Studio的build.gradle里面的各种版本信息