数据挖掘原理、-算法及应用第3章-关联规则挖掘课件.ppt
《数据挖掘原理、-算法及应用第3章-关联规则挖掘课件.ppt》由会员分享,可在线阅读,更多相关《数据挖掘原理、-算法及应用第3章-关联规则挖掘课件.ppt(185页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章关联规则挖掘章关联规则挖掘 第第3章关联规则挖掘章关联规则挖掘 3.1基本概念3.2关联规则挖掘算法3.3Apriori改进算法3.4不候选产生挖掘频繁项集3.5使用垂直数据格式挖掘频繁项集3.6挖掘闭频繁项集3.7挖掘各种类型的关联规则3.8相关分析3.9基于约束的关联规则3.10矢量空间数据库中关联规则的挖掘第第3章关联规则挖掘章关联规则挖掘 3.1基基 本本 概概 念念 交易数据库又称为事务数据库,尽管它们的英文名词一样,但是事务数据库更具有普遍性。例如,病人的看病记录、基因符号等用事务数据库更贴切。因此,下面的叙述更多使用事务数据库这一名词,而不用交易数据库这个名词。第第3章关
2、联规则挖掘章关联规则挖掘 一个事务数据库中的关联规则挖掘可以描述如下:设I=i1,i2,im 是一个项目集合,事务数据库D=t1,t2,tn 是由一系列具有惟一标识的TID事务组成。每一个事务ti(i=1,2,n)都对应I上的一个子集。定义3.1设I1 I,项目集(Itemsets)I1在数据集D上的支持度(Support)是包含I1的事务在D中所占的百分比,即式中:|表示集合中元素数目。(3.1)第第3章关联规则挖掘章关联规则挖掘 定义3.2对项目集I,在事务数据库D中所有满足用户指定的最小支持度(Minsupport)的项目集,即不小于Minsupport的I的非空子集,称为频繁项目集(F
3、requent Itemsets)或大项目集(Larg Itemsets)。定义3.3一个定义在I和D上,形如I1I2的关联规则通过满足一定的可信度、信任度或置信度(Confidence)来定义的。所谓规则的可信度,是指包含I1和I2的事务数与包含I1的事务数之比,即(3.2)第第3章关联规则挖掘章关联规则挖掘 第第3章关联规则挖掘章关联规则挖掘(1)发现频繁项目集:通过用户给定的最小支持度,寻找所有频繁项目集,即满足支持度Support不小于Minsupport的所有项目子集。发现所有的频繁项目集是形成关联规则的基础。(2)生成关联规则:通过用户给定的最小可信度,在每个最大频繁项目集中,寻找
4、置信度不小于Minconfidence的关联规则。第第3章关联规则挖掘章关联规则挖掘 3.2关联规则挖掘算法关联规则挖掘算法 3.2.1项目集空间理论项目集空间理论Agrawal等人建立了用于事务数据库挖掘的项目集空间理论。理论的核心为:频繁项目集的子集仍是频繁项目集;非频繁项目集的超集是非频繁项目集。这个理论一直作为经典的数据挖掘理论被应用。第第3章关联规则挖掘章关联规则挖掘 定理定理3.1如果项目集X是频繁项目集,那么它的所有非空子集都是频繁项目集。证明证明设X是一个项目集,事务数据库D中支持X的元组(记录)数为S。设X的任一非空子集YX,事务数据库D中支持Y的元组(记录)数为S1。根据项
5、目集支持度的定义,很容易知道支持X的元组一定支持Y,所以S1S,即support(Y)support(X)按假设,项目集X是频繁项目集,即support(X)minsupport所以support(Y)support(X)minsupport,因此Y是频繁项目集。第第3章关联规则挖掘章关联规则挖掘 第第3章关联规则挖掘章关联规则挖掘 按假设,项目集X是非频繁项目集,即support(X)minsupport所以support(Z)support(X)minsupport,因此Z不是频繁项目集。1993年,Agrawal等人在提出关联规则概念的同时,给出了相应的挖掘算法AIS,但性能较差。199
6、4年,他们依据上述两个定理,提出了著名的Apriori算法,Apriori算法至今仍然作为关联规则挖掘的经典算法,其他算法均是在此基础上进行改进的。第第3章关联规则挖掘章关联规则挖掘 3.2.2经典的发现频繁项目集算法经典的发现频繁项目集算法Apriori算法是R.Agrawal和R.Strikant于1994年提出的布尔关联规则挖掘频繁项集的原创性算法。算法的基本思想:基于频繁项目集性质的先验知识,使用由下到上逐层搜索的迭代方法,k项集用于搜索k+1项集。首先,扫描数据库,统计每一个项发生的数目,找出满足最小值支持度的项,找出频繁1项集,计作L1;然后,基于L1找出频繁2项集的集合L2,基于
7、L2找出频繁3项集的集合L3,如此下去,直到不能找到频繁k项集Lk。找每一个Lk需要一次数据库全扫描。第第3章关联规则挖掘章关联规则挖掘 第第3章关联规则挖掘章关联规则挖掘 如果l1Lk-1,l2Lk-1中的前k-2个元素相同,则称l1、l2是可连接的,即l11=l21l12=l22l1k-1l2k-1。条件l1k-1l2k-1可以保证不产生重复,而按照L1,L2,Lk-1,Lk,Ln次序寻找频繁项集可以避免对事务数据库中不可能发生的项集所进行的搜索和统计的工作。连接l1、l2的结果项集是l11、l12、l1k-1、l2k-1。第第3章关联规则挖掘章关联规则挖掘 第第3章关联规则挖掘章关联规则
8、挖掘 因此,如果候选k项集Ck的(k-1)项子集不在Lk-1中,则该候选不可能是频繁的,从而可以从Ck中删除。这种子集测试可以使用所有频繁项集的散列树快速完成。例如,如果2项目集C2=AB,AD,AC,BD,而对于新产生3项目集中的元素ABC不需要加入到C3中,因为它的2项子集BC不在C2中。而对于新产生的元素ABD应该加入到C3中,因为它的所有2项子集都在C2中。第第3章关联规则挖掘章关联规则挖掘【例3.1】表3-1为某一超市销售事务数据库D,使用Apriori算法发现D中频繁项目集。问题分析:事务数据库D中有9个事务,即|D|=9。超市中有5件商品可供顾客选择,即I=I1,I2,I3,I4
9、,I5,且|I|=5。设最小支持数minsup_count=2,则对应的最小支持度为2/92.2%。第第3章关联规则挖掘章关联规则挖掘 第第3章关联规则挖掘章关联规则挖掘 事务数据库D中候选项目集、频繁项目集生成过程如下:1)候选1项目集C1的生成I=I1,I2,I3,I4,I5中每一项都是候选1项目集合C1的成员,对候选1项目集C1=I1,I2,I3,I4,I5中的每一个1候选项目集,在数据库D进行扫描,统计它们的支持数。2)频繁1项目集L1的生成在候选1项目集C1=I1,I2,I3,I4,I5中,选取支持数不小于最小支持数minsup_count=2的候选1项目集作为频繁1项目集L1,L1
10、=I1,I2,I3,I4,I5。第第3章关联规则挖掘章关联规则挖掘 3)候选2项目集C2的生成由频繁1项目集L1=I1,I2,I3,I4,I5生成候选2项目集C2。由数学中组合知识和2候选项目集定义可知,2候选项目集C2是1频繁项目集L1=I1,I2,I3,I4,I5的全组合,共有C2|L1|种组合,也就是说,2候选项目集C2中共有C2|L1|个元素。为了提高算法效率,Apriori算法使用连接L1L1产生候选项目集C2。L1L1连接运算要求两个连接的项集共享0个项,LkLk运算中要求两个连接的项集共享k-1个项。对候选项目集C2中的每一个2候选项目集,在数据库D进行扫描,统计它们的支持数。第
11、第3章关联规则挖掘章关联规则挖掘 4)2频繁项目集L2的生成在2候选项目集C2中,选取支持数不小于最小支持数minsup_count=2的候选项目集作为2频繁项目集L2。第第3章关联规则挖掘章关联规则挖掘 5)3候选项目集C3的生成由2频繁项目集L2生成3候选项目集C3。首先按照连接步定义计算C3=L2L2=I1,I2,I3,I1,I2,I5,I1,I3,I5,I2,I3,I4,I2,I3,I5,I2,I4,I5;然后按照剪枝步的方法,频繁项集的所有子集也必须是频繁的,可以确定后4个候选不可能是频繁的,从而可以把它们从C3中删除,这样扫描数据库D时,不必再统计它们的数目。第第3章关联规则挖掘章
12、关联规则挖掘 由于Apriori算法采用由下到上、逐层搜索技术,当给定候选k项集,只须检查它们的k-1项子集是否频繁。对候选项目集C3中的每一个3候选项目集,在数据库D进行扫描,统计它们的支持数。第第3章关联规则挖掘章关联规则挖掘 第第3章关联规则挖掘章关联规则挖掘 图3-1搜索候选项集和频繁项集过程第第3章关联规则挖掘章关联规则挖掘 以下为Apriori算法和它的相关过程的伪代码。算法算法3.1Apriori(发现频繁项目集)。输入:数据集D、最小支持数minsup_count。输出:频繁项目集L。(1)L1=large 1-itemsets;/所有支持数不小于minsup_count的1项
13、目集(2)FOR(k=2;Lk-1;k+)(3)Ck=apriori-gen(Lk-1);/Ck是包含k个元素的候选项目集第第3章关联规则挖掘章关联规则挖掘(4)FOR all transactions tD/扫描数据集D用于计数(5)Ct=subset(Ck,t);/Ct是所有t中包含Ck的候选项目集(6)FOR all candidates cCt c.count+;/计数(7)(8)Lk=cCkc.countminsup_count(9)(10)RETURN L=Lk;第第3章关联规则挖掘章关联规则挖掘 第第3章关联规则挖掘章关联规则挖掘 算法算法3.2apriori-gen(Lk-1)
14、(候选集产生)。输入:(k-1)频繁项目集Lk-1。输出:k侯选项目集Ck。(1)FOR all itemset l1Lk-1(2)FOR all itemset l2Lk-1(3)IF(l11=l21l12=l22l1k-12)THEN generateRules(lkL,xm-1X,minConfidence);(7)第第3章关联规则挖掘章关联规则挖掘 利用频繁项目集生成关联规则就是逐一测试在所有频繁项集中可能生成的关联规则、对应的支持度、置信度参数。算法3.5实际上采用深度优先搜索方法来递归生成关联规则,当然,同样也可以使用广度优先搜索方法来递归生成关联规则,读者可以自己尝试来完成。第第
15、3章关联规则挖掘章关联规则挖掘【例3.2】对于例3.1事务数据库D,假定发现的频繁项集l=I1,I2,I5,试找出由l产生的所有关联规则。频繁项集l=I1,I2,I5的所有非空子集为I1,I2、I1,I5、I2,I5、I1、I2、I5则其对应的关联规则和置信度如下:(1)I1I2 I5,confidence=2/4=50%;(2)I1I5 I2,confidence=2/2=100%;(3)I2I5 I1,confidence=2/2=100%;第第3章关联规则挖掘章关联规则挖掘(4)I1 I2I5,confidence=2/6=33%;(5)I2 I1I5,confidence=2/7=29
16、%;(6)I5 I1I2,confidence=2/2=100%。如果最小置信度阈值为70,则只有(2)、(3)和(6)为强关联规则。由频繁项目集生成关联规则的优化问题主要集中在减少不必要的规则生成尝试方面。第第3章关联规则挖掘章关联规则挖掘 定理定理3.3设有频繁项目集l,项目集X l,X1为X的一个子集,即X1X。如果关联规X (l-X)不是强关联规则,那么X1(l-X1)一定不是强关联规则。证明证明由支持度的定义可知,X1的支持度support(X1)一定大于X的支持度support(X),即support(X1)support(X)所以confidence(X1(l-X1)=suppo
17、rt(l)/support(X1)confidence(X (l-X)=support(l)/support(X)第第3章关联规则挖掘章关联规则挖掘 由于X(l-X)不是强关联规则,即confidence(X(l-X)minConfidence所以 confidence(X1(l-X1)confidence(X(l-X)2&confidence(xm-1 (l-xm-1)minConfidence)作为递归结束的判断条件,读者可以自己尝试来完成。第第3章关联规则挖掘章关联规则挖掘 定理定理3.4 设有项目集X,X1是X的一个子集,即X1X,如果规则Y X是强规则,那么规则Y X1一定是强规则。
18、证明证明由支持度定义可知,一个项目集的子集的支持度一定大于等于它的支持度,即support(X1Y)support(XY)所以confidence(YX)=support(XY)/support(Y)support(X1Y)/support(Y)=support(X1Y)第第3章关联规则挖掘章关联规则挖掘 由于YX是强规则,即confidence(Y X)minConfidence所以corfidence(X1Y)confidence(YX)minConfidence因此,“YX1”也是强规则。由定理3.4可知,在生成关联规则尝试中可以利用已知的结果来有效避免测试一些肯定是强规则的尝试。这个定
19、理也保证把测试的注意点放在判断最大频繁项目集的合理性上。实际上,只要从所有最大频繁项目集出发去测试可能的关联规则即可,因为其他频繁项目集生成的规则的右项一定包含在对应的最大频繁项目集生成的关联规则右项中。第第3章关联规则挖掘章关联规则挖掘 3.3Apriori改进算法改进算法 3.3.1Apriori算法的瓶颈算法的瓶颈Apriori作为经典的频繁项目集生成算法,在数据挖掘中具有里程碑的作用。但是随着研究的深入,它的缺点也暴露出来。Apriori算法有两个致命的性能瓶颈。(1)多次扫描事务数据库,需要很大的IO负载。对每次k循环,候选集Ck中的每个元素都必须通过扫描一次数据库来验证其是否加入L
20、k。假如一个频繁大项目集包含10个项,那么就至少需要扫描事务数据库10遍。第第3章关联规则挖掘章关联规则挖掘(2)可能产生庞大的候选集。由Lk-1产生k候选集Ck是呈指数增长的,例如104个1频繁项目集,Apriori算法能产生多达107个2候选集。如此大的候选集对时间和主存空间都是一种挑战。因此,包括Agrawal在内的许多学者提出了Apriori算法的改进方法。第第3章关联规则挖掘章关联规则挖掘 3.3.2改进算法改进算法1.基于散列的技术基于散列的技术(散列项集到对应的桶中散列项集到对应的桶中)一种基于散列的技术可以用于压缩候选k项集Ck(k1)。例如,当扫描数据库中的每个事务,由C1中
21、的候选1项集产生频繁1项集L1时,可以对每个事务产生所有的2项集,将它们散列(即映射)到散列表结构的不同桶中,并增加对应的桶计数(如图3-2所示)。在散列表中对应的桶计数低于支持度阈值的2项集不可能是频繁的,因而应当从候选项集中删除。这种基于散列的技术可以显著压缩要考察的候选k项集。第第3章关联规则挖掘章关联规则挖掘 图3-2候选2项集的散列表第第3章关联规则挖掘章关联规则挖掘 2.事务压缩事务压缩不包含任何频繁k项集的事务不可能包含任何频繁(k+1)项集。因此,这种事务在其后考虑中,可以加上标记或删除,因为产生j(jk)项集的数据库扫描不再需要它们。第第3章关联规则挖掘章关联规则挖掘 3.划
22、分划分使用划分技术只需要两次数据库扫描,以挖掘频繁项集(如图3-3所示)。它包含两个阶段。在阶段,算法将D中的事务分成n个非重叠的划分。如果D中事务的最小支持度阈值为min_sup,则一个划分的最小支持度计数为min_sup乘以该划分中的事务数。对每个划分,找出该划分内的所有频繁项集。这些称做局部频繁项集(Local Frequent Itemset)。该过程使用一种特殊的数据结构,对于每个项集,记录包含项集中项的事务的TID。对于k=1,2,n 找出所有的局部频繁项集只需要扫描一次数据库。第第3章关联规则挖掘章关联规则挖掘 图3-3通过划分数据进行挖掘第第3章关联规则挖掘章关联规则挖掘 局部
23、频繁项集可能是也可能不是整个数据库D的频繁项集。D的任何频繁项必须作为局部频繁项集至少出现在一个划分中。这样,所有的局部频繁项集是D的候选项集。所有划分的频繁项集的集合形成D的全局候选项集。在阶段,第二次扫描D,评估每个候选的实际支持度,以确定全局频繁项集。划分的大小和划分的数目以每个划分能够放入内存为原则来确定,这样每阶段只需要读一次。第第3章关联规则挖掘章关联规则挖掘 4.抽样抽样抽样方法的基本思想:选取给定数据D的随机样本S,然后在S中搜索频繁项集。用这种方法,虽然牺牲了一些精度但换取了有效性。样本S的大小选取使得可以在内存中搜索S的频繁项集。这样,总共只需要扫描一次S中的事务。由于搜索
24、S中而不是D中的频繁项集,可能丢失一些全局频繁项集。为减少这种可能性,使用比最小支持度低的支持度阈值来找出S中局部的频繁项集(记作LS)。然后,数据库的其余部分用于计算LS中每个项集的实际频率。使用一种机制来确定是否所有的频繁项集都包含在LS中。如果LS实际包含了D中的所有频繁项集,则只需要扫描一次D。否则,可以做第二次扫描,以找出在第一次扫描时遗漏的频繁项集。当效率最为重要时,如计算密集的应用必须频繁运行时,抽样方法特别合适。第第3章关联规则挖掘章关联规则挖掘 5.动态项集计数动态项集计数动态项集计数技术将数据库划分为用开始点标记的块。不像Apriori仅在每次完整的数据库扫描之前确定新的候
25、选,在这种变形中,可以在任何开始点添加新的候选项集。该技术动态地评估已计数的所有项集的支持度,如果一个项集的所有子集已确定为频繁的,则添加它作为新的候选。结果算法需要的数据库扫描比Apriori少。第第3章关联规则挖掘章关联规则挖掘 3.4不候选产生挖掘频繁项集不候选产生挖掘频繁项集 频繁模式增长(FrequentPattern Growth),或简称FP增长,试图设计一种方法,挖掘全部频繁项集而不产生候选。它采取如下分治策略:首先,将提供频繁项的数据库压缩到一棵频繁模式树(或FP树),但仍保留项集关联信息。然后,将压缩后的数据库划分成一组条件数据库(一种特殊类型的投影数据库),每个与一个频繁
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 挖掘 原理 算法 应用 关联 规则 课件
限制150内