在各种数据挖掘算法中,关联规则挖掘算是比较重要的一种,尤其是受购物篮分析的影响,关联规则被应用到很多实际业务中,本文对 关联规则挖掘 做一个小的总结。

首先,和聚类算法一样,关联规则挖掘属于 无监督学习方法,它描述的是在一个事物中物品间同时出现的规律的知识模式,现实生活中,比如超市购物时,顾客购买记录常常隐含着很多关联规则,比如购买圆珠笔的顾客中有65%也购买了笔记本,利用这些规则,商场人员可以很好的规划商品摆放问题;
为叙述方便, 设R= { I1,I2 ......Im}   是一组物品集,W   是一组事务集。W   中的每个事务T   是一组物品,T是 R的子集 。假设有一个物品集 A ,一个事务 T , 关联规则是如下形式的一种蕴含:A → B,其中A、B   是两组物品,A属于 I子集 , B属于I子集 。
在关联规则中设计4个常用关键指标
1.置信度(confidence)

定义:设W中支持物品集A的事务中,有c %的事务同时也支持物品集B,c %称为关联规则A→B 的可信度。

通俗解释:简单地说,可信度就是指在出现了物品集A 的事务T 中,物品集B 也同时出现的概率有多大。

实例说明:上面所举的圆珠笔和笔记本的例子,该关联规则的可信度就回答了这样一个问题:如果一个顾客购买了圆珠笔,那么他也购买笔记本的可能性有多大呢?在上述例子中,购买圆珠笔的顾客中有65%的人购买了笔记本, 所以可信度是65%。

概率描述:物品集A对物品集B的置信度confidence(A==>B)=P(A|B)

2.支持度(support)

定义:设W 中有s %的事务同时支持物品集A 和B,s %称为关联规则A→B 的支持度。支持度描述了A 和B 这两个物品集的并集C 在所有的事务中出现的概率有多大。

通俗解释:简单地说,A==>B的支持度就是指物品集A和物品集B同时出现的概率。

实例说明:某天共有1000 个顾客到商场购买物品,其中有150个顾客同时购买了圆珠笔和笔记本,那么上述的关联规则的支持度就是15%。

概率描述:物品集A对物品集B的支持度support(A==>B)=P(A n B)

