数据挖掘FP-tree树

上传人:su****e 文档编号:183730693 上传时间:2023-01-31 格式:DOCX 页数:7 大小:178.55KB
收藏 版权申诉 举报 下载
数据挖掘FP-tree树_第1页
第1页 / 共7页
数据挖掘FP-tree树_第2页
第2页 / 共7页
数据挖掘FP-tree树_第3页
第3页 / 共7页
资源描述:

《数据挖掘FP-tree树》由会员分享,可在线阅读,更多相关《数据挖掘FP-tree树(7页珍藏版)》请在装配图网上搜索。

1、FPtree算法的思考与实现数据仓库与数据挖掘课程报告FP-tree算法的思考与实现指导老师: 蒋良孝 姓 名: 赵冠豪 班 级: 086131 学 号: 20131002562 2015年10月FP-Tree算法的思考与实现1.发现问题在学习数据仓库与数据挖掘课程中,有关关联分析的算法,首先是在1994年R.Agrawal和R.Srikant提出的布尔关联规则挖掘频繁项集的原创性算法Apriori算法,一种使用候选产生发现频繁项集的算法。下面以课本P151页例5-3来进行Apriori算法的演示。AllElectronics某分店的业务数据TID商品ID的列表T100I1,I2,I3T200

2、I2,I4T300I2,I3T400I1,I2,I4T500I1,I3T600I2,I3T700I1,I3T800I1,I2,I3,I5T900I1,I2,I3假设候选项集和频繁项集的产生,最小支持计数为2那么根据Apriori算法进行演示:项集支持度计数I1I2I3I4I567622项集支持度计数I1I2I3I4I567622L1 C1比较候选支持度计数与最小支持度计数扫描D,对每个候选计数项集支持度计数I1,I2I1,I3I1,I5I2,I312,I4I2,I5442422C2由L1产生候选C2,并扫描D对每个候选计数 项集支持度计数I1,I2I1,I3I1,14I1,I5I2,I312,

3、I4I2,I5I3,I4I3,I5I4,154412422010L2项集支持度计数I1,I2,I3I1,I2,I522项集支持度计数I1,I2,I3I1,I2,I522L3C3比较候选支持度计数与最小支持度计数由L2产生候选C3,并扫描D对每个候选计数比较候选支持度计数与最小支持度计数 通过此演示,我们可以清晰地发现:虽然在许多情况下,Apriori的候选产生-检查方法显著压缩了候选项集的大小,并导致很好的性能。然而,Apriori算法的每次迭代都会扫描事务数据库,并且每次每次都会产生大量候选项集,这是Apriori算法的致命缺陷。例如,如果有104个频繁1项集,则Apriori算法需要产生多

4、达107个候选二项集。此外为发现长度为100的频繁模式,如a1,a2,a100,必须产生总过多达2100大约为1030个候选。再如,Apriori算法需要不断重复扫描数据库,通过模式匹配检查一个很大的候选集合。检查数据库中的每个事务来确定候选项集的支持度的开销非常大。因此我们可以得到一个很清晰的结论,在一般情况下,我们在使用Apriori算法(使用候选产生发现频繁项集的方法)进行关联分析时,想要找到感兴趣的规则,开销是非常大的,而这正是Apriori算法在实际运用中要改善的问题。2.分析问题经过上面的分析我们可以确定,Apriori算法的两大限制:产生大量的候选集;重复扫描事务数据库。那么我们

5、分析如何提高Apriori算法的效率时,就有着两大分析方向。一是考虑降低是事务数据库的扫描次数,如能不能先扫描一次事务数据库,然后进行分类划分,找出局部频繁项集,然后在进行下次扫描。二是考虑如何压缩候选集,在产生的时候就进行剔除,或者对未来要产生的候选项集,增加一个规则,压缩未来迭代扫描的事务数。显然无论是降低扫描的事务数据库的次数,还是压缩产生的候选集,都是针对于Apriori算法本身的调整,这就不可能在本质上解决Apriori算法的效率低下问题。在思考这个问题时,我很容易想到,既然是产生大量的候选项集,那么一个很直接的办法就是:能不能不产生候选集,而直接发现频繁项集,从而找出感兴趣的关联规

6、则呢。如果我们不产生大量的候选集,那么扫描事务数据库进行匹配的次数也自然就会大大降低。我在思考过程中,想到老师上课讲到的一句话“把条件进行简单化处理,先找出一个可行解”,这样思维就大大开阔。联系到数据仓库与数据挖掘在开始的课程“分类”中的第一个方法:决策树,显然关联分析是进行名词性布尔值的分析,而决策树的应用范围也正是名词性数据的分类。我们来对比下,在决策树算法中,我们根据元组的信息增益的大小来进行生成树的判断依据。类比决策树算法,我们可以利用关联分析中事务发生的支持计数的大小来代替熵减值。根据我在算法导论中所学习到的思想递归算法中的分治策略,再加上决策树这个“先例”的借鉴,我对于提高Apri

