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模式,这样大大提升了算法可处理的数据量和处理性能。
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中关于集合类的修改,使其可以适应数 据密集型项目的开发。