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

出处:fengfenggirl(@也爱数据挖掘) 

网址:http://www.cnblogs.com/fengfenggirl


本系列:

数据挖掘(1):关联规则挖掘基本概念与Aprior算法

数据挖掘(2):关联规则FpGrowth算法

数据挖掘(3):关联规则评价

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


上一篇介绍了用开源数据挖掘软件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


输出结果:


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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值