Mahout源码目录说明

Mahout项目是由多个子项目组成的,各子项目分别位于源码的不同目录下,下面对Mahout的组成进行介绍:

1、mahout-core:核心程序模块,位于/core目录下;

2、mahout-math:在核心程序中使用的一些数据通用计算模块,位于/math目录下;

3、mahout-utils:在核心程序中使用的一些通用的工具性模块,位于/utils目录下;

上述三个部分是程序的主题,存储所有mahout项目的源码。

另外,mahout提供了样例程序,分别在taste-web和examples目录下:

4、taste-web:利用mahout推荐算法而建立的基于WEB的个性化推荐系统demo;

5、examples:对mahout中各种机器学习算法的应用程序;

6、bin:bin目录下只有一个名为mahout的文件,是一个shell脚本文件,用于在Hadoop平台的命令行下调用mahout中的程序;

在buildtools、eclipse和distribution目录下,有mahout相关的配置文件

7、buildtools目录下是用于核心程序构建的配置文件,以mahout-buildtools的模块名称在mahout的pom.xml文件中进行说明;

8、eclipse下的xml文件是对利用eclipse开发mahout的配置说明;

9、distribution目录下有两个配置文件:bin.xml和src.xml,进行mahou安装时的一些配置信息。

(在开发的时候一般很少对这个目录下的文件进行修改,所以不用太关注,知道大体什么意思就ok)

 

另 外,在mahout的下载地址下可以看到有个文件夹与mahout处于同一级别,它是mahout项目的分支项目—mahout- collections,用于实现了核心程序中使用的集合类操作,该模块独立于mahout进行开发,是对标准jdk中关于集合类的修改,使其可以适应数 据密集型项目的开发。

在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最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13958.html