原博文出自于:http://www.ha97.com/5803.html    感谢!

  PS:机器学习这两年特别火,ATB使劲开百万到几百万年薪招美国牛校的机器学习方向博士,作为一个技术控,也得折腾下,就这样来初步折腾下Mahout这个机器学习的主流开源框架。

一、Mahout简介

  查了Mahout的中文意思:驭象的人,再看看Mahout的logo,骑在象头上的那个Mahout。机器学习是人工智能的一个分支,它涉及通过一些技术来允许计算机根据之前的经验改善其输出。此领域与数据挖掘密切相关,并且经常需要使用各种技巧,包括统计学、概率论和模式识别等。虽然机器学习并不是一个新兴领域,但它的发展速度是毋庸置疑的。许多大型公司,包括 IBM、Google、Amazon、Yahoo! 和 Facebook,都在自己的应用程序中实现了机器学习算法。此外,还有许多公司在自己的应用程序中应用了机器学习,以便学习用户以及过去的经验,从而获得收益。

    Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括被称为Taste的分布式协同过滤的实现、分类、聚类等。Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。
 
 
 
 
 
 
 
在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安装配置(网上很多相关文档是错误的,我这个方法能成功运行)

1、下载Mahout

进入 http://archive.apache.org/dist/mahout/ 下载最新版本包
wget  http://archive.apache.org/dist/mahout/0.12.2/apache-mahout-distribution-0.12.2.tar.gz
 
2、解压
tar zxvf apache-mahout-distribution-0.12.2.tar.gz
 
3、配置环境变量(必备前提是hadoop已完全配置好并能正常使用,hadoop的部署文档很多了,我就不说了。)
 
配置Mahout环境变量
export MAHOUT_HOME=/root/apache-mahout-distribution-0.12.2
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH
 
4、验证Mahout是否安装成功
运行命令mahout,若列出一些算法就配置成功,如图:
 

三、Mahout 之入门使用
1、启动Hadoop集群
2、下载测试数据,把这个文件放在$MAHOUT_HOME/testdata目录下:
/root/apache-mahout-distribution-0.12.2
mkdir testdata
cd testdata
wget  http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data
 3、使用Mahout中的kmeans聚类算法,执行命令:
mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
大概28秒完成聚类,结果如下图: (根据集群机器的硬件配置,有人说要10分钟)

注意:当你运行上面命令看到如下的代码时以为是错的,其实不是,原因:MAHOUT_LOCAL:设置是否本地运行,如果设置该参数就不会在hadoop运行了,一旦设置这个参数那HADOOP_CONF_DIR 和HADOOP_HOME两个参数就自动失效了。
MAHOUT_LOCAL is not set, so we don’t add HADOOP_CONF_DIR to classpath.
no HADOOP_HOME set , running locally
 
 
 
4、查看聚类分析结果,结果会在根目录建立output新文件夹,如下图表示mahout配置正确且运行正常:
 

好了,先到这,下次再深入研究。

永久链接 : http://www.ha97.com/5803.html

转】机器学习开源框架Mahout配置与入门研究的更多相关文章

  1. .NET数据挖掘与机器学习开源框架

    1.    数据挖掘与机器学习开源框架 1.1 框架概述 1.1.1 AForge.NET AForge.NET是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经 ...

  2. JDBC开源框架:DBUtils使用入门

    在单元测试过程中,只涉及到数据库的直接操作来验证业务逻辑是否正确的情况,DBUtils非常适合使用.它结构简单,包小,友好处理掉那些jdbc异常,让你更专注于业务代码,而非底层的操作.官网对它的定义: ...

  3. DIY一些基于netty的开源框架

    几款基于netty的开源框架,有益于对netty的理解和学习! 基于netty的http server框架 https://github.com/TogetherOS/cicada 基于netty的即 ...

  4. PDF.NET SOD 开源框架红包派送活动 && 新手快速入门指引

    一.框架的由来  快速入门 有关框架的更多信息,请看框架官方主页! 本套框架的思想是借鉴Java平台的Hibernate 和 iBatis 而来,兼有ORM和SQL-MAP的特性,同时还参考了后来.N ...

  5. Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源 ...

  6. Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明 下一篇:Farseer.net轻量级ORM开源框架 ...

  7. Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ...

  8. hibernate 入门([数据访问中间件] 开源框架)

    1.内容:  hibernate 也是一个经典的[数据访问中间件] 开源框架.    2.hibernate核心组件       SessionFactory[整个数据的操作]重量级组件       ...

  9. 开源框架.netCore DncZeus学习(二)配置连接

    配置连接字符串,update-database,初始数据后,访问报错,提示offset错误.因为本机上使用的sql2008. .net Core 2.X中的EF访问sqlserver2008默认使用的 ...

随机推荐

  1. spring boot 1.4默认使用 hibernate validator

    spring boot 1.4默认使用 hibernate validator 5.2.4 Final实现校验功能.hibernate validator 5.2.4 Final是JSR 349 Be ...

  2. 24个有用的PHP类库分享

    目前,PHP是用于Web开发的最流行的脚本语言.你可以在互联网上随手找到关于PHP大量资料,包括文档.教程.工具等等.PHP不仅是一种功能丰富的语言,它还能帮助开发人员轻松地创建更好的网络环境.为了进 ...

  3. 三个特殊资源目录 /res/xml /res/raw 和 /assets

    在android开发中,我们离不开资源文件的使用,从drawable到string,再到layout,这些资源都为我们的开发提供了极大的便利,不过我们平时大部分时间接触的资源目录一般都是下面这三个. ...

  4. tokudb引擎安装-2

    前言:因为现在tokuDB直接整合到Percona server里面了,下载页面直接跳转到下载Percona Server 页面了.安装方法跟以前不一样了,下面就来看一下新版本怎么安装了 ##准备阶段 ...

  5. “LC.exe已退出,代码为-1错误”解决办法

    有的时间,在项目中编辑运行以后,竟然出错了,错误提示就是: “LC.exe”已退出,代码为 -1. 具体解决方法如下: 因为证书的原因,把项目中“properties”目录下的“license.lic ...

  6. java.lang.NoSuchMethodError: No static method setLayoutDirection(Landroid/graphics/drawable/Drawable;I)V in class Landroid/support/v4/graphics/drawable/DrawableCompat

    Bug: java.lang.NoSuchMethodError: No static method setLayoutDirection(Landroid/graphics/drawable/Dra ...

  7. git终端提示符

    最近使用git bash的时候,看到默认的终端提示符不爽,主要是太长了.所以想对git终端提示符进行优化 默认git的终端提示符会是  用户名@设备名称 ,我想改成更短的来查看. 提示符是由一个环境变 ...

  8. Android_PendingIntent的使用

        PendingIntent介绍 PendingIntent可以看作是对Intent的一个封装,但它不是立刻执行某个行为,而是满足某些条件或触发某些事件后才执行指定的行为. PendingInt ...

  9. .propertie文件注释

    在.properties文件中注释,前边加#就可以

  10. Java 日期时间

    Java 日期时间 标签 : Java基础 Date java.util.Date对象表示一个精确到毫秒的瞬间; 但由于Date从JDK1.0起就开始存在了,历史悠久,而且功能强大(既包含日期,也包含 ...