3.期望置信度(Expected confidence

定义:设W 中有e %的事务支持物品集B,e %称为关联规则A→B 的期望可信度度。

通俗解释:期望可信度描述了在没有任何条件影响时,物品集B 在所有事务中出现的概率有多大。

实例说明:如果某天共有1000 个顾客到商场购买物品,其中有250 个顾客购买了圆珠笔,则上述的关联规则的期望可信度就是25 %。

概率描述:物品集A对物品集B的期望置信度为support(B)=P(B)

4.提升度(lift)

定义:提升度是可信度与期望可信度的比值

通俗解释:提升度反映了“物品集A的出现”对物品集B的出现概率发生了多大的变化。

实例说明:上述的关联规则的提升度=65%/25%=2.6

概率描述:物品集A对物品集B的期望置信度为lift(A==>B)=confidence(A==>B)/support(B)=p(B|A)/p(B)

总之,可信度是对关联规则的准确度的衡量,支持度是对关联规则重要性的衡量。支持度说明了这条规则在所有事务中有多大的代表性,显然支持度越大,关联规则越重要。有些关联规则可信度虽然很高,但支持度却很低,说明该关联规则实用的机会很小,因此也不重要。

在关联规则挖掘中,满足一定最小置信度以及支持度的集合成为频繁集(frequent itemset),或者强关联。关联规则挖掘则是一个寻找频繁集的过程。


关联规则挖掘的相关算法

1.Apriori算法:使用候选项集找频繁项集

Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。

该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法。

可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。

2.基于划分的算法

Savasere等设计了一个基于划分的算法。这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。该算法是可以高度并行的,可以把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立的处理器生成频集的时间也是一个瓶颈。

3.FP-树频集算法

针对Apriori算法的固有缺陷,J. Han等提出了不产生候选挖掘频繁项集的方法:FP-树频集算法。采用分而治之的策略,在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。实验表明,FP-growth对不同长度的规则都有很好的适应性,同时在效率上较之Apriori算法有巨大的提高。

数据挖掘中的支持度 置信度 期望置信度 提升度相关推荐

  1. R语言使用apriori算法进行关联规则挖掘实战:关联规则概念、频繁项集、支持度(support)、置信度(confidence)、提升度(lift)、apriori算法

    R语言使用apriori算法进行关联规则挖掘实战:关联规则概念.频繁项集.支持度(support).置信度(confidence).提升度(lift).apriori算法 目录

  2. 关联分析中的支持度、可信度和提升度

    关联规则下的几个参数: 支持度(Support):表示A和B同时使用的人数占所有用户数的比例,那么Support=P(A&B) 可信度(Confidence):表示使用A的用户中同时使用了B的 ...

  3. 关联分析中的支持度、置信度和提升度 计算

    目录 项集(Itemset) 事务的宽度 支持度.置信度和提升度 定义 例一 例二 项集(Itemset) 包含0个或多个项的集合,如果包含k个项,则称为k-项集. 事务的宽度 事务中出现的项的个数 ...

  4. 【转载】关联分析中的支持度、置信度和提升度

    目录 1. 支持度(Support) 2. 置信度 (Confidence) 3. 提升度(Lift) 1. 支持度(Support) 支持度表示项集{X,Y}在总项集里出现的概率.公式为: Supp ...

  5. 关联分析中的支持度、置信度和提升度

    1.支持度(Support) 支持度表示项集{X,Y}在总项集里出现的概率.公式为: Support(X→Y) = P(X,Y) / P(I) = P(X∪Y) / P(I) = num(XUY) / ...

  6. 关联规则 支持度 置信度 提升度

    1. 支持度(Support) 支持度是两件商品(X∩Y)在总销售笔数(N)中出现的概率,即X与Y同时被购买的概率. X.Y同时出现的概率 Support(X→Y) = P(XY) 2. 置信度 (C ...

  7. 数据挖掘关联分析中的支持度、置信度和提升度

    购物篮分析: 利用关联分析的方法可以发现联系如关联规则或频繁项集. 二元表示:每一行对应一个事务,每列对应一个项,项用二元变量表示,项在事务中出现比不出现更重要,因此项是非对称的的二元变量. 项集(I ...

  8. 关联规则中的支持度、置信度以及提升度

    支持度: 定义:简单解释其实就是某一物品/组合的曝光率,或者是出镜率,即:该物品/组合在队列中出现的次数占队列总数的比例. 计算方式: S u p p o r t = C ( A ) C ( T o ...

  9. python 计算订单_python实现apriori算法的关联规则之支持度、置信度、提升度

    Apriori算法的简介 Apriori算法:使用候选项集找频繁项集 Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法.其核心是基于两阶段频集思想的递推算法.该关联规则在分类上属于单维 ...

最新文章

  1. nt是linux指令吗,linux shell 指令 诸如-d, -f, -e之类的判断表达式简介
  2. 数据库与数据库管理系统的基本概念
  3. php 生成小程序二维码
  4. C#.net调用Excel出现问题
  5. Python用户界面编程PyQt5的四种的布局方式
  6. 20个JS 小技巧超级实用
  7. workerman mysql git_swoole和workerman哪个更易开发?
  8. 加载gif图片的方法:(需要SDWebImage方法)
  9. FZOJ2110: Star
  10. hadoop错误总结
  11. 生物技术制药课程文献调研报告撰写说明
  12. fiddler修改支付金额_Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解+代码
  13. Ping++中的AlipaySDK和AlicloudUTDID冲突解决方案
  14. bootstrap创建响应式网站
  15. c语言图书管理信息系统源代码,C语言 图书信息管理系统 最终源代码
  16. JavaScript学习手册一:JS简介
  17. 16-20信息安全工程师上午题总结
  18. matlab tic and toc,什么是Python等价于Matlab的tic和toc函数?
  19. 记录一下Base64 在线编码解码
  20. Python100Days学习笔记---Day16-20Python语言进阶

热门文章

  1. python selenium 给textarea赋值
  2. iCloudManager部署---iCloudManager的安装及设置(三)
  3. 美容行业概况与解决方案
  4. 离开网页弹窗函数onbeforeunload与onunload
  5. 建立智能客户端应用的开发路标
  6. IFDEF和ENDIF的理解
  7. Spring整合dubbo原理
  8. 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容) – 叶小钗
  9. 前端必备的 Terminal 终端进阶技巧
  10. 在线3D平面度检测机 大理石平台设计线激光3D成像技术