一、Mahout简介
Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Apache Mahout项目已经发展到了它的第三个年头,目前已经有了三个公共发行版本。Mahout包含许多实现,包括集群、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。
(就是他,骑在象头上的那个Mahout)
在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安装、配置
一、下载Mahout
http://archive.apache.org/dist/mahout/
二、解压
tar -zxvf mahout-distribution-0.9.tar.gz
三、配置环境变量
3.1、配置Mahout环境变量
# set mahout environment
export MAHOUT_HOME=/home/yujianxin/mahout/mahout-distribution-0.9
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH
3.2、配置Mahout所需的Hadoop环境变量
# set hadoop environment
export HADOOP_HOME=/home/yujianxin/hadoop/hadoop-1.1.2
export HADOOP_CONF_DIR=$HADOOP_HOME/conf
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_HOME_WARN_SUPPRESS=not_null
四、验证Mahout是否安装成功
执行命令mahout。若列出一些算法,则成功,如图:
五、使用Mahout 之入门级使用
5.1、启动Hadoop
5.2、下载测试数据
http://archive.ics.uci.edu/ml/databases/synthetic_control/链接中的synthetic_control.data
5.3、上传测试数据
hadoop fs -put synthetic_control.data /user/root/testdata
5.4 使用Mahout中的kmeans聚类算法,执行命令:
mahout -core org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
花费9分钟左右完成聚类 。
5.5 查看聚类结果
执行hadoop fs -ls /user/root/output,查看聚类结果。
Mahout是Hadoop的一种高级应用。运行Mahout需要提前安装好Hadoop。Hadoop的安装网上很多,并不复杂,这里不再讲述,接下来阐述怎么安装Mahout。
1:下载二进制解压安装。
到http://labs.renren.com/apache-mirror/mahout/0.7下载,我选择下载二进制包,直接解压及可。
hadoop@ubuntu:~$ tar -zxvf mahout-distribution-0.7.tar.gz
2:配置环境变量:在/etc/profile,/home/hadoop/.bashrc中添加如下红色信息
#set java environment
MAHOUT_HOME=/home/hadoop/mahout-distribution-0.7
PIG_HOME=/home/hadoop/pig-0.9.2
HBASE_HOME=/home/hadoop/hbase-0.94.3
HIVE_HOME=/home/hadoop/hive-0.9.0
HADOOP_HOME=/home/hadoop/hadoop-1.1.1
JAVA_HOME=/home/hadoop/jdk1.7.0
PATH=$JAVA_HOME/bin:$PIG_HOME/bin:$MAHOUT_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/conf:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$HBASE_HOME/lib:$MAHOUT_HOME/lib:$PIG_HOME/lib:$HIVE_HOME/lib:$JAVA_HOME/lib/tools.jar
export MAHOUT_HOME
export PIG_HOME
export HBASE_HOME
export HADOOP_HOME
export JAVA_HOME
export HIVE_HOME
export PATH
export CLASSPATH
3:启动hadoop,也可以用伪分布式来测试
4:mahout --help #检查Mahout是否安装完好,看是否列出了一些算法
5:mahout使用准备
a.下载一个文件synthetic_control.data,下载地址http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data,并把这个文件放在$MAHOUT_HOME目录下。
b.启动Hadoop:$HADOOP_HOME/bin/start-all.sh
c.创建测试目录testdata,并把数据导入到这个tastdata目录中(这里的目录的名字只能是testdata)
hadoop@ubuntu:~/$ hadoop fs -mkdir testdata # hadoop@ubuntu:~/$ hadoop fs -put /home/hadoop/mahout-distribution-0.7/synthetic_control.data testdata
d.使用kmeans算法(这会运行几分钟左右)
hadoop@ubuntu:~/$ hadoop jar /home/hadoop/mahout-distribution-0.7/mahout-examples-0.7-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
e.查看结果
hadoop@ubuntu:~/$ hadoop fs -lsr output
如果看到以下结果那么算法运行成功,你的安装也就成功了。
clusteredPoints clusters-0 clusters-1 clusters-10 clusters-2 clusters-3 clusters-4 clusters-5 clusters-6 clusters-7 clusters-8 clusters-9 data
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。