Mahout关联规则算法挖掘FP树
来源:互联网 发布:mysql union 排序 编辑:程序博客网 时间:2024/05/04 12:42
关联规则如何并行实现呢?一个很直观的想法是要么分数据要么分计算。本文要说的是分数据,想法来自mahout的fp-tree并行实现。其中分数据的博客已在前篇 mahout关联规则FPGrowthDriver源码分析之如何分数据 中说明,如何建树可以在网上查找(这个相对来说比较简单)或者直接看此片论文:《Mining FrequentPatterns without Candidate Generation》,这篇博客要说的是如何挖掘已经建好的FP-tree,也是参考《Mining FrequentPatterns without Candidate Generation》的(最好对照原篇来看,原篇为全英)。
先把建好的树贴出来看:
挖掘的过程即为遍历Header table中的每个item,然后重新构造事务集,以及相应的f-list,然后重新建树的过程。下面就p和m项目进行演示:
查找项目p在fp-tree的链接可以找到两条路径:f,c,a,m:2; c,b:1 这里的次数以p的次数为准,比如f:4,c:3,a:3,m:2,因为后面的p:2,所以f,c,a,m:2;
则其事务集为{[f,c,a,m:2],[c,b:1]},其g-list为c:3;所以其建好的树为:
由于上面的树是单支(原文为:only one branch),所以可以直接输出模式cp:3。(此处默认的阈值为3)
对于项目m,其事务集为 {[f,c,a:2],[f,c,a,b:1]},g-list: [f:3,c:3,a:3],事务集根据g-list进行删减项目得到新的事务集为{[f,c,a:2],[f,c,a:1]},则由新的事务集和g-list构造的fp-tree为:
对上面的树的挖掘和最开始的树是一样的,即分别对项目a、c、f进行挖掘。
1. 项目a:
输出(am:3)模式同时调用"mine(f:3,c:3)|am" ,"mine(f:3,c:3)|am" 输出(cam:3,fam:3)模式,以及调用"mine(f:3)|cam",这个调用输出(fcam:3)模式 ;
2. 项目c:
输出(cm:3)模式同时调用"mine(f:3)|cm","mine(f:3)|cm"输出(fcm:3)
3. 项目f:
直接输出模式(fm:3)
所以最原始的树上面项目p生成的模式为:(cp:3),项目m生成的模式为:(am:3)(cam:3)(fam:3)(fcam:3)(cm:3)(fcm:3)(fm:3)。其他的项目按照上面同样的规则进行生成频繁项目集。
分享,快乐,成长
转载请注明出处:http://blog.csdn.net/fansy1990
- Mahout关联规则算法挖掘FP树
- 关联规则挖掘:FP-Growth算法
- 关联规则挖掘算法-FP-Growth
- MAHOUT之关联规则挖掘算法
- 频繁关联规则挖掘之FP树
- 博客推荐系统--mahout FP关联规则算法应用1
- 数据挖掘进阶之关联规则挖掘FP-Growth算法
- 【数据挖掘算法】关联规则——Fp-tree算法
- 关联规则挖掘FP方法
- 数据挖掘——关联规则之FP-Tree算法
- 关联规则挖掘算法-Top Down FP-Growth
- 关联挖掘算法FP-Tree
- 基于FP-tree的关联规则挖掘FP-growth算法基本思想
- 数据挖掘回顾十二:关联规则挖掘之 FP-Growth 算法
- 数据挖掘 关联规则的FP-growth-tree(FP增长树)的python实现(二)
- 数据挖掘 关联规则的FP-growth-tree(FP增长树)的python实现 使用方法
- 博客推荐系统--mahout FP关联规则应用2
- 不产生候选集的关联规则挖掘算法FP-Tree
- 视频图像处理------人头识别
- 2368. Penney Game
- CF 27D Ring Road 2
- 打造最佳开发团队的几点建议
- HDU 4510 小Q系列故事——为什么时光不能倒流
- Mahout关联规则算法挖掘FP树
- AT指令之通信录PDU编码
- 最小公倍数(LCM)和最大公约数(GCD)
- Android开发中实现多点触摸的方法
- 在支持ARC工程中编译不支持ARC的文件
- LoadRunner常见问题(一)
- 内连接和外连接
- 答案与一些问题
- 我所理解的设计模式(C++实现)——单例模式(Singleton Pattern)