资源描述:
《数据挖掘(1):关联规则挖掘基本概念与Aprior算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据挖掘(1):关联规则挖掘基本概念与Aprior算法2015/08/28•IT技术•1评论•数据挖掘分享到:12SpringMVC起步PHP开发APP接口PHP7.0般性MySQL5.7复制功能实战原文岀处:fengfenggirl(@也爱数据挖掘)我计划整理数据挖掘的基本概念和算法,包括关联规则挖掘、分类、聚类的常用算法,敬请期待。今天讲的是关联规则挖掘的最基本的知识。关联规则挖掘在电商、零售、大气物理、生物医学已经有了广泛的应用,本篇文章将介绍一些基本知识和Aprori算法。啤酒与尿布的故事已经成为了关联规则挖掘的经典案例,还有人专门岀了一本书《啤酒与
2、尿布》,虽然说这个故事是哈弗商学院杜撰出来的,但确实能很好的解释关联规则挖掘的原理。我们这里以一个超市购物篮迷你数据集来解释关联规则挖掘的基本概念:TIDItemsT1{牛奶,面包}T2{血包,尿布,啤酒,鸡蛋}T3{牛奶,尿布,啤酒,可乐}T4{面包,牛奶,尿布,啤酒}表中的每一行代表一次购买清单(注意你购买十盒牛奶也只计一次,即只记录某个商品的出现与否)。数据记录的所有项的集合称为总项集,上表中的总项集S={牛奶,面包,尿布川卑酒,鸡蛋,可乐}。一.关联规则.关联规则就是有关联的规则,形式是这样定义的:两个不相交的非空集合X、Y,如果有X->Y,就说X-
3、>Y是一条关联规则。举个例子,在上面的表中,我们发现购买啤酒就一定会购买尿布,{啤酒}->{尿布}就是一条关联规则。关联规则的强度用支持度(support)和自信度(confidence)来描述,支持度的定义:support(X->Y)二
4、X交Y
5、/N二集合X与集合Y中的项在一条记录中同时出现的次数/数据记录的个数。例如:support©啤酒}->{尿布})=啤酒和尿布同时出现的次数/数据记录数二3/5=60%。自信度的定义:confidence(X->Y)=
6、X交Y
7、/凶二集合X与集合Y中的项在一条记录中同时出现的次数/集合X出现的个数。例如:confid
8、ence"啤酒}->{尿布})=啤酒和尿布同时出现的次数/啤酒出现的次数=3/3=100%;confidence({®布}->{啤酒})=啤酒和尿布同时出现的次数/尿布出现的次数二3/4=75%。这里走义的支持度和自信度都是相对的支持度和自信度,不是绝对支持度,绝对支持度abs_support=数据记录数N*supporto支持度和自信度越高,说明规则越强,关联规则挖掘就是挖掘出满足一定强度的规则。二关联规则挖掘的走义与步骤关联规则挖掘的定义:给定一个交易数据集T,找出其中所有支msupport>=min_supportx自信度confidence>=min
9、_confidence的关联规则。有一个简单而粗鲁的方法可以找出所需要的规则,那就是穷举项集的所有组合,并测试每个组合是否满足条件,一个元素个数为n的项集的组合个数为2人门J(除去空集),所需要的时间复杂度明显为0(2W),对于普通的超市,其商品的项集数也在1万以上,用指数时间复杂度的算法不能在可接受的时间内解决问题。怎样快速挖出满足条件的关联规则是关联挖掘的需要解决的主要问题。仔细想一下,我们会发现对于{啤酒->尿布}”{尿布-〉啤酒}这两个规则的支持度实际上只需要计算{尿布,啤酒}的支持度,即它们交集的支持度。于是我们把关联规则挖掘分两步进行:1)生成频
10、繁项集这一阶段找岀所有满足最小支持度的项集,找出的这些项集称为频繁项集。2)生成规则在上一步产生的频繁项集的基础上生成满足最小自信度的规则,产生的规则称为强规则。关联规则挖掘所花费的时间主要是在生成频繁项集上,因为找出的频繁项集往往不会很多,利用频繁项集生成规则也就不会花太多的时间,而生成频繁项集需要测试很多的备选项集,如果不加优化,所需的时间是0(2八2。三.Apriori定律为了减少频繁项集的生成时间,我们应该尽早的消除一些完全不可能是频繁项集的集合,Apriori的两条定律就是干这事的。Apriori定律1):如果一个集合是频繁项集,则它的所有子集都是
11、频繁项集。举例:假设一个集合{A,B}是频繁项集,即A、B同时出现在一条记录的次数大于等于最小支持度min_support,则它的子集{A},{B}出现次数必定大于等于min_support,即它的子集都是频繁项集。Apriori定律2):如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。举例:假设集合{A}不是频繁项集,即A岀现的次数小于min_support,则它的任何超集如{A,B}出现的次数必定/JTmin_support,因此其超集必定也不是频繁项集。利用这两条定律,我们抛掉很多的候选项集,Apriori算法就是利用这两个定理来实现快速挖掘
12、频繁项集的。四、Apriori算法Apriori是由