第2l卷第6期2011年6月计算机技术与发展COMPliTERTECHNOLOGYANDDEVELOPMENTVol-2lJuneNo.62011基于关联规则数据挖掘Apriori算法的研究与应用郭.涛,张代远(南京邮电大学计算机学院,江苏南京210003)摘要:目前在我国,对数据挖掘技术的研究与应用并不是很广泛。大多数数据库只能实现数据的录入、查询、统计等较低层次的功能。无法发现数据中存在的各种有用的信息。基于关联规则的数据挖掘主要用于发现数据集中项目之间的联系。以超市购物为例,目的在于找出顾客所购买商品之间的内在关联。利用Apfiofi算法的先验原理,减少Apfiofi算法在搜索频繁项目集时对候选式的搜索次数,并在对顾客购买的商品模型进行抽象的基础上,利用vc++与8ccess数据库实现的算法系统,对所购买的商品之间的内在关联进行模拟分析。根据得到的数据分析出置信度较高的几种商品,通过对这些商品集中摆放,可以提高收益,从而证明改进的Apfiofi的实用性。关键词:数据挖掘;关联规则;A晒ori算法中图分类号:TP301.6文献标识码:A文章编号:1673—629X(2011)06—0101—03ResearchandApplicationonAssociationRulesBasedonAprioriAlgorithmGUOTao,ZHANGDai-yuan(Coll.ofComputer。NanjingUniv.ofPostsandTelecommunications。Nanjing210003.China)Abstract:AtpresentinChina。dataminingresearchandapplicationisstatisticsanddataminingisnotwidelyaused.Mostofthedatabaseonlyfordataentry,query。otherlower-levelfunctions。cannotfindthedatathatexistsinmainlyusedfortherelevantlinksbetweenprio畦principledamitems.Su哪afl(etvarietyofusefulinformation.Associationmlesfoundinofofshoppingistakenforexample,tofindrelevancycnstom粥’buying.ApplyingabstractingmodelrelationareofApriori。thenumberofsearchingforfrequentitemSetsisreduced.Onthefoundationofcustomers’buyingandimplementationofalgorithm—basedsystemabasedfewonVc++andac。essdatabase-intrinsicofCOl'-ofgoodspurchasedissimulatedandanalyzed.Incon硷willbeandincreased。ifcommodities丽tllahighdegreehasbeenconfidenceputtogether.AccordingtOabove-mentionedtheoryrules;Apriorianalysis.thepracticalityofimproved—algorithmproved.Keywords:datamining;associationalg嘶thinO引言关联规则最早运用于超市的购物篮,关联规则概念提出的目的在于揭示给定数据集中数据项之间内在关联以及存在的各种有用的信息,根据所挖掘的潜在品情况进行抽样数据处理,得出相关结果并对其进行分析。1数据挖掘与关联规则1.1数据挖掘当前,数据挖掘公认的定义是由Fayyad给出的:数据挖掘是一个用以确定数据中有效的、未知的、新颖的依赖关系,可以从一个数据项的信息来推断其他相关联的数据项的信息…。如今关联规则已经被推广到许多领域,只要涉及到从大型的数据集中获取知识的问题,关联规则都可能成为有力的工具。文中通过对Apriori算法的研究,设计实现了一个关联规则挖掘算法的原型系统,对某超市在一个月内的顾客购买商的、具有潜在可用性并且最终可被理解的模式的重要处理过程¨’3J。1.2关联规则关联规则是指在日志数据、关系数据或者其他信收稿日期:2010—11—25;修回日期:201l—03—03作者简介:郭涛(1987-)。男,硕士,研究方向为智能计算、神经网络;张代远。教授,研究方向为神经网络、演化计算、计算机体系结构。息载体中,存在于项目集合或对象集合之间的频繁模式、相关性或因果结构。关联规则的获取主要是通过数据挖掘的方法从大量的事件记录数据库中找出那些频繁模式H1。万方数据・102・计算机技术与发展第2l卷关联规则的传统算法步骤足:首先找出所有的频繁项目集,然后由频繁项目集产生满足最小置信度和最小支持度的规则。关联规则中的支持度和置信度分本思想可知:在每一次计算候选项目集时会循环产生过多的项目组合,其中包含许多不应该参与组合的元素,没有进行预处理。除此之外,在K维候选集,判断某个元素的(K一1)子集不是(K一1)维频繁集时,需要在数据库进行全部的比较∽1,这种不断的重复匹配比较,会增加系统的I/0负担H…。2.3算法的改进首先在这里给出Apriofi算法的先验原理:如果一个项目集是频繁的,那么它的所有子集都是频繁的。先验原理成立的原因:VX,Y:(X∈l,)考s(X)之s(y)即一个项目集的支持度不会超过其任何子集的支持度,该性质称作支持度的反单调性质。Apriofi先验原理主要用于搜索频繁项目集时对候选式筛选的过程,利用先验原理能够比较好地避免盲目的搜索,提高频繁项集的查找效率(见图2)。别用来衡量规则的有效性和可信度。若存在规则x一>Y,则该规则的支持度表示事务集合中包含xuy中的所有项目的事务的出现频度。支持度是一个有效的评价指标,如果支持度的值太小,就表明相应的规则在整个事务集合中只是偶然出现,在商业应用中,该规则很可能没有价值。对于置信度而言,若存在规则x一>Y,则该规则的置信度表示l,在包含x的事务中出现的频繁程度。置信度的大小决定了规则的可预测度的大小。如果所选规则的置信度值太小,就表明从x就很难可靠地推断出l,。同样,置信度太低的规则也很可能没有价值∞’61。基于关联规则的算法以Apfiori算法为代表,其后的MPL等算法大多是在Apriori算法的基础上衍生或者改进‘川。2Apriori算法分析Apriori算法基本思想:首先,计算含2.1算法基本思想有一个元素的项目集出现的频率,找出那些不小于最小支持度的项目集,得到一维最大项目集,生成一维频繁集。然后进行连接运算生成二维候选集,再根据预先给定的最小支持度,生成二维频繁集。重复上述过程,直到生成M维频繁集,并且不能再生成满足最小支持度的(肼+I)项目集。这里有一点需要注意:若存在K维候选集(K=3,…,肘),其中某个元素的(K一1)子集不是(K一1)维频繁集,则该候选集将被删除瞪】。Apfiori算法的流程如图1所示。图2改进的Apriori算法改进后的Apriori算法流程…’121如下:设定k=1扫描事务数据库一次,生成频繁的l一项集如果存在两个或以上频繁k一项集,重复下面过程:[候选产生]由长度为k的频繁项集生成长度为k+1的候选项集[候选前剪枝]对每个候选项集,若其具有非频繁的长度为k的子集,则删除该候选项集[支持度计算]扫描事务数据库一次,统图12.2傲Apfiori算法流程图计每个余下的候选项集的支持度[候选后剪枝]删除非频繁的候选项集,仅保留频繁的(k+1)一项集Apriori算法的缺陷Apriori算法存在的缺陷,由上述Apriori算法的基万方数据第6期郭涛等:基于关联规则数据挖掘A曲耐算法的研究与应用・103・设定k=k+1其中改进后的Apriori算法的核心步骤如下:候选产生:设A={口。,a:…吒}和B={b.,/12"""b。}是一对频繁k一项集,当且仅当口;=6。(i;1,2-..k一1)并且吼≠bI时,合并A和B,得到{吼,口2…口I,b‘}。比如合并{Bread,Milk}和{Bread,Di・aper}得到{Bread,Milk,Diaper},但{Milk,BreadI和{Bread,Di・aper}不能合并。候选前剪枝:设A={口。,a:…吼,吼+。}是一个候选(k+1)一项集,检查每个A’是否在第k层频繁项集中出现,其中A。由A去掉哦(i=1,…,k一1)得到,若某个A’没有出现,则A是非频繁的。3基于Apriori算法的应用3.1测试数据模型文中所用系统利用A砸谢的改进算法,采用VC++语言结合ACCESS数据库编写而成。文中提供15种测试商品,每个商品用小写英文字母表示,如从a到。进行编号。整理出某个超市在一个星期内的销售数据,每天固定100个客户,星期六星期天顾客比平时多,则这两天,每天抽出250个顾客购物信息。在试验中,Apriori算法计算每天的前100客户采用min—sup=0.1,min—conf=0.45或min—conf=0.55,其他全部采用min_sup=0.1,min_conf=0.45。下面用一个例子说明对所采集的数据预处理的步骤,如一个客户发票打印的数据为:日期:2010一11—20代号商品名称数量价格(元)11042康师傅红烧牛肉面11.8011043康师傅鲜虾鱼板面11.8012153水晶阿胶枣13.6015412光明高钙牛奶1227.6忽略商品的代号、数量、价格以及购买时间。对要进行测试的顾客从0开始进行编号。不同的商品名称、商品类型用不同的英文字母表示。在进行测试数据预处理的时候,根据不同的实际需求,划分各种商品的类型。如上述超市发票单上的康师傅红烧牛肉面和康师傅鲜虾鱼板面都算成方便面类型。但如果是想计算方便面之间的关联关系,则可把两种方便划分成不同的分类。文中把方便面都划为一类,用字母“a”表示。上述例子可以处理成以下的形式,其中b、C分别表示水晶阿胶枣和光明高钙牛奶:顾客编号购买的商品的代号0abc数据经过预处理后,以txt文本的形式存放,通过文件输入流的形式输入到系统中,再进行相关的计算。万方数据测试数据经过预处理后,一共有1000个顾客,留下顾客编号和商品代号。3.2测试结果分析以某个月内1000位顾客购买商品的数据测试为例,分析商品之间的关联情况(见图3)。图3Apriori算法得出某月内1000个用户的购买商品关联关系图本次测试最小支持度设为0.1,最小置信阈值设为0.4,得出表1中的信息,以部分商品之间的关联关系说明一个月内销售的商品之间的关联关系,得出表2中的信息。从两张表的比较中可知,顾客买了商品n再去买商品f的可能性很大;买了。的商品去买商品f的可能性也很大。买商品n和商品。的顾客都可能去买商品f。表lApriori算法得出1000个用户购买商品部分关系表2置信阈值设为0.4时的部分商品关系信息综上所述,在n,f,o三中商品中顾客买了其中一种再买另外两种或两种之一的可能性比较大,超市管理者可以通过以上的结果可以调整商品摆放的位置,让这三种商品放在一起,方便顾客选购。有时候超市进行促销活动,则可能降低其中一种商品的价格,顾客买了促销的商品,很有可能就连带一起买其他两种商品,这样虽然降低了一种商品的价格,但是增加了其他商品的销售,也是超市盈利的一种很好的方法。4结束语文中介绍了数据挖掘的相关概念,集中对Apriori算法进行研究应用。基于Apriori算法的理论知识,文(下转第107页)第6期吕克等:基于信誉度的网格资源质量优化[J].信息与控制.2009,38(2):170—175.[3]Z,acharia・1cr7・另外,实验证明基于信誉度的网格资源调度算法中,网格资源提供者为了获得更多的效益,将质量比较高的资源加入到网格中,相应的资源的信誉度就会随之提高,用户在调用资源时,直接根据信誉度的值选择比较符合自己要求的资源,从而大大节省了调用时间,同时还提高了任务执行的效率。G,MaesP.TrustMamlgementThroughReputationMechanisms[J].Applied14(9):881—908.ArtificialIntelligenceJournal,2000,[4】杨柯,张建军.基于计算期望和信誉度的网格资源调度模型[J].西北大学学报(自然科学版),2009,39(2):225—229.[5】李慧敏,蒋秀凤.基于QoS效益函数的网格任务调度算法3结束语将信誉度引入到网格中,增强了用户在调用资源时的透明度,促使网格资源提供者将较高质量的资源[6][J].计算机与现代化,2009(9):12—18.王进,解福.拍卖机制下的效益最优化调度算法研究[J].微计算机信息,2010,26(4):205—207.[7]王立,吴蒙,常莉.移动Adhoe网络基于信誉系统的节点协作方案[J].计算机技术与发展,2010,20(3):32-35.引入到网格中来获取更高的效益,这样就达到优化网格质量的目的。另外,随着网格资源质量的提高,网格资源拥有者不断地将最优质量的资源加入到网格中来,扩大了网格规模。虽然用户调用资源的范围扩大,但时间缩短,减少了网格资源调度的时间,提高任务执行的效率。但是,基于信誉度的网格资源调度算法还有一定的缺陷。假设,资源提供者提供的某些资源质量非常[8]穆晓芳,余雪丽,牛瑞萍.基于拍卖机制的网格在线信誉系统模型[J].计算机工程与设计,2008,29(4):979—982.[9]BuyyaR,MurshedM.GridSim:AToolkitSimulationofDistributedlingforResourcefortheModelingandandManagementSchedu—GridCompufing[J].JournalandofConcurrencyandCom—putation:Practice1220.Expedenee,2002,14(13):1175一~高,规定用户调用的时间及费用都比较合理,这样就会吸引大量的用户去调用这些资源,就很可能会造成严重的瓶颈问题。针对这一问题将做进一步研究。[10]高强,刘波.关于网格模拟器的研究[J].计算机技术与发展,2010,20(1):100—103.[11]SulistioA,YeoCS,BuyyaR.VisualModelerforGridModel-lingandSimulation(GridSim)Toollit[R].Australia:GridDistributed参考文献:[1]马满福,吴健,陈定剑,等.网格经济模型中基于信誉度的资源选择[J].计算机工程,2006,32(17):175—177.[2]路峰,吴慧中.一种基于信誉QoS网格资源调度算法ComputingandSystems(GRIDS)Lab,Dept.ofComputerScienceandSoftware,Engineering,TheUniversityofMelbourne,2003:1123—1132.(上接第103页)中设计并实现了一个原型系统,对超市商品的购买相关性进行了数据挖掘,从而实现对关联规则算法的研究与应用。[8]rithm[J].Advances295-300.inEngineeringSoftware,2007,38(5):WangYanhua,FengbasedonXia.TheoptimizationofAprioriofalgorithminter-ap-directednetwork[C]//Proceedingsonthe3rdnationalconference参考文献:[1]HaninteHigentinformationComputertechnologyJiawei,I(a幽rplication.WashingtonDC:IEEEM.数据挖掘概念与技术[M].范Sceety,2009:504—507.明,孟小峰译.北京:机械工业出版社,2004.[2]彭小宁.数据仓库与数据挖掘技术[J].怀化师专学报,2002,21(2):34—38.[3]HanJ,Kamber[M].SanM.DataMining:Conceptsand[9]CheuagDWL,HanJiawei,NgV.MaintenanceofDiscoveredAssociationRulesinLargeringDatabases:、AnIncrementaloftheUpda-TechniquesTechnique[C]//ProceedingsonTwelfthInternationalDC:IEEEFrancisco:MorganKaufmanPublisher。2001.A。MiningAssociationRulesofConferenceDataEngineering.Washington[4]AgrawalR,ImiclinskiT,Swamibetweenthe1993ComputerSociety.1996:106一144.SetsofItemsinLargeDatabase[C]//Proceedingson[10]何丽君,董蕊,袁克杰.常见关联规则箅法分析与比较[J].大连民族学院学报,2005,7(5):39-42.[11]吴芬兰,胡朝举,高推.关联规则挖掘算法的改进[J].微机发展(现更名:计算机技术与发展),2005,15(8):151—152.ACMSIGMODConferenceManagementofDataTableofContents.NewYork:ACM。1993:207—216.[5]周涛,陆惠玲.关联规则挖掘算法研究[J].齐齐哈尔大学学报,2004,20(3):58—61.[6]毕建欣,张岐山.关联规则挖掘算法综述[J].中国工程科学,2005,7(4):88—94.[7]Aflofi[12]徐章艳,张师超,区玉明.挖掘关联规则中的一种优化的Apriori算法【J].计算机工程,2003,29(19):83—87.C,CrausM.GridimplementationoftheApriorialgo-万方数据