Mahout环境安装说明
1.介绍
意思是大象的饲养者及驱赶者。Mahout 是一套具有可扩充能力的机器学习类库。它提供机器学习框架的同时,还实现了一些可扩展的机器学习领域经典算法的实现,可以帮助开发人员更加方便快捷地创建 智能应用程序。通过和 Apache Hadoop 分布式框架相结合,Mahout 可以有效地使用分布式系统来实现高性能计算。
2.安装
http://mirror.bit.edu.cn/apache/mahout/
当前最新版本为0.7,下载如下两个压缩包
mahout-distribution-0.7-src.tar.gz
mahout-distribution-0.7.tar.gz
需要先安装Maven及Hadoop (安装过程参见其他资料)
- 在源码包根目录下执行mvn install (测试比较耗时,如果跳过测试,执行mvn -DskipTests install )
- 在core包下执行mvn compile
- 在core包下执行 mvn install
- 在example包下执行 mvn compile
配置环境变量
MAHOUT_HOME及PATH
3.配置
源码包目录结构说明
0.6及0.7版与0.5版不同,去掉了eclipse,taste-web,utils三个包,多了一个integration。
bin:包含一个名为mahout的shell脚本,用于在hadoop平台的命令行下调用mahout中的程序。
buildtools:是用于核心程序构建的配置文件,在mahout的pom.xml文件中用到。
core:核心程序模块
distribution:有两个配置文件:bin.xml和src.xml,进行mahout安装时的一些配置信息
examples:对mahout中各种机器学习算法的应用程序
integration:(一种说法,0.5版本的taste-web目录换成了integration目录)
math:在核心程序中使用的一些数据通用计算模块
Mahout命令
在终端下键入:mahout
执行mahout kmeans --help
执行mahout –h 列举出mahout支持的所有算法
4.其它
4.1 Mahout算法 (0.7)
算法分类 | 算法名 | 中文名 | 简要描述 | 用例 |
分类算法 | Logistic Regression (SGD) | 逻辑回归 | 使用随机梯度下降法 (SGD) 求解。速度超快、简单的顺序分类器,能够在要求严格的环境中实现在线学习 | 为用户推荐广告,将文本分类为多种类别 |
贝叶斯 |
|
| ||
Support Vector Machines (SVM) | 支持向量机 |
|
| |
感知器算法 |
|
| ||
神经网络 |
|
| ||
随机森林 |
|
| ||
有限波尔兹曼机 |
|
| ||
Online被动主动(Passive Aggressive, PA) |
|
| ||
Hidden Markov Models (HMM) | 隐藏式马可夫模型 | 经典分类算法的顺序和并行实现,设计用于在基本生成过程不可知的情况下建模实际过程。 | 文本词类标注、语音识别 | |
聚类算法 | Canopy聚类 (简单、高效、准确) |
|
| |
K均值算法 (相当简单但广为人知) |
|
| ||
模糊K均值 |
|
| ||
EM聚类(期望最大化聚类) |
|
| ||
均值漂移聚类 |
|
| ||
层次聚类 (链接中未包含具体内容,看下边的Top Down即可) |
|
| ||
狄利克雷聚类 | 基于模型的聚类方法,根据数据是否适合基本模型来确定从属关系 | 在数据存在重叠或层次时非常有用 | ||
LDA聚类 |
|
| ||
谱聚类(比较现代) | 一系列类似的方法,使用基于图形的方法来确定聚类从属关系 | 与所有聚类算法相似,适用于探索大规模、不可见的数据集 | ||
Minhash 聚类 | 利用散列战略,将类似的项目组织在一起,从而生成聚类 | 与其他聚类方法相同 | ||
层次聚类(Hierarchical Clustering)的一种,自上而下的方式 |
|
| ||
关联规则挖掘 | 并行FP Growth算法 |
|
| |
回归 | 局部加权线性回归 |
|
| |
Dimension reduction (降维/维约简) | 奇异值分解 | 旨在减少大型矩阵内的噪声,使噪音更小、更容易处理 | 作为聚类、推荐机制和分类的前导,自动执行特性选择 | |
Stochastic SVD |
|
| ||
主成分分析 |
|
| ||
独立成分分析 |
|
| ||
高斯判别分析 |
|
| ||
进化算法 | Watchmaker已经被移除 |
|
| |
推荐/协同过滤 | Taste (UserCF, ItemCF, SlopeOne) |
|
| |
|
| |||
基于ALS-WR的协同过滤 (Alternating Least Squares with Weighted Lambda-Regularization) | 矩阵分解 | 详见 Large-scale Parallel Collaborative Filtering for the Netflix Prize |
| |
其他 |
|
| ||
非Map-Reduce算法 |
|
| ||
向量相似度计算 | 计算列间相似度 |
|
| |
Vector Distance Job | 计算向量间距离 |
|
|
4.2 参考资料
1. Mahout 构建
2. M2E plugin execution not covered
3. Mahout 算法
4. Mahout 推荐
7. Recommender First Timer FAQ (初次使用推荐系统的问答)
8. Apache Mahout: 适合所有人的可扩展机器学习框架
10. 探索推荐引擎内部的秘密
11. 聚类(Leo Zhang) :
12. 分类SVM(Leo Zhang) :
1) 线性学习器
2) 求解二次规划问题
3) 核函数
4) 统计学习理论
5) 软间隔优化