数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)

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

首先,和聚类算法一样,关联规则挖掘属于无监督学习方法,它描述的是在一个事物中物品间同时出现的规律的知识模式,现实生活中,比如超市购物时,顾客购买记录常常隐含着很多关联规则,比如购买圆珠笔的顾客中有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算法有巨大的提高。

时间: 2024-10-05 07:08:23

数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)的相关文章

数据挖掘算法之关联规则挖掘(一)---apriori算法

关联规则挖掘算法在生活中的应用处处可见,几乎在各个电子商务网站上都可以看到其应用 举个简单的例子 如当当网,在你浏览一本书的时候,可以在页面中看到一些套餐推荐,本书+有关系的书1+有关系的书2+...+其他物品=多少¥ 而这些套餐就很有可能符合你的胃口,原本只想买一本书的你可能会因为这个推荐而买了整个套餐 这与userCF和itemCF不同的是,前两种是推荐类似的,或者你可能喜欢的商品列表 而关联规则挖掘的是n个商品是不是经常一起被购买,如果是,那个n个商品之中,有一个商品正在被浏览(有被购买的

数据挖掘算法之关联规则挖掘(二)FPGrowth算法

之前介绍的apriori算法中因为存在许多的缺陷,例如进行大量的全表扫描和计算量巨大的自然连接,所以现在几乎已经不再使用 在mahout的算法库中使用的是PFP算法,该算法是FPGrowth算法的分布式运行方式,其内部的算法结构和FPGrowth算法相差并不是十分巨大 所以这里首先介绍在单机内存中运行的FPGrowth算法 还是使用apriori算法的购物车数据作为例子,如下图所示: TID为购物车项的编号,i1-i5为商品的编号 FPGrowth算法的基本思想是,首先扫描整个购物车数据表,计算

微软数据挖掘算法:Microsoft 关联规则分析算法(7)

前言 本篇继续我们的微软挖掘算法系列总结,前几篇我们分别介绍了:微软数据挖掘算法:Microsoft 决策树分析算法(1).微软数据挖掘算法:Microsoft 聚类分析算法(2).微软数据挖掘算法:Microsoft Naive Bayes 算法(3).微软数据挖掘算法:Microsoft 时序算法(5),后续还补充了二篇微软数据挖掘算法:结果预测篇(4).微软数据挖掘算法:Microsoft 时序算法之结果预测及其彩票预测(6),看样子有必要整理一篇目录了,不同的算法应用的场景也是不同的,每

Python中的Apriori关联算法-市场购物篮分析

数据科学Apriori算法是一种数据挖掘技术,用于挖掘频繁项集和相关的关联规则.本模块重点介绍什么是关联规则挖掘和Apriori算法,以及Apriori算法的用法.此外,在小型企业场景中,我们将借助Python编程语言构建一个Apriori模型. 什么是关联规则挖掘? 如前所述,Apriori算法用于关联规则挖掘.现在,什么是关联规则挖掘?关联规则挖掘是一种用于识别一组项目之间的频繁模式和关联的技术. 例如,了解客户的购买习惯.通过查找顾客放置在其“购物篮”中的不同商品之间的关联和关联,可以得出

使用excel进行数据挖掘(8)---- 购物篮分析

在配置环境后,可以使用excel进行数据挖掘. 环境配置问题可参阅: http://blog.csdn.net/xinxing__8185/article/details/46445435 样例 DMAddins_SampleData.xlsx 文件下载地址:http://download.csdn.net/detail/xinxing__8185/8780481 在数据表中,选择table analysis tools sample表,该表中是用户的信息统计,包括婚姻状况,性别,收入,子女,教

R语言和数据分析十大:购物篮分析

提到数据挖掘,我们的第一个反应是之前的啤酒和尿布的故事听说过,这个故事是一个典型的数据挖掘关联规则.篮分析的传统线性回归之间的主要差别的差别,对于离散数据的相关性分析: 常见的关联规则: 关联规则:牛奶=>卵子[支撑=2%,置信度=60%] 支持度:分析中的所有事务的2%同一时候购买了牛奶和鸡蛋,需设定域值,来限定规则的产生. 置信度:购买了牛奶的筒子有60%也购买了鸡蛋,需设定域值,来限定规则的产生. 最小支持度阈值和最小置信度阈值:由挖掘者或领域专家设定. 与关联分析相关的专业术语包含: 项

R语言与数据分析之十:购物篮分析

提到数据挖掘,我们第一反应就是之前听到的啤酒和尿不湿的故事,该故事就是典型的数据挖掘中的关联规则.购物篮分析区别于传统的线性回归的主要区别为,关联分析针对离散数据: 常见关联规则: 关联规则:牛奶=>鸡蛋[支持度=2%,置信度=60%] 支持度:分析中的全部事务的2%同时购买了牛奶和鸡蛋,需设定域值,来限定规则的产生: 置信度:购买了牛奶的筒子有60%也购买了鸡蛋,需设定域值,来限定规则的产生: 最小支持度阈值和最小置信度阈值:由挖掘者或领域专家设定. 与关联分析相关的专业术语包括: 项集:项(

浅谈数据挖掘中的关联规则挖掘

数据挖掘是指以某种方式分析数据源,从中发现一些潜在的有用的信息,所以数据挖掘又称作知识发现,而关联规则挖掘则是数据挖掘中的一个很重要的 课题,顾名思义,它是从数据背后发现事物之间可能存在的关联或者联系.举个最简单的例子,比如通过调查商场里顾客买的东西发现,30%的顾客会同时购买床 单和枕套,而购买床单的人中有80%购买了枕套,这里面就隐藏了一条关联:床单—>枕套,也就是说很大一部分顾客会同时购买床单和枕套,那么对于商 场来说,可以把床单和枕套放在同一个购物区,那样就方便顾客进行购物了.下面来讨论

[数据挖掘课程笔记]关联规则挖掘

两种度量: 支持度(support)  support(A→B) = count(AUB)/N (N是数据库中记录的条数) 自信度(confidence)confidence(A→B) = count(AUB)/count(A) 关联规则挖掘的基本两个步骤: 1.找出所有的频繁项集 2.由频繁项集产生强关联规则 由于整个数据库十分庞大,所以对第一步来说,若使用穷举法,搜索空间将是2d,d是项的个数.所以优化算法主要需要优化第一步.而频繁项集里的项的数目远小于数据库数据的数目,所以,在第二步中,我