Mahout——入门
一、Mahout简介
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安装、配置
一、下载Mahout
http://archive.apache.org/dist/mahout/
二、解压
tar -zxvf mahout-distribution-0.9.tar.gz
三、配置环境变量
3.1、配置Mahout环境变量
# set mahout environment
export MAHOUT_HOME=/usr/local/mahout-distribution-0.9
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATHma
四、验证Mahout是否安装成功
执行命令mahout。若列出一些算法,则成功,如图:
五、使用Mahout 之入门级使用
5.1、启动Hadoop
5.2、下载测试数据
a.下载一个文件synthetic_control.data,下载地址http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data,并把这个文件放在$MAHOUT_HOME目录下。
5.3、上传测试数据
c.创建测试目录testdata,并把数据导入到这个tastdata目录中(这里的目录的名字只能是testdata)
hadoop fs -mkdir -p /user/root/testdata
hadoop fs -put synthetic_control.data /user/root/testdata
5.4 使用Mahout中的kmeans聚类算法,执行命令:
mahout -core org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
花费5分钟左右完成聚类。
5.5 查看聚类结果
执行hadoop fs -ls/user/root/output,查看聚类结果。