数据挖掘导论关联分析.pptx
《数据挖掘导论关联分析.pptx》由会员分享,可在线阅读,更多相关《数据挖掘导论关联分析.pptx(110页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6.1 问题定义问题定义关联分析频繁项集关联规则关联规则强度:支持度置信度关联规则发现挖掘关联规则的策略第1页/共110页定义定义:关联分析(关联分析(association analysis)关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。关联分析可以应用于生物信息学、医疗诊断、网页挖掘、科学数据分析等Rules Discovered:Diaper-Beer第2页/共110页定义定义:频繁项集(频繁项集(Frequent Itemset)项集(项集(Itemset)包含0个或多个项的集合例子:Milk,Bread,Diaperk-项集如果
2、一个项集包含k个项支持度计数(支持度计数(Support count)()包含特定项集的事务个数例如:(Milk,Bread,Diaper)=2 支持度(支持度(Support)包含项集的事务数与总事务数的比值例如:s(Milk,Bread,Diaper)=2/5频繁项集(频繁项集(Frequent Itemset)满足最小支持度阈值(minsup )的所有项集第3页/共110页定义定义:关联规则(关联规则(Association Rule)Example:l关联规则关联规则是形如 X Y的蕴含表达式,其中 X 和 Y 是不相交的项集例子:Milk,Diaper Beer l关联规则的强度支持
3、度 Support(s)u确定项集的频繁程度置信度 Confidence(c)u确定Y在包含X的事 务中出现的频繁程度第4页/共110页关联规则发现关联规则发现关联规则发现:给定事务的集合 T,关联规则发现是指找出支持度大于等于 minsup并且置信度大于等于minconf的所有规则,minsup和minconf是对应的支持度和置信度阈值关联规则发现的一种原始方法是:Brute-force approach:计算每个可能规则的支持度和置信度这种方法计算代价过高,因为可以从数据集提取的规则的数量达指数级从包含d个项的数据集提取的可能规则的总数R=3d-2d+1+1,如果d等于6,则R=602第5
4、页/共110页挖掘关联规则(挖掘关联规则(Mining Association Rules)的)的策略策略大多数关联规则挖掘算法通常采用的一种策略是,将关联规则挖掘任务分解为如下两个主要的子任务:1.频繁项集产生(Frequent Itemset Generation)其目标是发现满足最小支持度阈值的所有项集,这些项集称作频繁项集。2.规则的产生(Rule Generation)其目标是从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称作强规则(strong rule)。第6页/共110页6.2 频繁项集的产生频繁项集的产生6.1 问题定义6.2 频繁项集的产生第7页/共110页频繁项
5、集产生(频繁项集产生(Frequent Itemset Generation)格结构(格结构(lattice structure)格结构用来枚举所有可能项集格结构用来枚举所有可能项集第8页/共110页频繁项集产生(频繁项集产生(Frequent Itemset Generation)Brute-force 方法:把格结构中每个项集作为候选项集将每个候选项集和每个事务进行比较,确定每个候选项集的支持度计数。时间复杂度 O(NMw),这种方法的开销可能非常大。第9页/共110页降低产生频繁项集计算复杂度的方法降低产生频繁项集计算复杂度的方法减少候选项集的数量(M)先验(apriori)原理减少比较
6、的次数(NM)替代将每个候选项集与每个事务相匹配,可以使用更高级的数据结构,或存储候选项集或压缩数据集,来减少比较次数第10页/共110页6.2 频繁项集的产生频繁项集的产生6.2.1 先验原理第11页/共110页先验原理(先验原理(Apriori principle)先验原理:如果一个项集是频繁的,则它的所有子集一定也是频繁的第12页/共110页先验原理(先验原理(Apriori principle)先验原理:如果一个项集是频繁的,则它的所有子集一定也是频繁的相反,如果一个项集是非频繁的,则它的所有超集也一定是非频繁的:这种基于支持度度量修剪指数搜索空间的策略称为基于支持度的剪枝(suppo
7、rt-based pruning)这种剪枝策略依赖于支持度度量的一个关键性质,即一个项集的支持度决不会超过它的子集的支持度。这个性质也称为支持度度量的反单调性(anti-monotone)。第13页/共110页非频繁项集例子例子被剪枝的超集第14页/共110页6.2 频繁项集的产生频繁项集的产生6.2.1 先验原理6.2.2 Apriori算法的频繁项集产生第15页/共110页Apriori算法的频繁项集产生算法的频繁项集产生第16页/共110页Apriori算法的频繁项集产生算法的频繁项集产生Items(1-itemsets)Pairs(2-itemsets)Triplets(3-items
8、ets)支持度阈值=60%最小支持度计数=3枚举所有项集将产生 个候选而使用先验原理,将较少为 =13第17页/共110页Apriori 算法算法第18页/共110页Apriori 算法算法Apriori算法的频繁项集产生的部分有两个重要的特点:它是一个逐层算法。即从频繁1-项集到最长的频繁项集,它每次遍历项集格中的一层它使用产生-测试策略来发现频繁项集。在每次迭代,新的候选项集由前一次迭代发现的频繁项集产生,然后对每个候选的支持度进行计数,并与最小支持度阈值进行比较。该算法需要的总迭代次数是kmax+1,其中kmax是频繁项集的最大长度第19页/共110页6.2 频繁项集的产生频繁项集的产生
9、6.2.1 先验原理6.2.2 Apriori算法的频繁项集产生6.2.3 候选的产生与剪枝第20页/共110页候选的产生与剪枝候选的产生与剪枝(构造构造apriori-gen函数函数)候选项集的产生与剪枝(构造apriori-gen函数)包含2个步骤:候选项集的产生:由频繁(k-1)-项集产生新的候选k-项集候选项集的剪枝:采用基于支持度的剪枝,删除一些候选k-项集第21页/共110页候选的产生与剪枝候选的产生与剪枝(构造构造apriori-gen函数函数)蛮力方法蛮力方法把所有的k-项集都看作可能的候选,然后使用候选剪枝除去不必要的候选第k层产生的候选项集的数目为 。(d为项的总数)虽然候
10、选产生是相当简单的,但是候选剪枝的开销极大,因为必须考察的项集数量太大。设每一个候选项集所需的计算量为O(k),这种方法 的总复杂度为第22页/共110页候选的产生与剪枝候选的产生与剪枝第23页/共110页Items(1-itemsets)Pairs(2-itemsets)Triplets(3-itemsets)支持度阈值=60%最小支持度计数=3枚举所有项集将产生 6C1+6C2+6C3=41个候选而使用先验原理,将较少为6+6+1=13第24页/共110页候选的产生与剪枝(候选的产生与剪枝(Fk-1XF1方法)方法)这种方法用其他频繁项来扩展每个频繁(k-1)-项集这种方法将产生 个候选k
11、-项集,其中|Fj|表示频繁j-项集的个数。这种方法总复杂度是这种方法是完全的,因为每一个频繁k-项集都是由一个频繁(k-1)-项集和一个频繁1-项集组成的。因此,所有的频繁k-项集是这种方法所产生的候选k-项集的一部分。然而,这种方法很难避免重复地产生候选项集。如:面包,尿布,牛奶不仅可以由合并项集面包,尿布和牛奶得到,而且还可以由合并面包,牛奶和尿布得到,或由合并尿布,牛奶和面包得到。第25页/共110页候选的产生与剪枝(候选的产生与剪枝(Fk-1XF1方法)方法)第26页/共110页候选的产生与剪枝(候选的产生与剪枝(Fk-1XF1方法)方法)避免产生重复的候选项集的一种方法是确保每个频
12、繁项集中的项以字典序存储,每个频繁(k-1)-项集X只用字典序比X中所有的项都大的频繁项进行扩展 如:项集面包,尿布可以用项集牛奶扩展,因为“牛奶”(milk)在字典序下比“面包”(Bread)和“尿布”(Diapers)都大。尽管这种方法比蛮力方法有明显改进,但是仍然产生大量不必要的候选。例如,通过合并啤酒,尿布和牛奶而得到的候选是不必要的。因为它的子集啤酒,牛奶是非频繁的。【每个K-项集,它的每一个项必须至少在k-1个(k-1)项集中出现,否则,这个K-项集是非频繁项集】第27页/共110页候选的产生与剪枝(候选的产生与剪枝(Fk-1XFk-1方法)方法)这种方法合并一对频繁(k-1)-项
13、集,仅当它们的前k-2个项都相同。如频繁项集面包,尿布和面包,牛奶合并,形成了候选3-项集面包,尿布,牛奶。算法不会合并项集啤酒,尿布和尿布,牛奶,因为它们的第一个项不相同。然而,由于每个候选都由一对频繁(k-1)-项集合并而成,因此,需要附加的候选剪枝步骤来确保该候选的其余k-2个子集是频繁的。第28页/共110页候选的产生与剪枝(候选的产生与剪枝(Fk-1XFk-1方法)方法)第29页/共110页6.2 频繁项集的产生频繁项集的产生6.2.1 先验原理6.2.2 Apriori算法的频繁项集产生6.2.3 候选的产生与剪枝6.2.4 支持度计数第30页/共110页支持度计数支持度计数支持度
14、计数过程确定在apriori-gen函数的候选项剪枝步骤保留下来的每个候选项集出现的频繁程度。计算支持度的主要方法:一种方法是将每个事务与所有的候选项集进行比较,并且更新包含在事务中的候选项集的支持度计数。这种方法是计算昂贵的,尤其当事务和候选项集的数目都很大时。另一种方法是枚举每个事务所包含的项集,并且利用它们更新对应的候选项集的支持度。第31页/共110页枚举事务枚举事务t的所有包含的所有包含3个项的子集个项的子集第32页/共110页产生产生Hash树树2 3 45 6 71 4 51 3 61 2 44 5 71 2 54 5 81 5 93 4 53 5 63 5 76 8 93 6
15、73 6 81,4,72,5,83,6,9Hash functionHash函数函数h(p)=p mod 3假设有假设有15个候选个候选3-项集项集:1 4 5,1 2 4,4 5 7,1 2 5,4 5 8,1 5 9,1 3 6,2 3 4,5 6 7,3 4 5,3 5 6,3 5 7,6 8 9,3 6 7,3 6 8第33页/共110页Hash树结构树结构1 5 91 4 51 3 63 4 53 6 73 6 83 5 63 5 76 8 92 3 45 6 71 2 44 5 71 2 54 5 81,4,72,5,83,6,9Hash FunctionCandidate Has
16、h TreeHash on 1,4 or 7第34页/共110页Hash树结构树结构1 5 91 4 51 3 63 4 53 6 73 6 83 5 63 5 76 8 92 3 45 6 71 2 44 5 71 2 54 5 81,4,72,5,83,6,9Hash FunctionCandidate Hash TreeHash on 2,5 or 8第35页/共110页Hash树结构树结构1 5 91 4 51 3 63 4 53 6 73 6 83 5 63 5 76 8 92 3 45 6 71 2 44 5 71 2 54 5 81,4,72,5,83,6,9Hash Funct
17、ionCandidate Hash TreeHash on 3,6 or 9第36页/共110页使用使用Hash树进行支持度计数树进行支持度计数1 5 91 4 51 3 63 4 53 6 73 6 83 5 63 5 76 8 92 3 45 6 71 2 44 5 71 2 54 5 81 2 3 5 61+2 3 5 63 5 62+5 63+1,4,72,5,83,6,9Hash Functiontransaction第37页/共110页使用使用Hash树进行支持度计数树进行支持度计数1 5 91 4 51 3 63 4 53 6 73 6 83 5 63 5 76 8 92 3 4
18、5 6 71 2 44 5 71 2 54 5 81,4,72,5,83,6,9Hash Function1 2 3 5 63 5 61 2+5 61 3+61 5+3 5 62+5 63+1+2 3 5 6transaction第38页/共110页使用使用Hash树进行支持度计数树进行支持度计数1 5 91 4 51 3 63 4 53 6 73 6 83 5 63 5 76 8 92 3 45 6 71 2 44 5 71 2 54 5 81,4,72,5,83,6,9Hash Function1 2 3 5 63 5 61 2+5 61 3+61 5+3 5 62+5 63+1+2 3
19、5 6transaction15个项集中的9个与事务进行比较第39页/共110页存放在被访问的叶结点中的候选项集与事务进行比较,如果候选项集是该事务的子集,则增加它的支持度计数。在该例子中,访问了9个叶子结点中的5个。15个项集中的9个与事务进行比较第40页/共110页6.2 频繁项集的产生频繁项集的产生6.2.1 先验原理6.2.2 Apriori算法的频繁项集产生6.2.3 候选的产生与剪枝6.2.4 支持度计数6.2.5 计算复杂度第41页/共110页计算复杂度计算复杂度支持度阈值 降低支持度阈值通常将导致更多的项集是频繁的。计算复杂度增加随着支持度阈值的降低,频繁项集的最大长度将增加,
20、导致算法需要扫描数据集的次数也将增多项数 随着项数的增加,需要更多的空间来存储项的支持度计数。如果频繁项集的数目也随着数据项数增加而增长,则由于算法产生的候选项集更多,计算量和I/O开销将增加事务数 由于Apriori算法反复扫描数据集,因此它的运行时间随着事务数增加而增加事务的平均宽度频繁项集的最大长度随事务平均宽度增加而增加随着事务宽度的增加,事务中将包含更多的项集,这将增加支持度计数时Hash树的遍历次数第42页/共110页第43页/共110页6.3 规则的产生规则的产生6.1 问题定义6.2 频繁项集的产生6.3 规则的产生 第44页/共110页规则产生规则产生忽略那些前件或后件为空的
21、规则,每个频繁k-项集能够产生多达2k-2个关联规则关联规则的提取:将一个项集 Y划分成两个非空的子集 X 和Y-X,使得X Y X满足置信度阈值。如果 A,B,C,D 是频繁项集,候选项集为:ABC D,ABD C,ACD B,BCD A,A BCD,B ACD,C ABD,D ABCAB CD,AC BD,AD BC,BC AD,BD AC,CD AB,这样的规则必然已经满足支持度阈值,因为它们是由频繁项集产生的。第45页/共110页规则产生规则产生怎样有效的从频繁项集中产生关联规则?一般,计算关联规则的置信度并不需要再次扫描事务数据集。规则A,B,C D的置信度为(ABCD)/(ABC)
22、。因为这两个项集的支持度计数已经在频繁项集产生时得到,因此不必再扫描整个数据集如果规则X Y-X不满足置信度阈值,则形如XY-X的规则一定也不满足置信度阈值,其中X是X的子集。例如:c(ABC D)c(AB CD)c(A BCD)因为(AB)(ABC),则(ABCD)/(ABC)(ABCD)/(AB),则c(ABC D)c(AB CD)第46页/共110页Apriori 算法中规则的产生算法中规则的产生被剪枝的被剪枝的规则规则低置信度规则第47页/共110页Apriori 算法中规则的产生算法中规则的产生第48页/共110页6.4 频繁项集的紧凑表示频繁项集的紧凑表示6.1 问题定义6.2 频
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 挖掘 导论 关联 分析
限制150内