并行化频繁模式挖掘算法FP Growth及其在Mahout下的命令使用

今天调研了并行化频繁模式挖掘算法PFP Growth及其在Mahout下的命令使用,简单记录下试验结果,供以后查阅:

环境:Jdk1.7 + Hadoop2.2.0单机伪集群 +  Mahout0.6(0.8和0.9版本都不包含该算法。Mahout0.6可以和Hadoop2.2.0和平共处有点意外orz)

部分输入数据,输入数据一行代表一个购物篮:

4750,19394,25651,6395,5592
26180,10895,24571,23295,20578,27791,2729,8637
7380,18805,25086,19048,3190,21995,10908,12576
3458,12426,20578
1880,10702,1731,5185,18575,28967
21815,10872,18730
20626,17921,28930,14580,2891,11080
18075,6548,28759,17133
7868,15200,13494
7868,28617,18097,22999,16323,8637,7045,25733
12189,8816,22950,18465,13258,27791,20979
26728
17512,14821,18741
26619,14470,21899,6731
5184
28653,28662,18353,27437,5661,12078,11849,15784,7248,7061,18612,24277,4807,15584,9671,18741,3647,1000

。。。。。。

执行命令:

mahout fpg -i /workspace/dataguru/hadoopdev/week13/fpg/in/ -o /workspace/dataguru/hadoopdev/week13/fpg/out -method mapreduce -s 3

参数说明:

-i 输入路径,由于运行在hadoop环境中,所以输入路径必须是hdfs路径,实验的输入路径是/workspace/dataguru/hadoopdev/week13/fpg/in/user2items.csv

-o输出路径,指定hdfs中的输出路径

完整参数说明参见下表:

命令执行以后的输出目录:

casliyang@singlehadoop:~$ hadoop dfs -ls /workspace/dataguru/hadoopdev/week13/fpg/out
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
Found 4 items
-rw-r--r--   3 casliyang supergroup       5567 2014-06-17 17:50 /workspace/dataguru/hadoopdev/week13/fpg/out/fList
drwxr-xr-x   - casliyang supergroup          0 2014-06-17 17:51 /workspace/dataguru/hadoopdev/week13/fpg/out/fpgrowth
drwxr-xr-x   - casliyang supergroup          0 2014-06-17 17:51 /workspace/dataguru/hadoopdev/week13/fpg/out/frequentpatterns
drwxr-xr-x   - casliyang supergroup          0 2014-06-17 17:50 /workspace/dataguru/hadoopdev/week13/fpg/out/parallelcounting

挖掘出来的频繁模式在frequentpatterns文件夹下

casliyang@singlehadoop:~$ hadoop dfs -ls /workspace/dataguru/hadoopdev/week13/fpg/out/frequentpatterns
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
Found 2 items
-rw-r--r--   3 casliyang supergroup          0 2014-06-17 17:51 /workspace/dataguru/hadoopdev/week13/fpg/out/frequentpatterns/_SUCCESS
-rw-r--r--   3 casliyang supergroup      10017 2014-06-17 17:51 /workspace/dataguru/hadoopdev/week13/fpg/out/frequentpatterns/part-r-00000

该文件是序列化文件,不能直接查看,mahout提供了命令可以将其转换为普通文本:

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

mahout seqdumper -s /workspace/dataguru/hadoopdev/week13/fpg/out/frequentpatterns/part-r-00000 -o /home/casliyang/outpattern

这里要注意,-o指定的输出文件路径必须是linux文件系统,并且目标文件必须提前创建好,否则会报错。

最终输出到/home/casliyang/outpattern的部分结果

Key: 29099: Value: ([29099],18), ([29099, 4479],3)
Key: 29202: Value: ([29202],3)
Key: 29203: Value: ([29203],9), ([14020, 29203],3)
Key: 29224: Value: ([29224],3)
Key: 29547: Value: ([29547],5)
Key: 2963: Value: ([2963],8), ([2963, 21146],3)
Key: 2999: Value: ([2999],3)
Key: 3032: Value: ([3032],4)
Key: 3047: Value: ([3047],4)
Key: 3151: Value: ([3151],7), ([14020, 3151],4)
Key: 3181: Value: ([3181],3)
Key: 3228: Value: ([3228],14)
Key: 3313: Value: ([3313],3)
Key: 3324: Value: ([3324],3)
Key: 3438: Value: ([3438],3)
Key: 3458: Value: ([3458],4)
Key: 3627: Value: ([3627],11), ([3627, 11176],3)

。。。。。。

含义:

Key:itemid

Value:和该item相关的频繁模式及其支持度

有了挖掘出来的频繁模式,就可以进一步用程序根据业务需求做处理了。

Mahout真是个伟大的开源项目!

作者:csdn博客 u010967382

时间: 2024-12-31 02:23:09

并行化频繁模式挖掘算法FP Growth及其在Mahout下的命令使用的相关文章

《R语言数据挖掘》----第2章 频繁模式、关联规则和相关规则挖掘 2.1关联规则和关联模式概述

本节书摘来自华章出版社<R语言数据挖掘>一书中的第2章,第2.1节,作者[哈萨克斯坦]贝特·麦克哈贝尔(Bater Makhabel),李洪成 许金炜 段力辉 译,更多章节内容可以访问"华章计算机"公众号查看. 第2章 频繁模式.关联规则和相关规则挖掘 本章中,我们将首先学习如何用R语言挖掘频繁模式.关联规则及相关规则.然后,我们将使用基准数据评估所有这些方法以便确定频繁模式和规则的兴趣度.本章内容主要涵盖以下几个主题: 关联规则和关联模式概述 购物篮分析 混合关联规则挖掘