7、ori算法的效率有了一个较为清晰的方向。首先,对于事务数据库中的所有事务都是由一项集构成的,所以我们可以根据在整个事务数据库中所有的一项集的支持计数来进行排序(类似决策树中对于每个元组的熵减值计算)。接着,参考决策树算法中树的生成方法和分治策略思想,我们在扫描事务数据库的一个事务时,根据第一步的排序顺位,进行调整,将该事务的所有项都有序化,依照顺序建立一棵树,下次的事务按照这个方法继续对前面的树的节点值进行修改、增加节点或者生成另一棵树,这样我们就可以保证越靠近树根的支持计数越高,而叶子节点的支持计数越低,十分有利于降低我们在挖掘有趣规则时的开销。3.解决问题经过上面的分析后,我们对于怎么提高

8、Apriori算法的有了一个有效的解决办法。而且在2000年针对Apriori算法的固有缺陷,J.Han等人提出了不产生候选频繁项集的方法即FP-tree 算法。该算法直接将事务数据库压缩成一个频繁模式树,然后通过这棵树生成关联规则。而这个算法和我上面分析时提出的思想大致相同,下面我们仍然根据书上的例子进行FP-tree算法的演示:第一步,进行事务数据库的扫描,得到每个一项集的支持计数,然后进行排序。所有一项集的计数:I1,6,I2,7I3,6,I4,2,I5,2;按照支持计数进行排序I2I1I3I4I576622第二步,扫描事务数据库的每个事务,生成树。I1: 2I3: 2I5: 1I4:

9、1I3: 2I4: 1I3: 2I5: 1I1: 4I2: 7Null第三步,进行强关联规则的挖掘。挖掘前,先进行一下解释和定义:由每个长度为1的频繁模式(初始后缀模式)开始,构造它的条件模式基(一个“子数据库”,由FP树与后缀式一起出现的前缀路径集组成),然后,构造它的(条件)FP树,并递归地对该树进行挖掘。模式增长通过后缀模式与条件FP树产生的频繁模式连接实现。首先考虑I5L中的最后一项,而不是第一个。I5出现在树最深层的叶子节点上,并且有两个叶子节点,我们把这两条路径列出来I2,I1,I5:1,I2,I1,I3,I5:1,显然I5的前缀路径是I2,I1:1,I2,I1,I3:1,形成I5

10、的条件模式基,而它的条件FP树显然只包含I2,I1:2(I3只出现一次,小于最小支持计数2)。因此次路径产生的频繁模式的所有组合:I2,I5:2,I1,I5:2,I2,I1,I5:2。那么基于I5的所有条件模式产生的频繁模式都找到了。同样的方法进行I4,I3 I1的迭代,得到下表:项 条件模式基 条件FP树 产生的频繁模式I5 I2 I1:1, I2 I5:2,I1 I5:2I2 I1,I3:1 I2 I1 I5:2I4 I2 I1:1 I2 I4:2 I2:1I3 I2 I1:2 I2 I3:4,I1 I3:4 I2:2,I1:2 I2 I1 I3:2I1 I2:4 I2 I1:44.得出结

11、论根据上面的算法演示,我们接下来进行试验测试。首先根据上机时老师讲到的利用Myeclipse将weka当做一个项目文件,在java平台运行。由于我只是实现了FP-tree算法,所以我直接运用weka平台进行数据测试,测试数据为weka平台自带的数据supermarket.arff。首先我先用Apriori算法进行测试,supermarket.arff(1979 KB大小的数据),从点击Start开始,到运行处结果,大概用了8s。测试结果如下图:接着我利用FPGrowth算法进行了测试,耗时不到1s。测试结果如下:我分别选取两个算法生成的频繁项集的最强关联规则的项集如下:Apriori算法:1.

12、 biscuits=t frozen foods=t fruit=t total=high 788 = bread and cake=t 723 conf:(0.92)FPGrowth算法:1. fruit=t, frozen foods=t, biscuits=t, total=high: 788 = bread and cake=t: 723 lift:(1.27) lev:(0.03) conv:(3.35)两者对比可见结果是一致的,这保证了FP-tree算法是正确的。同时由测试时时间不同Apriori算法耗时约8s,FPGrowth算法大概1s,便可清晰的看出FP-tree算法对于Ap

13、riori算法的优势。同时,由于我学过算法导论,根据里面的知识,通过课本上的伪代码可以计算出Apriori算法的时间复杂度为O(n3),而FP-tree算法的时间复杂度为O(n),显而易见两者不在一个数量级上。由于我只会怎么计算时间复杂度,不懂怎么计算空间复杂度,所以不能给出怎么空间复杂度的比较。5.心得体会 这次课程报告,我前前后后写了差不多1周,因为自己对算法这部分内容很感兴趣,自己课下学习了算法导论,所以看这些思想和代码,感觉收获也是很大,对于关联分析的算法和用途,有了较为深刻和全面的了解。同时也引起了我对数据挖掘课程继续深入学习的兴趣。参考资料:数据挖掘概念与技术 Jiawei Han、Micheline Kanber。 算法导论 Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest、Clifford Stein。6

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!