数据挖掘系列(5)使用mahout做海量数据关联规则挖掘
上一篇介绍了用开源数据挖掘软件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-
配置
sudo gedit /etc/profile
输入以下内容:
export MAHOUT_HOME=/usr/local/mahout-
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 -regex '[\ ]'
-i表示input,-o表示-output,-s表示最小支持度,'[\ ]'表示以行内的数据以空格分开。
一两分钟后执行完毕,生成的文件被序列化了,直接查看会是乱码,因此需要用mahout还原回来:
mahout seqdumper -i /user/hadoop/patterns/fpgrowth/part-r- -o ~/data/patterns.txt
输出结果:
Key: : Value: ([],)
Key: : Value: ([],), ([, ],)
Key: : Value: ([],), ([, ],), ([, ],), ([, , ],)
Key: : Value: ([],), ([, ],), ([, ],), ([, , ],), ([, ],), ([, , ],), ([, , ],), ([, , , ],)
Key: : Value: ([],), ([, ],), ([, ],), ([, , ],), ([, ],), ([, ],), ([, , ],), ([, , ],), ([, , ],), ([, , ],), ([, , , ],), ([, , , ],)
Key: : Value: ([],), ([, ],), ([, ],), ([, , ],)
Key: : Value: ([],), ([, ],), ([, ],), ([, , ],)
Key: : Value: ([],), ([, ],), ([, ],), ([, , ],)
这里输出的只是频繁项集,但在此基础上提取关联规则已经不是难事。
感谢阅读,欢迎回帖交流
转正请注明出处:www.cnblogs.com/fengfenggirl
数据挖掘系列(5)使用mahout做海量数据关联规则挖掘的更多相关文章
- 数据挖掘系列(4)使用weka做关联规则挖掘
前面几篇介绍了关联规则的一些基本概念和两个基本算法,但实际在商业应用中,写算法反而比较少,理解数据,把握数据,利用工具才是重要的,前面的基础篇是对算法的理解,这篇将介绍开源利用数据挖掘工具weka进行 ...
- 数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法
转自:http://www.cnblogs.com/fengfenggirl/p/associate_apriori.html 数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法 我计划 ...
- 数据挖掘系列(1)关联规则挖掘基本概念与Aprior算法
整理数据挖掘的基本概念和算法,包括关联规则挖掘.分类.聚类的常用算法,敬请期待.今天讲的是关联规则挖掘的最基本的知识. 关联规则挖掘在电商.零售.大气物理.生物医学已经有了广泛的应用,本篇文章将介绍一 ...
- 数据挖掘系列(2)--关联规则FpGrowth算法
上一篇介绍了关联规则挖掘的一些基本概念和经典的Apriori算法,Aprori算法利用频繁集的两个特性,过滤了很多无关的集合,效率提高不少,但是我们发现Apriori算法是一个候选消除算法,每一次消除 ...
- 大数据挖掘: FPGrowth初识--进行商品关联规则挖掘
@(hadoop)[Spark, MLlib, 数据挖掘, 关联规则, 算法] [TOC] 〇.简介 经典的关联规则挖掘算法包括Apriori算法和FP-growth算法.Apriori算法多次扫描交 ...
- 数据挖掘算法之-关联规则挖掘(Association Rule)
在数据挖掘的知识模式中,关联规则模式是比较重要的一种.关联规则的概念由Agrawal.Imielinski.Swami 提出,是数据中一种简单但很实用的规则.关联规则模式属于描述型模式,发现关联规则的 ...
- 数据挖掘算法之关联规则挖掘(一)apriori算法
关联规则挖掘算法在生活中的应用处处可见,几乎在各个电子商务网站上都可以看到其应用 举个简单的例子 如当当网,在你浏览一本书的时候,可以在页面中看到一些套餐推荐,本书+有关系的书1+有关系的书2+... ...
- 数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)
在各种数据挖掘算法中,关联规则挖掘算是比較重要的一种,尤其是受购物篮分析的影响,关联规则被应用到非常多实际业务中,本文对关联规则挖掘做一个小的总结. 首先,和聚类算法一样,关联规则挖掘属于无监督学习方 ...
- 游戏AI系列内容 咋样才能做个有意思的AI呢
游戏AI系列内容 咋样才能做个有意思的AI呢 写在前面的话 怪物AI怎么才能做的比较有意思.其实这个命题有点大,我作为一个仅仅进入游戏行业两年接触怪物AI还不到一年的程序员来说,来谈这个话题,我想我是 ...
随机推荐
- C# Process运行cmd命令的异步回显
以下的代码为new Process() 调用cmd命令,并将结果异步回显到Form的例子: 以下的代码为new Process() 调用cmd命令,并将结果异步回显到Form的例子: [csharp] ...
- 【nginx】关于fastcgi_cache
一.简介 Nginx版本从0.7.48开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当做Key,用Md5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在该目 ...
- jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示
一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW 访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面 ...
- Spring 通过XML配置文件以及通过注解形式来AOP 来实现前置,环绕,异常通知,返回后通知,后通知
本节主要内容: 一.Spring 通过XML配置文件形式来AOP 来实现前置,环绕,异常通知 1. Spring AOP 前置通知 XML配置使用案例 2. Spring AOP ...
- Vmware中Ubuntu的各种问题
Question1: Ubuntu正在运行的时候手残强行关闭了Vmware软件,重启软件发现如下图所示的状态: ''' 完全黑屏怎么解决,提示信息是recovering journal就是说正在恢复日 ...
- OpenStack overview 笔记
Example architecture example architecture 至少需要两个节点启动一个虚拟机或者实例.可选的服务,例如Block storage和Object storage需要 ...
- 伪多项式时间算法Pseudo-polynomial Algorithms-----geeksforGeek 翻译
原创翻译加学习笔记,方便国人学习算法知识! 原文链接http://www.geeksforgeeks.org/pseudo-polynomial-in-algorithms/ 什么是伪多项式? 当一个 ...
- hdu-5497 Inversion(滑动窗口+树状数组)
题目链接: Inversion Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- Jenkins学习七:Jenkins的授权和访问控制
默认的Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置,job和启动build等.显然地在大规模的公司需要多个部门一起协调工作的时候,没有任何安全检查会带来很多的问题. 在系统管理 ...
- Linux命令学习-grep
1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局 ...