Mahout环境安装说明

jopen 9年前

1.介绍

意思是大象的饲养者及驱赶者。Mahout 是一套具有可扩充能力的机器学习类库。它提供机器学习框架的同时,还实现了一些可扩展的机器学习领域经典算法的实现,可以帮助开发人员更加方便快捷地创建 智能应用程序。通过和 Apache Hadoop 分布式框架相结合,Mahout 可以有效地使用分布式系统来实现高性能计算。

网址:http://mahout.apache.org/

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 (安装过程参见其他资料)

  1. 在源码包根目录下执行mvn install (测试比较耗时,如果跳过测试,执行mvn -DskipTests install )
  2. 在core包下执行mvn compile


  1. 在core包下执行 mvn install

Mahout环境安装说明

  1. 在example包下执行 mvn compile

Mahout环境安装说明

配置环境变量

       MAHOUT_HOME及PATH

 3.配置

源码包目录结构说明

Mahout环境安装说明

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) 求解。速度超快、简单序分类器,能够在要求格的境中实现线

推荐广告,将文本分类多种类别

Bayesian

贝叶斯

 

 

Support Vector Machines (SVM)

支持向量机

 

 

Perceptron and Winnow

感知器算法

 

 

Neural Network

神经网络

 

 

Random Forests

随机森林

 

 

Restricted Boltzmann Machines

有限波尔兹曼机

 

 

Online Passive Aggressive

Online(Passive Aggressive, PA)

 

 

Hidden Markov Models (HMM)

藏式可夫模型

典分类算法的序和并行实现设计用于在基本生成程不可知的情况下建模实际过程。

文本注、

聚类算法

Canopy Clustering

Canopy聚类 (简单、高效、准确)

 

 

K-means Clustering

K均值算法 (相当简单但广为人知)

 

 

Fuzzy K-means

模糊K均值

 

 

Expectation Maximization

EM聚类(期望最大化聚类)

 

 

Mean Shift Clustering

均值漂移聚类

 

 

Hierarchical Clustering

层次聚类 (链接中未包含具体内容,看下边的Top Down即可)

 

 

Dirichlet Process Clustering

狄利克雷聚类

基于模型的聚类方法,根据数据是否适合基本模型来确定从属关系

在数据存在重叠或非常有用

Latent Dirichlet Allocation

LDA聚类

 

 

Spectral Clustering

谱聚类(比较现代)

一系列类似的方法,使用基于形的方法来确定聚类从属关系

与所有聚类算法相似,适用于探索大模、不可的数据集

Minhash Clustering

Minhash 聚类

利用散列略,将类似的组织在一起,从而生成聚类

与其他聚类方法相同

Top Down Clustering

层次聚类(Hierarchical Clustering)的一种,自上而下的方式

 

 

关联规则挖掘

Parallel FP Growth Algorithm

并行FP Growth算法

 

 

回归

Locally Weighted Linear Regression

局部加权线性回归

 

 

Dimension reduction (降维/维约简)

Singular Value Decomposition (SVD)

奇异值分解

旨在减少大型矩内的噪声,使噪音更小、更容易

聚类、推荐机制和分类的前,自动执行特性选择

Stochastic Singular Value Decomposition

Stochastic SVD

 

 

Principal Components Analysis

主成分分析

 

 

Independent Component Analysis

独立成分分析

 

 

Gaussian Discriminative Analysis

高斯判别分析

 

 

进化算法

Watchmaker已经被移除


 

 

推荐/协同过滤

非分布式基于Taste的推荐

Taste (UserCF, ItemCF, SlopeOne

 

 

Item-Based 协同过滤


 

 

基于ALS-WR的协同过滤 (Alternating Least Squares with Weighted Lambda-Regularization)

矩阵分解

详见 Large-scale Parallel Collaborative Filtering for the Netflix Prize

 

其他

Collections


 

 

Map-Reduce算法



 

 

向量相似度计算

Row Similarity Job

计算列间相似度

 

 

Vector Distance Job

计算向量间距离

 

 

 

4.2 参考资料

1.      Mahout 构建

2.     M2E plugin execution not covered

3.     Mahout 算法

4.     Mahout 推荐

5.     mahout-collections 

6.     Creating Vectors from Text  

7.     Recommender First Timer FAQ  (初次使用推荐系统的问答)

8.     Apache Mahout: 适合所有人的可扩展机器学习框架

9.     Apache Mahout 简介 

10.   探索推荐引擎内部的秘密

第1部分:推荐引擎初探  

第2部分:深入推荐引擎相关算法-协同过滤

第3部分:深入推荐引擎相关算法-聚类  

11.    聚类(Leo Zhang) :

1)      K-Means Clustering

2)     Canopy Clustering

3)     Spectral Clustering

12.    分类SVM(Leo Zhang) :

1)      线性学习器

2)     求解二次规划问题

3)     核函数

4)     统计学习理论

5)     软间隔优化

Coordinate Desent Method

 Sequential Minimal Optimization    

 Improvements to Platt’s SMO Algorithm  

 漫谈Clustering (Free Mind)

 K-means

Expectation Maximization

Spectral Clustering

 Hierarchical Clustering

 百度百科:机器学习

(官网) 分类的两个例子

1)      Twenty Newsgroups

2)     Wikipedia Bayes Example

 Visualizing Clusters

 Cluster Dumper