机器学习-FPGROWTH算法ppt课件_第1页
机器学习-FPGROWTH算法ppt课件_第2页
机器学习-FPGROWTH算法ppt课件_第3页
机器学习-FPGROWTH算法ppt课件_第4页
机器学习-FPGROWTH算法ppt课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器学习-FP-GROWTH算法,李家豪,1,目录,2,回忆Apriori算法,项集:项的集合称为项集,即商品的组合。k项集:k件商品的组合,不关心商品件数,仅商品的种类。频繁项集:如果项集的相对支持度满足给定的最小支持度阈值,则该项集是频繁项集。强关联规则:满足给定支持度和置信度阈值的关联规则支持度:support(A-B)=P(AB)置信度:confidence(A-B)=P(A|B),3,回忆Apriori算法,4,回忆Apriori算法,5,Apriori算法的挑战,挑战多次数据库扫描巨大数量的候补项集繁琐的支持度计算改善Apriori:基本想法减少扫描数据库的次数减少候选项集的数量简化候选项集的支持度计算,6,FP-GROWTH算法优点,相比Apriori算法需要多次扫描数据库,FPGrowth只需要对数据库扫描2次。第1次扫描事务数据库获得频繁1项集。第2次扫描建立一颗FP-Tree树。,7,FP-GROWTH算法原理-实例1,要找总是一起购买的商品,比如薯片,鸡蛋就是一条频繁模式(规律)。,8,FP-GROWTH算法原理-实例1-统计频次,Step1:先扫描数据库,统计所有商品的出现次数(频数),然后按照频数递减排序,删除频数小于最小支持度的商品。设最小支持度数为:minsup=4统计频数:牛奶6,鸡蛋7,面包7,薯片7,爆米花2,啤酒4,黄油2.降序排序:薯片7,鸡蛋7,面包7,牛奶6,啤酒4(删除小于minsup的商品),频繁1项集,记为F1,9,FP-GROWTH算法原理-实例1-重新排序,Step2:对每一条数据记录,按照F1重新排序。,10,FP-GROWTH算法原理-实例1-建立FP树,Step3:把第二步重新排序后的记录,插入到fp-tree中Step3.1:插入第一条(第一步有一个虚的根节点),11,FP-GROWTH算法原理-实例1-建立FP树,Step3.2:插入第二条。根结点不管,然后插入薯片,在step3.1的基础上+1,则记为2;同理鸡蛋记为2;啤酒在step3.1的树上是没有的,那么就开一个分支。,12,FP-GROWTH算法原理-实例1-建立FP树,Step3.3:插入第三条,13,FP-GROWTH算法原理-实例1-建立FP树,同理,剩余记录依次插入fp-tree中。,14,FP-GROWTH算法原理-实例1-建立FP树,图中左边的一列叫做头指针表,树中相同名称的节点要链接起来,链表的第一个元素就是头指针表里的元素。,虚线连接起来的表示同一个商品,各个连接的数字加起来就是该商品出现的总次数。,15,FP-GROWTH算法原理-实例1-挖掘频繁项集,Step4:从FP-Tree中找出频繁项集。遍历表头项中的每一项(以“牛奶:6”为例),从FP-Tree中找到所有的“牛奶”结点,向上遍历它的祖先结点,得到4条路径,如表所示。,16,FP-GROWTH算法原理-实例1-挖掘频繁项集,Step4:从FP-Tree中找出频繁项集。对于每一条路径上的节点,其count都设置为牛奶的count(路径中最末尾的商品数),17,FP-GROWTH算法原理-实例1-挖掘频繁项集,Step4:从FP-Tree中找出频繁项集。因为每一项末尾都是牛奶,可以把牛奶去掉,得到条件模式基,此时的后缀模式是:牛奶。,18,FP-GROWTH算法原理-实例2,把例子简化一下,请看以下实例2,19,FP-GROWTH算法原理-实例2-统计频次,先扫描数据库,统计所有商品的出现次数(频数)定义min_sup=2,按照频数递减排序,删除频数小于最小支持度的商品。重新排列得到频繁1-项目集F,20,FP-GROWTH算法原理-实例2-重新排序,21,FP-GROWTH算法原理-实例2-创建根结点和频繁项目表,Null,22,FP-GROWTH算法原理-实例2-加入第一个事务(I2,I1,I5),23,FP-GROWTH算法原理-实例2-加入第二个事务(I2,I4),24,FP-GROWTH算法原理-实例2-加入第三个事务(I2,I3),25,FP-GROWTH算法原理-实例2-加入第四个事务(I2,I1,I4),26,FP-GROWTH算法原理-实例2-加入第五个事务(I1,I3),27,FP-GROWTH算法原理-实例2-加入第六个事务(I2,I3),28,FP-GROWTH算法原理-实例2-加入第七个事务(I1,I3),29,FP-GROWTH算法原理-实例2-加入第八个事务(I2,I1,I3,I5),30,FP-GROWTH算法原理-实例2-加入第九个事务(I2,I1,I3),31,FP-GROWTH算法原理-实例2-挖掘频繁项集,首先考虑I5,得到条件模式基:、构造条件FP-Tree,得到I5频繁项集:I2,I5,I1,I5,I2,I1,I5,32,FP-GROWTH算法原理-实例2-挖掘频繁项集,接着考虑I4,得到条件模式基:、构造条件FP-Tree,得到I4频繁项集:I2,I4,33,FP-GROWTH算法原理-实例2-挖掘频繁项集,然后考虑I3,得到条件模式基:、构造条件FP-Tree,由于此树不是单分支路径,因此需要递归挖掘I3,34,FP-GROWTH算法原理-实例2-挖掘频繁项集,递归考虑I3,此时得到I1条件模式基,即I1,I3的条件模式基为构造条件FP-Tree,得到I3的频繁项目集I2,I3,I1,I3,I2,I1,I3,35,FP-GROWTH算法原理-实例2-挖掘频繁项集,最后考虑I1,得到条件模式基:构造条件FP-Tree,得到I1的频繁项目集:I2,I1,36,FP-GROWTH算法实现-数据处理,格式化处理,37,代码实现-FP树数据结构,38,代码实现-构造FP树步骤,39,代码实现-构造FP树,40,代码实现-构造FP树,41,代码实现-构造FP树(updateTree函数),42,代码实现-构造FP树(updateHeader函数),43,代码实现-构造FP树(验证),44,代码实现-挖掘频繁项集步骤,从构建好的FP树中抽取频繁项集的步骤如下:(1)从FP树中获取条件模式基;(2)利用条件模式基,构建一个条件FP树;(3)迭代重复(1)(2),直到树包含一个元素项为止。,45,条件模式基定义,条件模式基是以所查找元素项为结尾的路径集合。每一条路径其实都是一条前缀路径。简而言之,一条前缀路径就是介于所查找元素项与树根节点之间的所有内容。每一个频繁项的所有前缀路径(条件模式基):,46,代码实现-抽取条件模式基,eg:t的第1条前缀路径prefixPath=t,s,y,x,z;,47,代码实现-抽取条件模式基,48,代码实现-抽取条件模式基(验证),49,代码实现-创建条件FP树,50,代码实现-创建条件FP树,51,代码实现-运行,52,示例:从新闻网站点击流中挖掘新闻报

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论