- 13
- 0
- 约1.29万字
- 约 65页
- 2017-12-13 发布于江苏
- 举报
挖掘关联规则算法
Data Mining: Concepts and Techniques 第5章:挖掘关联规则 关联规则挖掘 事务数据库中(单维布尔)关联规则挖掘的可伸缩算法 挖掘各种关联/相关规则 基于限制的关联挖掘- 顺序模式挖掘 小结 关联规则 关联规则反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么,其中一个事物就能够通过其他事物预测到。 典型的关联规则发现问题是对超市中的货篮数据(Market Basket)进行分析。通过发现顾客放入货篮中的不同商品之间的关系来分析顾客的购买习惯。 什么是关联规则挖掘 关联规则挖掘 首先被Agrawal, Imielinski and Swami在1993年的SIGMOD会议上提出 在事务、关系数据库中的项集和对象中发现频繁模式、关联规则、相关性或者因果结构 频繁模式: 数据库中频繁出现的项集 目的: 发现数据中的规律 超市数据中的什么产品会一起购买?— 啤酒和尿布 在买了一台PC之后下一步会购买? 哪种DNA对这种药物敏感? 我们如何自动对Web文档进行分类? 频繁模式挖掘的重要性 许多重要数据挖掘任务的基础 关联、相关性、因果性 序列模式、空间模式、时间模式、多维 关联分类、聚类分析 更加广泛的用处 购物篮分析、交叉销售、直销 点击流分析、DNA序列分析等等 挖掘关联规则—一个例子 规则 A ? C: 支持度 = support({A}?{C}) = 50% 置信度 = support({A}?{C})/support({A}) = 66.6% 关联规则基本模型 关联规则就是支持度和信任度分别满足用户给定阈值的规则。 发现关联规则需要经历如下两个步骤: 找出所有频繁项集。 由频繁项集生成满足最小信任度阈值的规则。 Apriori算法的步骤 Apriori算法命名源于算法使用了频繁项集性质的先验(Prior)知识。 Apriori算法将发现关联规则的过程分为两个步骤: 通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阈值的项集; 利用频繁项集构造出满足用户最小信任度的规则。 挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。 频繁项集 为了避免计算所有项集的支持度(实际上频繁项集只占很少一部分),Apriori算法引入潜在频繁项集的概念。 若潜在频繁k项集的集合记为Ck ,频繁k项集的集合记为Lk ,m个项目构成的k项集的集合为 ,则三者之间满足关系Lk ?Ck ? 。 构成潜在频繁项集所遵循的原则是“频繁项集的子集必为频繁项集”。 关联规则的性质 性质1:频繁项集的子集必为频繁项集。 性质2:非频繁项集的超集一定是非频繁的。 Apriori算法运用性质1,通过已知的频繁项集构成长度更大的项集,并将其称为潜在频繁项集。 潜在频繁k项集的集合Ck 是指由有可能成为频繁k项集的项集组成的集合。 以后只需计算潜在频繁项集的支持度,而不必计算所有不同项集的支持度,因此在一定程度上减少了计算量。 Apriori: 一种候选产生-测试方法 频繁项集的任何子集必须是频繁的 如果 {beer, diaper, nuts} 是频繁的, {beer, diaper}也是 每个包含 {beer, diaper, nuts}的事务 也包含 {beer, diaper} Apriori 剪枝原则: 如果一个项集不是频繁的, 将不产生/测试它的超集! 方法: 由长度为k的频繁项集产生长度为 (k+1) 的候选项集, 并且 根据 DB测试这些候选 性能研究表明了它的有效性和可伸缩性 Apriori 算法 — 一个例子 Apriori算法 (1) L1={频繁1项集}; (2) for(k=2;Lk-1??;k++) do begin (3) Ck=apriori_gen(Lk-1); //新的潜在频繁项集 (4) for all transactions t?D do begin (5) Ct=subset(Ck,t); //找出t中包含的潜在的频繁项 (6) for all candidates c?Ct do (7) c.count++; (8) end; (9) Lk={c?Ck|c.count?minsup} (10) end; (11) Answer= Apriori的重要细节 如何产生候选? 步骤 1: Lk的自连接 步骤 2: 剪枝 候选产生的例子 L3={abc, abd, acd, ace, bcd} 自连接: L3*L3 Abcd:由
原创力文档

文档评论(0)