关联分析--概述(项集、关联规则、支持度、置信度、提升度)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关联分析--概述(项集、关联规则、支持度、置信度、提升度)相关的知识,希望对你有一定的参考价值。
参考技术A 1.支持度(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的事务集的个数(个数也叫次数)。
2.置信度 (Confidence)
置信度表示在先决条件X发生的情况下,由关联规则”X→Y“推出Y的概率。即在含有X的项集中,含有Y的可能性,公式为:
Confidence(X→Y) = P(Y|X) = P(X,Y) / P(X) = P(XUY) / P(X)
3.提升度(Lift)
提升度表示含有X的条件下,同时含有Y的概率,与Y总体发生的概率之比。
Lift(X→Y) = P(Y|X) / P(Y)
例1,已知有1000名顾客买年货,分为甲乙两组,每组各500人,其中甲组有500人买了茶叶,同时又有450人买了咖啡;乙组也有500人,但只有450人买了咖啡,没有人买茶叶,如表(1)所示:
试求解 1)”茶叶→咖啡“的支持度
2) "茶叶→咖啡"的置信度
3)”茶叶→咖啡“的提升度
分析:
设X= 买茶叶,Y=买咖啡,则规则”茶叶→咖啡“表示”即买了茶叶,又买了咖啡“,
1)对甲组,有:
Sup1(X→Y) = Num(XUY)/Num(I) = 450/500 = 90%
Conf1(X→Y) = Num(XUY)/Num(X) = 450/500 = 90%
从甲组可以看出,X,Y有比较强的相关性。
2)对乙组,有:
Sup2(X→Y) = Num(XUY)/Num(I) = 0/500 = 0%
Conf2(X→Y) = Num(XUY)/Num(X) = 0/0 = 0%
从乙组可以看出,X,Y没有相关性。
3) 从总体上,讨论X,Y有没有相关性,可以使用总体的LiftX,Y提升度来判别。
则总的支持度、置信度、提升度,分别如下:
”茶叶→咖啡“总的支持度为: SupX→Y = Num(XUY)/Num(all) = 450/1000 = 45%
”茶叶→咖啡“总的置信度度为: ConfX→Y = Num(XUY)/Num(X) = 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%,但它不是一条有效的关联规则。
满足最小支持度和最小置信度的规则,叫做“强关联规则”。然而,强关联规则里,也分有效的强关联规则和无效的强关联规则。
如果Lift(X→Y)>1,则规则“X→Y”是有效的强关联规则。
如果Lift(X→Y) <=1,则规则“X→Y”是无效的强关联规则。
特别地,如果Lift(X→Y) =1,则表示X与Y相互独立。
计算支持度、置信度、提升度
全部声量:100 宝宝月龄声量:45 产地声量:19 宝宝月龄与产地交集:10
宝宝月龄-产地支持度:10/100
宝宝月龄-产地置信度:10/45
宝宝月龄-产地提升度:(10/45) / (19/100)
以上是关于关联分析--概述(项集、关联规则、支持度、置信度、提升度)的主要内容,如果未能解决你的问题,请参考以下文章
python实现apriori算法的关联规则之支持度置信度提升度
python实现apriori算法的关联规则之支持度置信度提升度
R语言使用apriori算法进行关联规则挖掘实战:关联规则概念频繁项集支持度(support)置信度(confidence)提升度(lift)apriori算法