赞
踩
Apriori 是一种关联规则挖掘算法,一般通过支持度和置信度来做频繁项集挖掘。主要用于发现隐藏在大型数据集中有意义的联系。以尿布和啤酒为例,对应关联规则的表示:尿布 -> 啤酒。这就是使用关联分析方法所得到的结果。在进行关联分析时,我们常常会遇到这样两个问题:
独立事件:P(AB) =P(A) P(B),称A,B 相互独立。概念上就是AB同时发生的概率等于事件A发生的概率乘以事件B发生的概率。
A. 项集:在关联分析中,包含0个或者多个的项的集合称为项集。如果一个项集包含k个项,那么就称为k-项集。比如{牛奶,咖啡}则称为2项集。
B. 支持度: 支持度用来确定指定项集的频繁程度,即给定项集在所有的数据集中出现的频率,例如Support(X,Y) = N(X,Y)/N,N(X,Y)表示同时包含X,Y的项集数量,N表示数据集总数量。
C. 置信度: 置信度则是用来确定Y在包含X的项集中出现的频繁程度,即Confidence(X==>Y) = N(X,Y)/N(X)
支持度和置信度的意义在于,支持度是一个重要的度量,如果支持度很低,代表这个规则其实只是偶然出现,基本没有意义。因此,支持度通常用来删除那些无意义的规则。而置信度则是通过规则进行推理具有可靠性。用c(X->Y)来说,只有置信度越高,Y出现在包含X的事务中的概率才越大,否则这个规则也没有意义。通常我们在做关联规则发现的时候都会设定支持度和置信度阈值 minsup 和minconf , 而关联规则发现则是发现那些支持度大于等于minsup 并且置信度大于 minconf的所有规则。所以,提高关联分析算法效率最简单的办法则是提高支持度和置信度的阈值。
还是以上面的1000个交易记录为例子,500个交易包含购买商品A,700个交易包含购买商品B,300个交易同时包含购买A、B商品。Support(AB)=0.3,且Confidence(A==>B)= 0.6。不管支持度和置信度看上去都很高。但是这样的关联规则是有问题的。
Confidence(A==>B)= 0.6表示用户在购买了商品A后有0.6的概率的去购买商品B,而在没有任何前提条件时,用户反而有(700/1000=0.7)的概率去购买商品B,也就是说在购买了商品A的条件反而会降低用户去购买商品B的概率。这样看来使用(A==>B)这条规则来进行推荐,还不如不推荐,随机对顾客推荐好了。为此引入另外一个提升度-Lift,以衡量此规则是否可用。
Lift的物理含义,直接参考:关联规则(apriori algorithm)(1) - zgw21cn - 博客园。我这里直接截图了:
也就是说这lift指标表示了一条关联规则是否有效,这里表示度量(A==>B)这条规则有效程度的值为1.32。满足最小支持度和最小置信度的规则,叫做“强关联规则”。然而,强关联规则里,也分有效的强关联规则和无效的强关联规则。
如果Lift(X→Y)>1,则规则“X→Y”是有效的强关联规则。
如果Lift(X→Y) <=1,则规则“X→Y”是无效的强关联规则。
特别地,如果Lift(X→Y) =1,则表示X与Y相互独立。
这里再推荐一篇博客(http://blog.csdn.net/rav009/article/details/8985322)的结论:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。