《中国人工智能学会通讯》——12.4 基于模式增长的序列模式挖掘算法

12.4 基于模式增长的序列模式挖掘算法 FreeSpan [15] 和 PrefixSpan [22] 都是由 Han 和 Pei等人提出的基于模式增长的序列模式挖掘算法.它们都是基于频繁模式挖掘中的 FP-growth [23] 思想而被提出的.其中,FreeSpan 基于频繁项将数据库划分成若干投影子数据库,然后在各个子数据库中进行序列模式的挖掘.PrefixSpan 则优化了构建投影数据库的过程,它首先检查前缀序列的位置并且只对后缀子序列进行投影,从而进一步缩小了搜索空间.当挖掘出长度的

《中国人工智能学会通讯》——12.3 基于 Apriori 的序列模式挖掘算法

12.3 基于 Apriori 的序列模式挖掘算法 GSP(Generalized Sequential Patterns) [17] 是一种经典的序列模式挖掘算法,它直接从频繁模式挖掘的 Apriori 算法扩展而来.GSP 采用了水平的数据格式,通过生成候选序列及扫描数据库的方法逐层挖掘频繁序列模式.这里的水平数据格式指的是依然以序列作为主要的观察对象.此外,GSP 还采用了序列模式支持度的向下封闭性用于剪枝.与Apriori 不同的是,GSP 在生成候选序列的时候考虑了有序和无序两种情况,

频繁项集挖掘算法之FPGrowth

背景:         频繁项集挖掘算法用于挖掘经常一起出现的item集合(称为频繁项集),通过挖掘出这些频繁项集,当在一个事务中出现频繁项集的其中一个item,则可以把该频繁项集的其他item作为推荐.比如经典的购物篮分析中啤酒.尿布故事,啤酒和尿布经常在用户的购物篮中一起出现,通过挖掘出啤酒.尿布这个啤酒项集,则当一个用户买了啤酒的时候可以为他推荐尿布,这样用户购买的可能性会比较大,从而达到组合营销的目的.         常见的频繁项集挖掘算法有两类,一类是Apriori算法,另一类是FP

R语言数据挖掘第2章 频繁模式、关联规则和相关规则挖掘

第2章 频繁模式.关联规则和相关规则挖掘 本章中,我们将首先学习如何用R语言挖掘频繁模式.关联规则及相关规则.然后,我们将使用基准数据评估所有这些方法以便确定频繁模式和规则的兴趣度.本章内容主要涵盖以下几个主题: 关联规则和关联模式概述 购物篮分析 混合关联规则挖掘 序列数据挖掘 高性能算法 关联规则挖掘算法可以从多种数据类型中发现频繁项集,包括数值数据和分类数据.根据不同的适用环境,关联规则挖掘算法会略有差异,但大多算法都基于同一个基础算法,即Apriori算法.另一个基础算法称为FP-Gro

《中国人工智能学会通讯》——8.42 基于编程模式挖掘软件缺陷

8.42 基于编程模式挖掘软件缺陷 软件缺陷种类繁多且新缺陷不断出现.不同缺陷形成的原因各不相同.试图通过直接描述软件缺陷模式来发现软件缺陷非常困难.所幸,由于程序编写过程需要遵循程序设计语言确立的各种编程规范和约定,无缺陷的正常程序大都应与此"正常模式"相符.因此,要挖掘软件缺陷,可以设法对正常程序需要符合与遵循的编程模式进行建模,据此发现与此"正常模式"相违背的潜在软件缺陷.对编程模式的刻画,可通过对软件项目中的源代码以及其他相关非代码数据的分析和挖掘来实现.

3des mac-JAVA --- 3DES CBC 模式 MAC 算法

问题描述 JAVA --- 3DES CBC 模式 MAC 算法 原文: 0x81,0x05,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x11, 0x5a,0x5a,0x5a,0x5a,0x5a,0x5a mac : 0xba,0x34,0x87,0xba,0x66,0x3a,0x15,0x8e 将原文经过3DES mac之后变成 (0xba,0x34,0x87,0xba,0x66,0x3a,0x15,0x8e) 哪位高手知道啊,求解???

以PPP模式挖掘产业大数据“金矿”

文章讲的是以PPP模式挖掘产业大数据"金矿",大数据战略正在上升为国家战略.如何从大数据海洋中筛选出有效数据,挖掘出这些数据所蕴藏的价值,是产业各界共同的愿景和目标.产业中大数据所含范畴极为广泛,宏观的社会数据.经济数据,具象的政府数据.企业数据.个人数据等等.然而就目前而言,社会运行.经济发展.公众服务等一大部分数据均由政府及政府管理和服务的各类部门掌握,由于部门条块分割.分散管理.数据冗余和偏差等客观原因的存在,产业中各类数据割裂.分散的情况严重,远未形成融合之势,更谈不上数据融合

并行化的情感分类算法的研究

并行化的情感分类算法的研究 余永红 向小军  商琳 在海量数据集上执行情感分类任务时,传统的单机情感分类算法的扩展性成为系统的瓶颈.在云计算平台Hadoop上,实现了情感分类任务中特征提取.特征向量加权和情感分类等算法的MapReduce化.在情感语料数据集上,对各种子步骤组合下情感分类算法的精度及每种算法的时间开销进行了对比分析.实验结果验证了实现的并行化情感分类算法的有效性,同时它为用户选择合适算法实现情感分类任务提供了有价值的参考信息. 并行化的情感分类算法的研究