正在加载...

PS:机器学习这两年特别火,ATB使劲开百万到几百万年薪招美国牛校的机器学习方向博士,作为一个技术控,也得折腾下,就这样来初步折腾下Mahout这个机器学习的主流开源框架。

一、Mahout简介

查了Mahout的中文意思:驭象的人,再看看Mahout的logo,骑在象头上的那个Mahout。机器学习是人工智能的一个分支,它涉及通过一些技术来允许计算机根据之前的经验改善其输出。此领域与数据挖掘密切相关,并且经常需要使用各种技巧,包括统计学、概率论和模式识别等。虽然机器学习并不是一个新兴领域,但它的发展速度是毋庸置疑的。许多大型公司,包括 IBM、Google、Amazon、Yahoo! 和 Facebook,都在自己的应用程序中实现了机器学习算法。此外,还有许多公司在自己的应用程序中应用了机器学习,以便学习用户以及过去的经验,从而获得收益。

     Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括被称为Taste的分布式协同过滤的实现、分类、聚类等。Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。

在Mahout实现的机器学习算法:
算法类 算法名 中文名
分类算法 Logistic Regression 逻辑回归
Bayesian 贝叶斯
SVM 支持向量机
Perceptron 感知器算法
Neural Network 神经网络
Random Forests 随机森林
Restricted Boltzmann Machines 有限波尔兹曼机
聚类算法 Canopy Clustering Canopy聚类
K-means Clustering K均值算法
Fuzzy K-means 模糊K均值
Expectation Maximization EM聚类(期望最大化聚类)
Mean Shift Clustering 均值漂移聚类
Hierarchical Clustering 层次聚类
Dirichlet Process Clustering 狄里克雷过程聚类
Latent Dirichlet Allocation LDA聚类
Spectral Clustering 谱聚类
关联规则挖掘 Parallel FP Growth Algorithm 并行FP Growth算法
回归 Locally Weighted Linear Regression 局部加权线性回归
降维/维约简 Singular Value Decomposition 奇异值分解
Principal Components Analysis 主成分分析
Independent Component Analysis 独立成分分析
Gaussian Discriminative Analysis 高斯判别分析
进化算法 并行化了Watchmaker框架
推荐/协同过滤 Non-distributed recommenders Taste(UserCF, ItemCF, SlopeOne)
Distributed Recommenders ItemCF
向量相似度计算 RowSimilarityJob 计算列间相似度
VectorDistanceJob 计算向量间距离
非Map-Reduce算法 Hidden Markov Models 隐马尔科夫模型
集合方法扩展 Collections 扩展了java的Collections类

二、Mahout安装配置(网上很多相关文档是错误的,我这个方法能成功运行

1、下载Mahout

进入 http://archive.apache.org/dist/mahout/ 下载最新版本包
wget  http://archive.apache.org/dist/mahout/0.12.2/apache-mahout-distribution-0.12.2.tar.gz
2、解压
tar zxvf apache-mahout-distribution-0.12.2.tar.gz
3、配置环境变量(必备前提是hadoop已完全配置好并能正常使用,hadoop的部署文档很多了,我就不说了。
配置Mahout环境变量
export MAHOUT_HOME=/root/apache-mahout-distribution-0.12.2
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH
 
4、验证Mahout是否安装成功
运行命令mahout,若列出一些算法就配置成功,如图:
mahout
三、Mahout 之入门使用
1、启动Hadoop集群
2、下载测试数据,把这个文件放在$MAHOUT_HOME/testdata目录下:
/root/apache-mahout-distribution-0.12.2
mkdir testdata
cd testdata
wget  http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data
 3、使用Mahout中的kmeans聚类算法,执行命令:
mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
大概28秒完成聚类,结果如下图: (根据集群机器的硬件配置,有人说要10分钟)
syntheticcontrol.kmeans.Job
注意:当你运行上面命令看到如下的代码时以为是错的,其实不是,原因:MAHOUT_LOCAL:设置是否本地运行,如果设置该参数就不会在hadoop运行了,一旦设置这个参数那HADOOP_CONF_DIR 和HADOOP_HOME两个参数就自动失效了。
MAHOUT_LOCAL is not set, so we don’t add HADOOP_CONF_DIR to classpath.
no HADOOP_HOME set , running locally
4、查看聚类分析结果,结果会在根目录建立output新文件夹,如下图表示mahout配置正确且运行正常:
output
好了,先到这,下次再深入研究。
参考:http://mahout.apache.org/general/downloads.html

: http://www.ha97.com/5803.html

本文相关评论 - 才 3 条评论
2016-07-26 15:53:07
Google Chrome 31.0.1650.63 Google Chrome 31.0.1650.63 Windows 10 Windows 10

来学习了

2016-08-03 17:29:50
Google Chrome 31.0.1650.63 Google Chrome 31.0.1650.63 Windows 10 Windows 10

大哥你更新慢啦,,权重降了呢

2016-08-18 18:31:35
Google Chrome 52.0.2743.116 Google Chrome 52.0.2743.116 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

忙啊,没前几年有空写博了