xuanxufeng 发表于 2015-9-5 18:22:38

数据挖掘(5):使用mahout做海量数据关联规则挖掘



问题导读

1.如何安装mahout?
2.通过那个命令调用FpGrowth算法?


static/image/hrline/4.gif


上一篇介绍了用开源数据挖掘软件weka做关联规则挖掘,weka方便实用,但不能处理大数据集,因为内存放不下,给它再多的时间也是无用,因此需要进行分布式计算,mahout是一个基于hadoop的分布式数据挖掘开源项目(mahout本来是指一个骑在大象上的人)。掌握了关联规则的基本算法和使用,加上分布式关联规则挖掘后,就可以处理基本的关联规则挖掘工作了,实践中只需要把握业务,理解数据便可游刃有余。
安装mahout骑在大象上的侠士必然需要一头雄纠纠的大象,不过本文不解绍大象hadoop,所以我假定已经安装好了hadoop,关于hadoop的安装,请google。到Apache官网下载mahout8.0解压tar -zxvf mahout-distribution-0.8.tar.gz移动sudo mv tar mahout-distribution-0.8 /usr/local/mahout-8配置sudo gedit /etc/profile输入以下内容: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文件系统hadoop fs -mkdir /user/hadoop/mahoutData #创建目录
hadoop fs -put ~/data/retail.dat /user/hadoop/mahoutData调用FpGrowth算法mahout fpg -i /user/hadoop/mahoutData/retail.dat -o patterns -method mapreduce -s 1000 -regex '[\ ]'
-i表示input,-o表示-output,-s表示最小支持度,’[\ ]‘表示以行内的数据以空格分开。
一两分钟后执行完毕,生成的文件被序列化了,直接查看会是乱码,因此需要用mahout还原回来:mahout seqdumper -i /user/hadoop/patterns/fpgrowth/part-r-00000 -o ~/data/patterns.txt输出结果:9142)
Key: 38: Value: (,15596), (,10345), (,7944), (,6102)
Key: 32: Value: (,15167), (,8455), (,8034), (,5402), (,2833), (,1840), (,1646), (,1236)
Key: 41: Value: (,14945), (,11414), (,9018), (,7366), (,3897), (,3196), (,3051), (,2374), (,2359), (,2063), (,1991), (,1646)
Key: 65: Value: (,4472), (,2787), (,2529), (,1797)
Key: 89: Value: (,3837), (,2798), (,2749), (,2125)
Key: 225: Value: (,3257), (,2351), (,1736), (,1400)这里输出的只是频繁项集,但在此基础上提取关联规则已经不是难事。
上一篇:

数据挖掘(4):数据挖掘之使用weka做关联规则挖掘



下一篇:
数据挖掘(6):决策树分类算法




页: [1]
查看完整版本: 数据挖掘(5):使用mahout做海量数据关联规则挖掘