您好,欢迎访问三七文档
大数据时代算法-关联规则简介关联规则(AssociationRules)反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么,其中一个事物就能够通过其他事物预测到。首先被Agrawal,ImielinskiandSwami在1993年的SIGMOD会议上提出.关联规则挖掘是数据挖掘中最活跃的研究方法之一。典型的关联规则发现问题是对超市中的购物篮数据(MarketBasket)进行分析。通过发现顾客放入购物篮中的不同商品之间的关系来分析顾客的购买习惯。关联规则“尿布与啤酒”的故事。美国的沃尔玛超市对一年多的原始交易数据进行了详细的分析,得到一个意外发现:与尿布一起被购买最多的商品竟然是啤酒。借助于数据仓库和关联规则,商家发现了这个隐藏在背后的事实:美国的妇女们经常会嘱咐她们的丈夫下班以后要为孩子买尿布,而30%~40%的丈夫在买完尿布之后又要顺便购买自己爱喝的啤酒。有了这个发现后,超市调整了货架的设置,把尿布和啤酒摆放在一起销售,从而大大增加了销售额。案例70%购买了牛奶的顾客将倾向于同时购买面包。某网上书店向用户推荐相关书籍。案例在买了一台PC之后下一步会购买?案例在保险业务方面,如果出现了不常见的索赔要求组合,则可能为欺诈,需要作进一步的调查;在医疗方面,可找出可能的治疗组合;在银行方面,对顾客进行分析,可以推荐感兴趣的服务等等。案例什么是规则?规则形如如果…那么…(If…Then…),前者为条件,后者为结果。例如一个顾客,如果买了可乐,那么他也会购买果汁。如何来度量一个规则是否够好?有两个量,置信度(Confidence)和支持度(Support)。假设有如下表的购买记录。关联规则基本模型关联规则基本模型_置信度置信度表示了这条规则有多大程度上值得可信。设条件的项的集合为A,结果的集合为B。置信度计算在A中,同时也含有B的概率(即:ifA,thenB的概率)。即Confidence(AB)=P(B|A)。例如计算“如果Orange则Coke”的置信度。由于在含有“橙汁”的4条交易中,仅有2条交易含有“可乐”。其置信度为0.5。关联规则基本模型_支持度支持度计算在所有的交易集中,既有A又有B的概率。例如在5条记录中,既有橙汁又有可乐的记录有2条。则此条规则的支持度为2/5=0.4,即Support(AB)=P(AB)。现在这条规则可表述为,如果一个顾客购买了橙汁,则有50%(置信度)的可能购买可乐。而这样的情况(即买了橙汁会再买可乐)会有40%(支持度)的可能发生。关联规则的相关概念定义1项目与项集设I={i1,i2,…,im}是m个不同项目的集合,每个ik(k=1,2,……,m)称为一个项目(Item)。项目的集合I称为项目集合(Itemset),简称为项集。其元素个数称为项集的长度,长度为k的项集称为k-项集(k-Itemset)。关联规则的相关概念定义2交易每笔交易T(Transaction)是项集I上的一个子集,即TI,但通常TI。对应每一个交易有一个唯一的标识——交易号,记作TID交易的全体构成了交易数据库D,或称交易记录集D,简称交易集D。交易集D中包含交易的个数记为|D|。关联规则的相关概念定义3项集的支持度对于项集X,XI,设定count(XT)为交易集D中包含X的交易的数量项集X的支持度support(X)就是项集X出现的概率,从而描述了X的重要性。|D|T)count(Xsupport(X)关联规则的相关概念定义4项集的最小支持度与频繁集发现关联规则要求项集必须满足的最小支持阈值,称为项集的最小支持度(MinimumSupport),记为supmin。支持度大于或等于supmin的项集称为频繁项集,简称频繁集,反之则称为非频繁集。通常k-项集如果满足supmin,称为k-频繁集,记作Lk。关联规则的相关概念定义5关联规则关联规则(AssociationRule)可以表示为一个蕴含式:R:XY其中:XI,YI,并且XY=。例如:R:牛奶→面包关联规则的相关概念定义6关联规则的支持度对于关联规则R:XY,其中XI,YI,并且XY=。规则R的的支持度(Support)是交易集中同时包含X和Y的交易数与所有交易数之比。|D|Y)count(XY)support(X关联规则的相关概念定义7关联规则的置信度对于关联规则R:XY,其中XI,YI,并且XY=。规则R的置信度(Confidence)是指包含X和Y的交易数与包含X的交易数之比support(X)Y)support(XY)(Xconfidence一般来说,只有支持度和置信度均较高的关联规则才是用户感兴趣的、有用的关联规则。关联规则的相关概念定义8关联规则的最小支持度和最小置信度关联规则的最小支持度也就是衡量频繁集的最小支持度(MinimumSupport),记为supmin,它用于衡量规则需要满足的最低重要性。关联规则的最小置信度(MinimumConfidence)记为confmin,它表示关联规则需要满足的最低可靠性。关联规则的相关概念定义9强关联规则如果规则R:XY满足support(XY)supmin且confidence(XY)confmin,称关联规则XY为强关联规则,否则称关联规则XY为弱关联规则。在挖掘关联规则时,产生的关联规则要经过supmin和confmin的衡量,筛选出来的强关联规则才能用于指导商家的决策。关联规则挖掘举例对于规则AC:支持度=support({A,C})=50%置信度=support({A,C})/support({A})=66.6%交易ID购买商品2000A,B,C1000A,C4000A,D5000B,E,F频繁项集支持度{A}75%{B}50%{C}50%{A,C}50%假设最小值支持度为50%,最小置信度为50%规则AC满足最小支持度和最小置信度,所以它是强关联规则关联规则挖掘的步骤关联规则挖掘是一个两步的过程:找出所有频繁项集由频繁项集产生强关联规则,这些规则必须大于或者等于最小支持度和最小置信度大于或者等于最小支持度的项集Apriori算法Apriori算法是一种经典的生成布尔型关联规则的频繁项集挖掘算法。Apriori算法将发现关联规则的过程分为两个步骤:通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阈值的项集;利用频繁项集构造出满足用户最小置信度的规则。挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。Apriori算法的重要性质性质1:频繁项集的子集必为频繁项集性质2:非频繁项集的超集一定是非频繁的假设项集{A,C}是频繁项集,则{A}和{C}也为频繁项集假设项集{D}不是频繁项集,则{A,D}和{C,D}也不是频繁项集Apriori算法举例现有A、B、C、D、E五种商品的交易记录表,找出所有频繁项集,假设最小支持度=50%,最小置信度=50%交易号商品代码T1A、C、DT2B、C、ET3A、B、C、ET4B、EApriori算法举例_产生频繁项集项集支持度{A}50%{B}75%{C}75%{D}25%{E}75%C1K=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%C2K=2支持度50支持度50{A,C}50%{B,C}50%{B,E}75%{C,E}50%L2Apriori算法举例_产生频繁项集{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支持度50L3{B,C,E}50%Apriori算法举例_产生关联规则对于频繁项集{B,C,E},它的非空子集有{B}、{C}、{E}、{B,C}、{B,E}、{C,E}。以下就是据此获得的关联规则及其置信度。规则置信度ConfidenceBCE66.7%CBE66.7%EBC66.7%CEB1BEC66.7%BCE1置信度≥50%(最小置信度),都是强关联规则Apriori算法弊端需要多次扫描数据表如果频繁集最多包含10个项,那么就需要扫描交易数据表10遍,这需要很大的I/O负载产生大量频繁集若有100个项目,可能产生候选项数目1210030100100100...1.27*10CCCFP-growth算法•JiaweiHan等人在2000年提出了一种基于FP-树的关联规则挖掘算法FP_growth,它采取“分而治之”的策略,将提供频繁项目集的数据库压缩成一棵频繁模式树(FP-树)。•仅两次扫描数据库。理论和实验表明该算法优于Apriori算法。FP-growth算法其他关联规则挖掘算法约束性关联规则挖掘算法仅设置支持度和置信度阈值,缺乏用户控制,可能产生过多的规则,实际效果可能并不好。用户关心的是某些特定的关联规则,这需要把一些约束条件引入到挖掘算法中,从而筛选出符合约束条件的有用规则,提高算法的运行效率和用户满意度。增量式关联规则挖掘算法数据集不断增长,有新的数据加入后,重新挖掘很费时。增量式关联规则挖掘算法是当数据库变化后,在原挖掘结果的基础上生成新的关联规则,删除过时的关联规则。多层关联规则挖掘……关联规则的价值衡量客观上,使用“支持度和置信度”框架可能会产生一些不正确的规则。只凭支持度和置信度阈值未必总能找出符合实际的规则。例:歌曲A、歌曲C为小众歌曲,歌曲B为口水歌,共有10万个用户,有200个人听过歌曲A,这200个人里面有60个听过口水歌B,有40个人听过歌曲C。听过歌曲C的人数是300,听过口水歌B的人为50000。Confidence(A→B)=0.3,Confidence(A→C)=0.2但是10W人里面有5W听过歌曲B,有一半的用户都喜欢歌曲B,但听过歌曲A的人里面只有30%的人喜欢歌曲B听过歌曲A的人不喜欢歌曲B貌似A和B更相关矛盾的规则,如何评价?关联规则价值衡量提升度Lift(AB)=Confidence(AB)/Support(B)=()()()pABpApB引入提升度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关联规则的价值衡量主观上,一个规则的有用与否最终取决于用户的感觉,只有用户才能决定规则的有效性、可行性。所以,应该将需求和关联规则挖掘方法紧密地结合起来。例如使用“约束性关联规则挖掘算法”,将约束条件与算法紧密结合,既能提高数据挖掘效率,又能明确数据挖掘的目标。参考文献:[1]高明.关联规则挖掘算法的研究及其应用[D].山东师范大学.2006[2]李彦伟.基于关联规则的数据挖掘方法研究[D].江南大学.2011[3]肖劲橙,林子禹,毛超.关联规则在零售商业的应用[J].计算机工程.2004,30(3):189-190.[4
本文标题:数据挖掘与关联规则
链接地址:https://www.777doc.com/doc-2333396 .html