Mahout简介一

来源:互联网 发布:淘宝差评解释大全 编辑:程序博客网 时间:2024/06/06 15:34

Mahout简介:

1.是apache旗下的开源项目,提供了机器学习相关的系列算法,是一个开发者用于使用和改装的工具框架;

2.主要算法可分为协同过滤/推荐引擎、聚类、分类三大类,并且有很强的扩展性,可以自主优化算法;

3.支持hadoop分布式计算;

4.无需安装,是一个Java library;

5.svn check out地址:http://svn.apache.org/repos/asf/mahout/trunk

 

主要模块包括:

1)分类:

Mahout 拥有多种分类算法,其中大多数算法都是为了在 Hadoop上运行而编写的(只有一个值得注意的例外,即随机梯度下降法)。

Mahout中实现的分类算法

算法

简要描述

Naive Bayes

 

Naive Bayes 分类器为速度快和准确性高而著称,适用于文本分类。Bayes方法的薄弱环节在于实际情况下,类别总体的概率分布和各类样本的概率分布函数(或密度函数)常常是不知道的。为了获得它们,就要求样本足够大。另外,Bayes要求表达文本的主题词相互独立,这样的条件在实际文本中一般很难满足,因此该方法往往在效果上难以达到理论上的最大值。许多人最初都选择这种分类器,在有效扩展的时候,它也能给出合理的结果。

Complementary Naive Bayes

 

尝试纠正 Naive Bayes 方法中的一些问题,同时仍然能够维持简单性和速度。

Preceptron感知器算法和Winnow

二分类问题,线性分类器,在线学习算法。

RBM有限波尔兹曼机

人工随机神经网络算法,要求大训练集。

HMM隐马尔可夫模型

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

Stochastic Gradient Descent随机梯度下降算法

速度超快、简单的顺序分类器,能够在要求严格的环境中实现在线学习。

Support Vector Machine支持向量机

SVM算法基于结构风险最小化的理论,在特征空间中建构出一个最优超平面来分割两类域的样本数据。二分类问题。适合于小样本集。

Random  Forests

随机森林包含多个决策树。当需要预测一个新的样本的时候,采用"少数服从多数"的策略确定样本的类别。随机森林中任意两棵树的相关程度越高,预测结果越差。森林中每棵独立的树的分类能力越强,随机森林的分类结果越好。

 

2)聚类:

Mahout中实现的聚类算法

算法

简要描述

Canopy 

基于划分,速度快,但是比较粗糙,通常作为Kmeans的前面步骤,为其计算出初始类心

Kmeans 

基于划分,算法简单效果也比较好,需要指定初始的K个类心,可以用Canopy作为前步骤先大致算出类心,这样会更准确。计算出来的类的个数是固定的(K个),而且一个点只属于一个类。

Minhash

算法简单,mahout里只用一个map+一个reduce就实现了,但是输出并不能直接用,还需要自己做处理。

Lda

最近很热,算法复杂但是效果很好。

Dirichlet

基于概率模型的,需要先定义一个概率模型,效果也不错。

Meanshift

 

topdown

本身并不包含算法,看了下里面只是对输出的文件夹做了重新的整理(postProcess),以便进行下次聚类的使用,

fuzzykmeans

 是kmeans的扩张,加了模糊参数,与Kmeans的差别是一个点可以属于多个类,即类是可重叠的

 

 

原创粉丝点击