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