关联规则简介

35
关关关关关关

Upload: fisk

Post on 04-Jan-2016

53 views

Category:

Documents


4 download

DESCRIPTION

关联规则简介. 关联规则. 关联规则( Association Rules )反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么,其中一个事物就能够通过其他事物预测到。首先被 Agrawal, Imielinski and Swami 在 1993 年的 SIGMOD 会议上提出 . 关联规则挖掘是数据挖掘中最活跃的研究方法之一。典型的关联规则发现问题是对超市中的购物篮数据( Market Basket )进行分析。通过发现顾客放入购物篮中的不同商品之间的关系来分析顾客的购买习惯。. 案例. “尿布与啤酒”的故事。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 关联规则简介

关联规则简介

Page 2: 关联规则简介

关联规则( Association Rules )反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么,其中一个事物就能够通过其他事物预测到。首先被Agrawal, Imielinski and Swami 在 1993 年的SIGMOD 会议上提出 .

关联规则挖掘是数据挖掘中最活跃的研究方法之一。典型的关联规则发现问题是对超市中的购物篮数据( Market Basket )进行分析。通过发现顾客放入购物篮中的不同商品之间的关系来分析顾客的购买习惯。

关联规则关联规则

Page 3: 关联规则简介

“尿布与啤酒”的故事。

美国的沃尔玛超市对一年多的原始交易数据进行了详细的分析,得到一个意外发现:与尿布一起被购买最多的商品竟然是啤酒。借助于数据仓库和关联规则,商家发现了这个隐藏在背后的事实:美国的妇女们经常会嘱咐她们的丈夫下班以后要为孩子买尿布,而 30% ~ 40% 的丈夫在买完尿布之后又要顺便购买自己爱喝的啤酒。有了这个发现后,超市调整了货架的设置,把尿布和啤酒摆放在一起销售,从而大大增加了销售额。

案例案例

Page 4: 关联规则简介

70% 购买了牛奶的顾客将倾向于同时购买面包。 某网上书店向用户推荐相关书籍。

案例案例

Page 5: 关联规则简介

在买了一台 PC 之后下一步会购买?

案例案例

Page 6: 关联规则简介

在保险业务方面,如果出现了不常见的索赔要求组合,则可能为欺诈,需要作进一步的调查;

在医疗方面,可找出可能的治疗组合;

在银行方面,对顾客进行分析,可以推荐感兴趣的服务等等。

案例案例

Page 7: 关联规则简介

什么是规则? 规则形如 " 如果…那么… (If…Then…)", 前者为条件,后者为结果。例如一个顾客,如果买了可乐,那么他也会购买果汁。

如何来度量一个规则是否够好?有两个量,置信度(Confidence) 和支持度 (Support) 。假设有如下表的购买记录。

关联规则基本模型关联规则基本模型

Page 8: 关联规则简介

关联规则基本模型关联规则基本模型 __置信度置信度

置信度表示了这条规则有多大程度上值得可信。设条件的项的集合为 A, 结果的集合为 B 。置信度计算在 A 中,同时也含有 B 的概率 ( 即: if A ,then B 的概率 ) 。即 Confidence(AB)=P(B|A) 。例如计算“如果 Orange则Coke” 的置信度。由于在含有“橙汁”的 4 条交易中,仅有 2 条交易含有“可乐”。其置信度为 0.5 。

Page 9: 关联规则简介

关联规则基本模型关联规则基本模型 __支持度支持度

支持度计算在所有的交易集中,既有 A 又有 B 的概率。例如在 5 条记录中,既有橙汁又有可乐的记录有 2 条。则此条规则的支持度为 2/5=0.4 ,即Support(AB)=P(AB) 。

现在这条规则可表述为,如果一个顾客购买了橙汁 , 则有50%( 置信度 ) 的可能购买可乐。而这样的情况(即买了橙汁会再买可乐)会有 40%( 支持度 ) 的可能发生。

Page 10: 关联规则简介

关联规则的相关概念关联规则的相关概念 定义 1 项目与项集 设 I={i1,i2,…,im} 是 m 个不同项目的集合,每个

