1.关联规则分析的定义
关联分析(Association Analysis)用于发现隐藏在大型数据集中的令人感兴趣的联系。联系的表示方式一般为关联规则或频繁项集,例:{尿布}→{啤酒}。
2.关联规则分析的基本概念
项集:项的集合称为项集。一个包含k个数据项的项集就称为k−项集。
项集的支持度:整个数据集中包含该项集的事务数
关联规则:形如X –> Y 的蕴涵式,其中X,Y不相交。
关联规则的置信度:对于蕴含式X→Y,置信度为P(Y/X)=P(XY)/P(X)=support(X∪Y)/support(X)=support_count(X∪Y)/support_count(X),
上式表明:关联规则置信度通过项集的支持度计算得出
3.关联分析的任务
找出数据集中隐藏的强规则,通常分为两个步骤,首先在数据集中找出频繁项集(支持度大于实现给定的阈值),然后从频繁项集中提取所有高置信度的规则。
4.频繁项集发现的经典算法
经典的发现频繁项集的算法:Apriori算法。
Apriori算法具有一个Apriori性质,即先验原理来控制候选项集的指数增长。
Apriori性质(先验原理):如果一个项集是频繁的,则它的所有子集也是频繁的,相反:如果一个项集是非频繁的,则它的所有超集也一定是非频繁的。
算法过程主要分为连接和剪枝
5.强关联规则的生成
设存在频繁项集X={A,B,C},则由X可产生的非空真子集为{A,B},{A,C},{B,C},{A},{B},{C},进而得出的6个关联规则:
{A,B}→C,{A,C}→B,{B,C}→A,C→{A,B},B→{A,C},A→{B,C}。
然后分别计算每个规则的置信度,当置信度大于给定阈值时,则关联规则为强关联规则。强关联规则同时满足最小支持率和最小置信度。
6.关联规则的评估
- 支持度(Support)
支持度表示项集{X,Y}在总项集里出现的概率。公式为:
Support(X→Y) = P(X,Y) / P(I) = P(X∪Y) / P(I) = num(XUY) / num(I)
其中,I表示总事务集。num()表示求事务集里特定项集出现的次数。
比如,num(I)表示总事务集的个数
num(X∪Y)表示含有{X,Y}的事务集的个数(个数也叫次数)。
-
置信度 (Confidence)
置信度表示在先决条件X发生的情况下,由关联规则”X→Y“推出Y的概率。即在含有X的项集中,含有Y的可能性,公式为:
Confidence(X→Y) = P(Y|X) = P(X,Y) / P(X) = P(XUY) / P(X)
-
提升度(Lift)
提升度表示X发生的条件下,同时Y发生的概率,与不考虑X的条件下Y发生的概率之比。
Lift(X→Y) = P(Y|X) / P(Y)
满足最小支持度和最小置信度的关联规则称为强关联规则,然而强关联规则并不一定是有效的规则。强关联规则是否有效,取决于提升度Lift。
Lift(X→Y)≤1,关联规则X→Y无效。特别的,当Lift(X→Y)=1,X与Y相互独立。
Lift(X→Y)>1时,关联规则X→Y有效。Lift(X→Y)越大,表示X的发生对Y发生的提升度越大,X和Y的关联性越强。
eg1.
已知有1000名顾客买年货,分为甲乙两组,每组各500人,其中甲组有500人买了茶叶,同时又有450人买了咖啡;乙组有450人买了咖啡,如表所示:
分组 | 买茶叶人数 | 买咖啡人数 |
甲组(500人) | 500 | 450 |
乙组(500人) | 0 | 450 |
试求解 1)”茶叶→咖啡“的支持度
2) "茶叶→咖啡"的置信度
3)”茶叶→咖啡“的提升度
分析:
设X= {买茶叶},Y={买咖啡},则规则”茶叶→咖啡“表示”即买了茶叶,又买了咖啡“,于是,”茶叶→咖啡“的支持度为
Support(X→Y) = 450 / 500 = 90%
"茶叶→咖啡"的置信度为
Confidence(X→Y) = 450 / 500 = 90%
”茶叶→咖啡“的提升度为
Lift(X→Y) = Confidence(X→Y) / P(Y) = 90% / ((450+450) / 1000) = 90% / 90% = 1
由于提升度Lift(X→Y) =1,表示X与Y相互独立,即是否有X,对于Y的出现无影响。也就是说,是否购买咖啡,与有没有购买茶叶无关联。即规则”茶叶→咖啡“不成立,或者说关联性很小,几乎没有,虽然它的支持度和置信度都高达90%,但它不是一条有效的关联规则。