(数据挖掘)关联规则挖掘——Apriori算法、fp—Tree算法.pptVIP

(数据挖掘)关联规则挖掘——Apriori算法、fp—Tree算法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关联规则挖掘 * 1、Apriori算法 Apriori算法命名源于算法使用了频繁项集性质的先验(Prior)知识。 Apriori算法将发现关联规则的过程分为两个步骤: 通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阈值的项集; 利用频繁项集构造出满足用户最小信任度的规则。 挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。 Apriori的性质: 性质1:频繁项集的所有非空子集必为频繁项集。 性质2:非频繁项集的超集一定是非频繁的。 Apriori的步骤: 连接步:为找Lk ,通过将Lk-1与自身连接产生候选k项集的集合 剪枝步:Ck是Lk 的超集,也就是说,Ck的成员可以是也可以不是频繁的,但所有的频繁k项集都包含在Ck中。 任何非频繁的(k-1)项集都不是频繁k项集的子集。 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算法的不足 Ck中的项集是用来产生频集的候选集,最后的频集Lk必须是Ck的一个子集。Ck中的每个元素需在交易数据库中进行验证来决定其是否加入Lk,这里的验证过程是算法性能的一个瓶颈。这个方法要求多次扫描可能很大的交易数据库,即如果频集最多包含10个项,那么就需要扫描交易数据库10遍,这需要很大的I/O负载。 提高Apriori算法的方法 Hash-based itemset counting(散列项集计数) Transaction reduction(事务压缩) Partitioning(划分) Sampling(采样) Hash-based itemset counting(散列项集计数) 将每个项集通过相应的hash函数映射到hash表 中的不同的桶中,这样可以通过将桶中的项集 计数跟最小支持计数相比较先淘汰一部分项集。 Transaction reduction(事务压缩) 减少用于未来扫描的事务集的大小。一个基本的原理就是当一个事务不包含长度为k的频集,则必然不包含长度为k+1的频集。从而我们就可以将这些事务加上标记或者删除,这样在下一遍的扫描中就可以减少进行扫描的事务集的个数。这个就是AprioriTid的基本思想。 Partitioning(划分) 挖掘频繁项集只需要两次数据库扫描 D中的任何频繁项集必须作为局部频繁项集至少出现在一个部分中 第一次扫描:将数据划分为多个部分并找到局部频繁项集 第二次扫描:评估每个候选项集的实际支持度,以确定全局频繁项集 Sampling(采样) 基本思想:选择原始数据的一个样本,在这个样本上用Apriori算法挖掘频繁模式 通过牺牲精确度来减少算法开销,为了提高效率,样本大小应该以可以放在内存中为宜,可以适当降低最小支持度来减少遗漏的频繁模式 可以通过一次全局扫描来验证从样本中发现的模式 可以通过第二此全局扫描来找到遗漏的模式 2000年,Han等提出了一个称为FP-tree的算法。 FP-tree算法只进行2次数据库扫描。它不使用候选集,直接压缩数据库成一个频繁模式树,最后通过这棵树生成关联规则。 FP-tree算法由两个主要步骤完成:①利用事务数据库中的数据构造FP-tree;②从FP-tree中挖掘频繁模式。 完备: 不会打破交易中的任何模式 包含了频繁模式挖掘所需的全部信息 紧密 去除不相关信息—不包含非频繁项 支持度降序排列: 支持度高的项在FP-tree中共享的机会也高 决不会比原数据库大(如果不计算树节点的额外开销) 步骤2:频繁模式的挖掘 具体过程: (1 ) 根据事务数据库D 和最小支持度min_sup, 调用建树过程建立FP-tree; (2 ) if (FP-tree 为简单路径) 将路径上支持度计数大于等于min_sup 的节点任意组合,得到所需的频繁模式 else 初始化最大频繁模式集合为空 (3 ) 按照支持频率升序,以每个1 - 频繁项为后缀,调用挖掘算法挖掘最大频繁模式集 (4 ) 根据最大频繁模式集合中最大频繁模式,

文档评论(0)

55863368 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档