目录

一、算法定义

二、经典例子

三、定义阐述

1、项集(Itemset)

2、事务T与事务集D

3、支持度计数(Support count)

4、支持度(Support)

5、频繁项集(Frequent Itemset)

6、关联规则

7、置信度(Confidence)

8、关联规则挖掘问题

四、挖掘关联规则(Mining Association Rules)

1、频繁项集产生(Frequent Itemset Generation):

2、规则的产生(Rule Generation):


一、算法定义

关联规则挖掘用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。

关联规则反映了一个事物与其他事物之间的相互依存性和关联性。

如果两个或多个事物之间存在一定的关联关系,那么,其中一个事物发生就能够预测与之相关联的其他事情的发生。

关联规则挖掘用于知识发现,而非预测,所以是属于无监督的机器学习算法。

二、经典例子

最为经典的栗子是啤酒与尿布。

沃尔玛在对商品销售数据进行数据挖掘分析时,发现啤酒和尿布经常被一起购买,这个关联关系的原因在于:过来买啤酒的爸爸总是会顺手再买尿布。将两者货架摆放在一起,其销量果然上升。

关联规则挖掘算法不仅被应用于购物篮分析,还被广泛的应用于网页浏览偏好挖掘,入侵检测,连续生产和生物信息学领域。

三、定义阐述

1、项集(Itemset)

指包含0个或多个项的集合,如包含k项则称为k-项集。

比如说一个顾客买了一袋子商品,那么这一袋子商品就是一个项集,其中的每一个商品就是一个项。

2、事务T与事务集D

一个事务T就是一个项集,每一个事务T均与一个唯一标识符Tid相联系。

不同的事务一起组成了事务集D,它构成了关联规则发现的事务数据库个数。

上边举得栗子中,每个顾客的一袋子商品(所有商品放到一个袋子里面)就是一个事务,那么以每个袋子单位,今天的销售量就是一个事务集。

3、支持度计数(Support count)

包含特定项集的事务个数,用符号 σ 表示,如 σ({milk,beer,bread})=2 ,表示今天同时有买个这3种商品的人次有2个。

4、支持度(Support)

指包含特定项集的事务数与总事务数的比值,用符号 s 表示,如 s({milk,beer,bread})=2/5 ,表示今天有2/5的顾客一次性同时购买了这3种商品。

5、频繁项集(Frequent Itemset)

指满足最小支持度阈值(minsup)的所有项集。

这个最小支持度阈值是给定的。

6、关联规则

关联规则是指形如 X→Y 的蕴含表达式,其中X和Y是不相交的项集。

如{milk,diaper}和{beer}。

7、置信度(Confidence)

指包含指定{Y,X}的事务数与包含{Y}或{X}的事务数的比值,用符号 s 表示。

jug举个栗子。

关联规则的数据挖掘 关联规则数据挖掘定义_关联规则的数据挖掘

关联规则的数据挖掘 关联规则数据挖掘定义_算法_02

8、关联规则挖掘问题

是指给定事务的集合T,关联规则发现是指找出支持度大于等于minsup并且置信度大于等于minconf所有规则,minsup和minconf是对应的支持度和置信度。

举个栗子。

 

关联规则的数据挖掘 关联规则数据挖掘定义_算法_03

给定最小支持度minsup为50%,最小置信度minconf为50%,挖掘关联规则 A→C .

支持度=support({A}&{C})=50%,

关联规则的数据挖掘 关联规则数据挖掘定义_算法_04

指定关联规则挖掘成功。

四、挖掘关联规则(Mining Association Rules)

大多数关联规则挖掘算法通常采取的一种策略是,将关联规则挖掘任务分解成如下两个主要的子任务:

1、频繁项集产生(Frequent Itemset Generation):

任务目标是发现满足最小支持度阈值的所有项集,这些项集称为频繁项集。

2、规则的产生(Rule Generation):

任务目标是从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称为强规则(Strong Rule)。

五、关联规则挖掘过程

在挖掘出频繁项集之后,再利用频繁项集生成关联规则,具体步骤如下:

先给定最小置信度。

1、根据每个频繁项集,找到它所有的非空真子集。

2、根据这些非空真子集,两两组成所有的关联规则。

3、计算所有的关联规则的置信度,移除小于最小置信度的规则,得到强关联规则。

注意,如果一个频繁项集是{A,B},那么可能的一个关联规则是A->B,说明某人买了A,大概率也会买B,但顺序反过来是不成立的。

关联规则挖掘的定义:给定一个交易数据集T,找出其中所有支持度support >= min_support、自信度confidence >= min_confidence的关联规则。

  有一个简单而粗鲁的方法可以找出所需要的规则,那就是穷举项集的所有组合,并测试每个组合是否满足条件,一个元素个数为n的项集的组合个数为2^n-1(除去空集),所需要的时间复杂度明显为O(2^N),对于普通的超市,其商品的项集数也在1万以上,用指数时间复杂度的算法不能在可接受的时间内解决问题。怎样快速挖出满足条件的关联规则是关联挖掘的需要解决的主要问题。