Apriori算法与FP.pptxVIP

  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文档。上传文档
查看更多
Apriori算法与FP-growth算法分析比较姓名:李佳丽学号priori算法简介实验数据介绍目录目录1FP-growth算法简介23算法性能测试与分析45总结Apriori算法简介1Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过生成候选集一层一层向下挖掘产生频繁项集。该算法已经被广泛的应用到商业、网络安全等各个领域。该算法的基本思想是:(1)扫描数据库,在最小支持度的支持下产生频繁项;(2)频繁项自连接;(3)剪枝(即频繁项自连接以后的项的子集都应该是频繁项,若有子集不是频繁项的,则删除此项);(4)产生候选项;(5)循环调用以上4步,产生最终的频繁项集。1Apriori算法伪代码:(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; 2Apriori主要函数:(1)获取频繁1项集private MapString, Integer getItem1FC()(2)获取候选项集private MapString, Integer getCandidateCollection() 自连接:if (tmp1.length == 1) {···}//是1项集吗 else {boolean flag = true;···}//可以进行连接吗 剪枝:boolean hasInfrequentSubSet = false;// 是否有非频繁子项集,默认无(3)获取频繁项集 public MapString, Integer getFC() 对候选项进行累加计数:boolean flag = true;// 用来判断交易中是否出现该候选项,如果出现,计数加1 从候选集中找到符合支持度的频繁集项:if (count = supp) {…} 合并所有频繁集:(4)主函数public static void main(String[] args) {//读入数据;//调用Apriori算法}2Frequent-Pattern growth算法简介2FP-growth算法(FrequentPattern-growth)使用了一种紧缩的数据结构来存储查找频繁项集所需要的全部信息。该算法的基本思想是:(1)扫描数据库一次, 找出频繁1-itemset (单个项的模式),按频率的降序将频繁项排序, 得到 f-list;(2)再次扫描数据库, 构造 FP-tree;(3)为FP-tree中的每个节点生成条件模式基;(4)用条件模式基构造对应的条件FP-tree;(5)递归构造条件 FP-trees 同时增长其包含的频繁集。另外:如果条件FP-tree只包含一个路径,则直接生成所包含的频繁集。1FP_Tree算法伪代码:算法:FP-Tree构造算法 输入:事务数据集 D,最小支持度阈值 min_sup 输出:FP-Tree (1)   扫描事务数据集 D 一次,获得频繁项的集合 F 和其中每个频繁项的支持度。对 F 中的所有频繁项按其支持度进行降序排序,结果为频繁项表 L ; (2)   创建一个 FP-Tree 的根节点 T,标记为“null”; (3)   for 事务数据集 D 中每个事务 Trans do (4)     对 Trans 中的所有频繁项按照 L 中的次序排序; (5)     对排序后的频繁项表以 [p|P] 格式表示,其中 p 是第一个元素,而 P 是频繁项表中除去 p 后剩余元素组成的项表; (6)     调用函数 insert_tree( [p|P], T ); (7)   end for 3算法: FP-Tree的挖掘 通过调用FP_growth(FP_tree,null)实现。该过程实现如下。 函数的输入:tree是指原始的FPTree或者是某个模式的条件FPTree,a是指模式的后缀(在第一次调用时a=NULL,在之后的递归调用中a是模式后缀) 函数的输出:在递归调用过程中输出所有的模式及其支持度(比如{I1,I2,I3}的支持度为2)。每一次调用FP_growth输出结果的模式中一定包含FP_growth函数输入的模式后缀。Procedure FP_growth(Tree,a)

文档评论(0)

有一二三 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档