数据挖掘(5):使用mahout做海量数据关联规则挖掘
来源:互联网 发布:自助点餐软件 编辑:程序博客网 时间:2024/06/05 16:45
http://blog.jobbole.com/90163/
原文出处: fengfenggirl(@也爱数据挖掘) 欢迎分享原创到伯乐头条
上一篇介绍了用开源数据挖掘软件weka做关联规则挖掘,weka方便实用,但不能处理大数据集,因为内存放不下,给它再多的时间也是无用,因此需要进行分布式计算,mahout是一个基于hadoop的分布式数据挖掘开源项目(mahout本来是指一个骑在大象上的人)。掌握了关联规则的基本算法和使用,加上分布式关联规则挖掘后,就可以处理基本的关联规则挖掘工作了,实践中只需要把握业务,理解数据便可游刃有余。
安装mahout
骑在大象上的侠士必然需要一头雄纠纠的大象,不过本文不解绍大象hadoop,所以我假定已经安装好了hadoop,关于hadoop的安装,请google。
到Apache官网下载mahout8.0
解压
1
tar -zxvf mahout-distribution-
0.8
.tar.gz
移动
1
sudo mv tar mahout-distribution-
0.8
/usr/local/mahout-
8
配置
1
sudo gedit /etc/profile
输入以下内容:
1
2
3
4
export MAHOUT_HOME=/usr/local/mahout-
8
export PATH=$MAHOUT_HOME/bin:$PATH
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
退出用户重新登录,使配置文件生效。输入mahout -version测试是否安装成功。
数据准备
到http://fimi.ua.ac.be/data/下载一个购物篮数据retail.dat。
上传到hadoop文件系统
1
2
hadoop fs -mkdir /user/hadoop/mahoutData #创建目录
hadoop fs -put ~/data/retail.dat /user/hadoop/mahoutData
调用FpGrowth算法
1
mahout fpg -i /user/hadoop/mahoutData/retail.dat -o patterns -method mapreduce -s
1000
-regex
'[\ ]'
-i表示input,-o表示-output,-s表示最小支持度,’[\ ]‘表示以行内的数据以空格分开。
一两分钟后执行完毕,生成的文件被序列化了,直接查看会是乱码,因此需要用mahout还原回来:
1
mahout seqdumper -i /user/hadoop/patterns/fpgrowth/part-r-
00000
-o ~/data/patterns.txt
输出结果:
1
2
3
4
5
6
7
8
Key:
39
: Value: ([
39
],
50675
)
Key:
48
: Value: ([
48
],
42135
), ([
39
,
48
],
29142
)
Key:
38
: Value: ([
38
],
15596
), ([
39
,
38
],
10345
), ([
48
,
38
],
7944
), ([
39
,
48
,
38
],
6102
)
Key:
32
: Value: ([
32
],
15167
), ([
39
,
32
],
8455
), ([
48
,
32
],
8034
), ([
39
,
48
,
32
],
5402
), ([
38
,
32
],
2833
), ([
39
,
38
,
32
],
1840
), ([
48
,
38
,
32
],
1646
), ([
39
,
48
,
38
,
32
],
1236
)
Key:
41
: Value: ([
41
],
14945
), ([
39
,
41
],
11414
), ([
48
,
41
],
9018
), ([
39
,
48
,
41
],
7366
), ([
38
,
41
],
3897
), ([
32
,
41
],
3196
), ([
39
,
38
,
41
],
3051
), ([
48
,
38
,
41
],
2374
), ([
39
,
32
,
41
],
2359
), ([
48
,
32
,
41
],
2063
), ([
39
,
48
,
38
,
41
],
1991
), ([
39
,
48
,
32
,
41
],
1646
)
Key:
65
: Value: ([
65
],
4472
), ([
39
,
65
],
2787
), ([
48
,
65
],
2529
), ([
39
,
48
,
65
],
1797
)
Key:
89
: Value: ([
89
],
3837
), ([
48
,
89
],
2798
), ([
39
,
89
],
2749
), ([
39
,
48
,
89
],
2125
)
Key:
225
: Value: ([
225
],
3257
), ([
39
,
225
],
2351
), ([
48
,
225
],
1736
), ([
39
,
48
,
225
],
1400
)
这里输出的只是频繁项集,但在此基础上提取关联规则已经不是难事。
0 0
- 数据挖掘系列(5)使用mahout做海量数据关联规则挖掘
- 数据挖掘系列(5)使用mahout做海量数据关联规则挖掘
- 数据挖掘系列(5)使用mahout做海量数据关联规则挖掘
- 数据挖掘(5):使用mahout做海量数据关联规则挖掘
- 数据挖掘系列(5)使用mahout做海量数据关联规则挖掘
- 数据挖掘(5):使用mahout做海量数据关联规则挖掘
- 数据挖掘(4):使用weka做关联规则挖掘
- 数据挖掘(4):使用weka做关联规则挖掘
- 基于海量数据的关联规则挖掘(一)
- 基于海量数据的关联规则挖掘(二)
- 基于海量数据的关联规则挖掘(四)
- 基于海量数据的关联规则挖掘(五)
- 基于海量数据的关联规则挖掘(六)
- 基于海量数据的关联规则挖掘(七)
- 基于海量数据的关联规则挖掘(八)
- 基于海量数据的关联规则挖掘(九)
- 基于海量数据的关联规则挖掘(十)
- 基于海量数据的关联规则挖掘(十一)
- [Leetcode]Closest Binary Search Tree Value II
- Android中AsyncTask的使用
- Delphi XE4,C++ Builder XE4,RAD Studio XE4 v18.0.4905.60485(With Update 1) 官方下载激活
- 数据挖掘(4):使用weka做关联规则挖掘
- Codeforces Gym 100548F Color (组合数+容斥)
- 数据挖掘(5):使用mahout做海量数据关联规则挖掘
- 【白书之路】 10340All in All 判断子串
- C/C++常用头文件及函数汇总
- Gemfile 详解
- 数据挖掘(6):决策树分类算法
- 范围最大异或值
- 数据挖掘(7):分类算法评价
- 汽车租赁管理系统及所涉及面向对象的一般步骤
- 苹果的玫瑰金与小米的粉色版