ik(k=1 , 2 ,……, m) 称为一个项目 (Item) 。 项目的集合 I 称为项目集合 (Itemset) ,简称为项集。其元素个数称为项集的长度,长度为 k 的项集称为 k- 项集 (k-Itemset) 。

Page 11: 关联规则简介

关联规则的相关概念关联规则的相关概念 定义 2 交易

每笔交易 T(Transaction) 是项集 I 上的一个子集,即 TI ,但通常 TI 。

对应每一个交易有一个唯一的标识——交易号,记作 TID

交易的全体构成了交易数据库 D ,或称交易记录集 D ,简称交易集 D 。

交易集 D 中包含交易的个数记为 |D| 。

Page 12: 关联规则简介

关联规则的相关概念关联规则的相关概念 定义 3 项集的支持度

对于项集 X , XI ,设定 count(XT) 为交易集D 中包含 X 的交易的数量

项集 X 的支持度 support(X) 就是项集 X 出现的概率,从而描述了 X 的重要性。

|D|

T)count(Xsupport(X)

Page 13: 关联规则简介

关联规则的相关概念关联规则的相关概念定义 4 项集的最小支持度与频繁集

发现关联规则要求项集必须满足的最小支持阈值,称为项集的最小支持度 (Minimum Support) ,记为supmin 。支持度大于或等于 supmin 的项集称为频繁项集,简称频繁集,反之则称为非频繁集。通常 k- 项集如果满足 supmin ,称为 k- 频繁集,记作 Lk 。

Page 14: 关联规则简介

关联规则的相关概念关联规则的相关概念定义 5 关联规则

关联规则 (Association Rule) 可以表示为一个蕴含式:

R: XY

其中: XI, YI ,并且 XY= 。例如: R :牛奶→面包

Page 15: 关联规则简介

关联规则的相关概念关联规则的相关概念定义 6 关联规则的支持度

对于关联规则 R: XY ,其中 XI, YI ,并且 XY= 。规则 R 的的支持度 (Support) 是交易集中同时包含X和 Y 的交易数与所有交易数之比。

|D|

Y)count(XY)support(X

Page 16: 关联规则简介

关联规则的相关概念关联规则的相关概念定义 7 关联规则的置信度

对于关联规则 R: XY ,其中 XI,YI ,并且XY= 。规则 R 的置信度 (Confidence) 是指包含 X和 Y 的交易数与包含 X 的交易数之比

support(X)

Y)support(XY)(X confidence

一般来说,只有支持度和置信度均较高的关联规则才是用户感兴趣的、有用的关联规则。一般来说,只有支持度和置信度均较高的关联规则才是用户感兴趣的、有用的关联规则。

Page 17: 关联规则简介

关联规则的相关概念关联规则的相关概念定义 8 关联规则的最小支持度和最小置信度

关联规则的最小支持度也就是衡量频繁集的最小支持度 (Minimum Support) ,记为 supmin ,它用于衡量规则需要满足的最低重要性。关联规则的最小置信度 (Minimum Confidence) 记为 confmin ,它表示关联规则需要满足的最低可靠性。

Page 18: 关联规则简介

关联规则的相关概念关联规则的相关概念定义 9 强关联规则

如果规则 R:XY 满足 support(XY)supmin 且confidence(XY)confmin ,称关联规则 XY 为强关联规则,否则称关联规则 XY 为弱关联规则。在 挖 掘 关 联 规 则 时 , 产 生 的 关 联 规 则 要 经 过supmin和 confmin 的衡量,筛选出来的强关联规则才能用于指导商家的决策。

Page 19: 关联规则简介

关联规则挖掘举例关联规则挖掘举例

对于规则 AC :支持度 = support({A,C }) = 50%置信度 = support({A,C })/support({A})

= 66.6%

交易ID 购买商品2000 A,B,C1000 A,C4000 A,D5000 B,E,F

频繁项集 支持度{A} 75%{B} 50%{C} 50%{A,C} 50%

假设最小值支持度为 50%,最小置信度为 50%

规则 AC 满足最小支持度和最小置信度,所以它是强关联规则

Page 20: 关联规则简介

关联规则挖掘的步骤关联规则挖掘的步骤 关联规则挖掘是一个两步的过程:

找出所有频繁项集

由频繁项集产生强关联规则,这些规则必须大于或者等于最小支持度和最小置信度

大于或者等于最小支持度的项集大于或者等于最小支持度的项集

Page 21: 关联规则简介

Apriori 算法Apriori 算法是一种经典的生成布尔型关联规则的频繁项集挖掘算法。

Apriori 算法将发现关联规则的过程分为两个步骤:通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阈值的项集;利用频繁项集构造出满足用户最小置信度的规则。

挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。

Page 22: 关联规则简介

Apriori 算法的重要性质

性质 1 :频繁项集的子集必为频繁项集

性质 2 :非频繁项集的超集一定是非频繁的

假设项集 {A,C} 是频繁项集,则 {A} 和 {C} 也为频繁项集假设项集 {A,C} 是频繁项集,则 {A} 和 {C} 也为频繁项集

假设项集 {D} 不是频繁项集,则 {A,D} 和 {C,D} 也不是频繁项集

假设项集 {D} 不是频繁项集,则 {A,D} 和 {C,D} 也不是频繁项集

Page 23: 关联规则简介

Apriori 算法举例现有 A 、 B、 C 、 D 、 E 五种商品的交易记录表,找出所有频繁项集,假设最小支持度 >=50%, 最小置信度 >=50%

交易号 商品代码T1 A、C、DT2 B、C、ET3 A、B、C、ET4 B、E

Page 24: 关联规则简介

Apriori 算法举例 _ 产生频繁项集项集 支持度{A} 50%{B} 75% {C} 75%{D} 25%{E} 75%

C1

K=1

支持度 <50

{A} 50%{B} 75%{C} 75%{E} 75%

L1

项集 支持度{A,B} 25%{A,C} 50%{A,E} 25%{B,C} 50%{B,E} 75%{C,E} 50%

C2

K=2 支持度 <50

支持度 <50

{A,C} 50%{B,C} 50%{B,E} 75%{C,E} 50%

L2

Page 25: 关联规则简介

Apriori 算法举例 _ 产生频繁项集{A,C} 50%{B,C} 50%{B,E} 75%{C,E} 50%

L2

{A,C}+{B,C} {A,B,C}

{A,C}+{B,E} 超过三项

{A,C}+{C,E} {A,C,E}

{B,C}+{B,E} {B,C,E}

{B,C}+{C,E} {B,C,E}

{B,E}+{C,E} {B,C,E}

从K2中求可用来计算的的三项集

{A,B,C} 25%

{A,C,E} 25%

50%{B,C,E}

C3

支持度 <50

支持度 <50

L3 {B,C,E} 50%

Page 26: 关联规则简介

Apriori 算法举例 _ 产生关联规则 对于频繁项集 {B,C,E},它的非空子集有 {B} 、

{C} 、 {E} 、 {B,C} 、 {B,E} 、 {C,E} 。以下就是据此获得的关联规则及其置信度。

规则 置信度 Confidence

BCE 66.7%

CBE 66.7%

EBC 66.7%

CEB 1

BEC 66.7%

BCE 1

置信度≥ 50%( 最小置信度 ) ,都是强关联规则

置信度≥ 50%( 最小置信度 ) ,都是强关联规则

Page 27: 关联规则简介

Apriori 算法弊端需要多次扫描数据表如果频繁集最多包含 10 个项,那么就需要扫描交易数据表 10 遍,这需要很大的 I/O 负载

产生大量频繁集若有 100 个项目,可能产生候选项数目

1 2 100 30100 100 100... 1.27*10C C C

Page 28: 关联规则简介

FP-growth 算法•Jiawei Han 等人在 2000 年提出了一种基于 FP-树的关联规则挖掘算法 FP_growth ,它采取“分而治之”的策略,将提供频繁项目集的数据库压缩成一棵频繁模式树( FP- 树)。•仅两次扫描数据库。

理论和实验表明该算法优于 Apriori 算法。

Page 29: 关联规则简介

FP-growth 算法

Page 30: 关联规则简介

其他关联规则挖掘算法 约束性关联规则挖掘算法仅设置支持度和置信度阈值,缺乏用户控制,可能产生过多的规则,实

际效果可能并不好。用户关心的是某些特定的关联规则,这需要把一些约束条件引入到挖掘算法中,从而筛选出符合约束条件的有用规则,提高算法的运行效率和用户满意度。

增量式关联规则挖掘算法数据集不断增长,有新的数据加入后,重新挖掘很费时。增量式关联规

则挖掘算法是当数据库变化后,在原挖掘结果的基础上生成新的关联规则,删除过时的关联规则。

多层关联规则挖掘 ……

Page 31: 关联规则简介

关联规则的价值衡量 客观上,使用“支持度和置信度”框架可能会产生

一些不正确的规则。只凭支持度和置信度阈值未必总能找出符合实际的规则。

例:歌曲 A 、歌曲 C 为小众歌曲,歌曲 B 为口水歌,共有 10万个用户,有 200 个人听过歌曲 A ,这 200 个人里面有 60 个听过口水歌 B ,有 40个人听过歌曲 C 。听过歌曲 C 的人数是 300 ,听过口水歌 B 的人为50000 。

例:歌曲 A 、歌曲 C 为小众歌曲,歌曲 B 为口水歌,共有 10万个用户,有 200 个人听过歌曲 A ,这 200 个人里面有 60 个听过口水歌 B ,有 40个人听过歌曲 C 。听过歌曲 C 的人数是 300 ,听过口水歌 B 的人为50000 。

Confidence(A→ B) = 0.3 , Confidence(A→ C) = 0.2Confidence(A→ B) = 0.3 , Confidence(A→ C) = 0.2

但是 10W人里面有 5W听过歌曲 B ,有一半的用户都喜欢歌曲 B ,但听过歌曲 A 的人里面只有 30% 的人喜欢歌曲 B

听过歌曲 A 的人不喜欢歌曲B

貌似 A 和 B更相关

矛盾的规则,如何评价?

Page 32: 关联规则简介

关联规则价值衡量提升度提升度Lift(AB)=Confidence(AB)/Support(B)=

( )

( ) ( )

p AB

p A p B

引入提升度 Lift ,以度量此规则是否可用。它描述的是:相对于不用规则,使用规则可以提高多少。Lift(A→B) =Confidence(AB)/Support(B)=0.3/0.5=0.6Lift(A→C)=Confidence(AC)/Support(C)=0.2/(300/100000)=66.7歌曲 A与 B 负相关, A与 C正相关。Lift 大于 1 ,表示使用这条规则进行推荐能提升用户听歌曲 C的概率。Lift 小于 1 ,则表示使用这条规则来进行推荐,还不如不推荐,让顾客自行选择好了。

Confidence(A→ B) = 0.3Confidence(A→ C) = 0.2Support(B)=0.5Support(C)=300/100000

Confidence(A→ B) = 0.3Confidence(A→ C) = 0.2Support(B)=0.5Support(C)=300/100000

Page 33: 关联规则简介

关联规则的价值衡量

主观上,一个规则的有用与否最终取决于用户的感觉,只有用户才能决定规则的有效性、可行性。所以,应该将需求和关联规则挖掘方法紧密地结合起来。例如使用“约束性关联规则挖掘算法”,将约束条件与算法紧密结合,既能提高数据挖掘效率,又能明确数据挖掘的目标。

Page 34: 关联规则简介

参考文献:[1] 高明 . 关联规则挖掘算法的研究及其应用 [D].山东师范大学 . 2006[2]李彦伟 . 基于关联规则的数据挖掘方法研究 [D].江南大学 . 2011[3]肖劲橙,林子禹,毛超 . 关联规则在零售商业的应用 [J]. 计算机工程 .2004,30(3):189-190.[4]秦亮曦,史忠植 . 关联规则研究综述 [J].广西大学学报 .2005,30(4):310-317.[5]陈志泊,韩慧,王建新,孙俏,聂耿青.数据仓库与数据挖掘[M].北京:清华大学出版社 .2009.[6]沈良忠 . 关联规则中 Apriori 算法的 C# 实现研究 [J].电脑知识与技术 .2009,5(13):3501-3504.[7]赵卫东 . 商务智能 (第二版 )[M].北京:清华大学出版社 .2011.

Page 35: 关联规则简介

The endThank you~