Mahout简介
Mahout简介
一、mahout是什么
Apache Mahout是ApacheSoftware Foundation (ASF)旗下的一个开源项目,提供了一些经典的机器学习的算法,皆在帮助开发人员更加方便快捷地创建智能应用程序。目前已经有了三个公共发型版本,通过ApacheMahout库,Mahout可以有效地扩展到云中。Mahout包括许多实现,包括聚类、分类、推荐引擎、频繁子项挖掘。
Apache Mahout的主要目标是建立可伸缩的机器学习算法。这种可伸缩性是针对大规模的数据集而言的。Apache Mahout的算法运行在ApacheHadoop平台下,他通过Mapreduce模式实现。但是,Apache Mahout并非严格要求算法的实现基于Hadoop平台,单个节点或非Hadoop平台也可以。Apache Mahout核心库的非分布式算法也具有良好的性能。
mahout主要包含以下5部分
频繁挖掘模式:挖掘数据中频繁出现的项集。
聚类:将诸如文本、文档之类的数据分成局部相关的组。
分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。
推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事物。
频繁子项挖掘:利用一个项集(查询记录或购物记录)去识别经常一起出现的项目。
二、mahout历史
Apache Mahout起源于2008年,经过两年的发展,2010年4月ApacheMahout最终成为了Apache的顶级项目。Mahout
项目是由 ApacheLucene(开源搜索)社区中对机器学习感兴趣的一些成员发起的,他们希望建立一个可靠、文档翔实、可伸缩的项目,在其中实现一些常见的用于集群和分类的机器学习算法。该社区最初基于
Ng et al. 的文章 “Map-Reduce for MachineLearning on Multicore”, 但此后在发展中又并入了更多广泛的机器学习方法。
Mahout 的目标还包括:
(1)、建立一个用户和贡献者社区,使代码不必依赖于特定贡献者的参与或任何特定公司和大学的资金。
(2)、专注于实际用例,这与高新技术研究及未经验证的技巧相反。
(3)、提供高质量文章和示例。
三、mahout的特性
虽然在开源领域中相对较为年轻,但 Mahout 已经提供了大量功能,特别是在集群和CF 方面。(集群与CF概念模糊可看文章第四节)
Mahout 的主要特性包括:
Taste CF。Taste 是 Sean Owen 在 SourceForge 上发起的一个针对 CF 的开源项目,并在 2008 年被赠予 Mahout。
一些支持 Map-Reduce 的集群实现包括 k-Means、模糊 k-Means、Canopy、Dirichlet 和 Mean-Shift。
Distributed Naive Bayes 和Complementary Naive Bayes 分类实现。
针对进化编程的分布式适用性功能。
Matrix 和矢量库。
上述算法的示例。
四、mahout当前已实现的三个具体的机器学习任务
它们正好也是实际应用程序中相当常见的三个领域:
协作筛选
集群
分类
先从概念的层面上更加深入地讨论这些任务。
(1)、协作筛选
协作筛选(CF) 是 Amazon 等公司极为推崇的一项技巧,它使用评分、单击和购买等用户信息为其他站点用户提供推荐产品。CF
通常用于推荐各种消费品,比如说书籍、音乐和电影。但是,它还在其他应用程序中得到了应用,主要用于帮助多个操作人员通过协作来缩小数据范围。您可能已经
在 Amazon 体验了 CF 的应用。
CF 应用程序根据用户和项目历史向系统的当前用户提供推荐。生成推荐的 4 种典型方法如下:
基于用户:通过查找相似的用户来推荐项目。由于用户的动态特性,这通常难以定量。
基于项目:计算项目之间的相似度并做出推荐。项目通常不会过多更改,因此这通常可以离线完成。
Slope-One:非常快速简单的基于项目的推荐方法,需要使用用户的评分信息(而不仅仅是布尔型的首选项)。
基于模型:通过开发一个用户及评分模型来提供推荐。
所有 CF 方法最终都需要计算用户及其评分项目之间的相似度。可以通过许多方法来计算相似度,并且大多数 CF 系统都允许您插入不同的指标,以便确定最佳结果。
(2)、集群
对于大型数据集来说,无论它们是文本还是数值,一般都可以将类似的项目自动组织,或集群,
到一起。举例来说,对于全美国某天内的所有的报纸新闻,您可能希望将所有主题相同的文章自动归类到一起;然后,可以选择专注于特定的集群和主题,而不需要
阅读大量无关内容。另一个例子是:某台机器上的传感器会持续输出内容,您可能希望对输出进行分类,以便于分辨正常和有问题的操作,因为普通操作和异常操作
会归类到不同的集群中。
与 CF 类似,集群计算集合中各项目之间的相似度,但它的任务只是对相似的项目进行分组。在许多集群实现中,集合中的项目都是作为矢量表示在
n维度空间中的。通过矢量,开发人员可以使用各种指标(比如说曼哈顿距离、欧氏距离或余弦相似性)来计算两个项目之间的距离。然后,通过将距离相近的项目
归类到一起,可以计算出实际集群。
可以通过许多方法来计算集群,每种方法都有自己的利弊。一些方法从较小的集群逐渐构建成较大的集群,还有一些方法将单个大集群分解为越来越小的集
群。在发展成平凡集群表示之前(所有项目都在一个集群中,或者所有项目都在各自的集群中),这两种方法都会通过特定的标准退出处理。流行的方法包括
k-Means 和分层集群。如下所示,Mahout 也随带了一些不同的集群方法。
(3)、分类
分类(通常也称为
归类)的目标是标记不可见的文档,从而将它们归类不同的分组中。机器学习中的许多分类方法都需要计算各种统计数据(通过指定标签与文档的特性相关),从而
创建一个模型以便以后用于分类不可见的文档。举例来说,一种简单的分类方法可以跟踪与标签相关的词,以及这些词在某个标签中的出现次数。然后,在对新文档
进行分类时,系统将在模型中查找文档中的词并计算概率,然后输出最佳结果并通过一个分类来证明结果的正确性。
分类功能的特性可以包括词汇、词汇权重(比如说根据频率)和语音部件等。当然,这些特性确实有助于将文档关联到某个标签并将它整合到算法中。
机器学习这个领域相当广泛和活跃。理论再多终究需要实践。
五、mahout下载
1、官网地址
http://mirrors.cnnic.cn/apache/mahout/0.9/
下载 mahout-distribution-0.9.tar.gz
2、所有版本下载地址
http://archive.apache.org/dist/mahout/
在这里可以下载所有mahout版本。
参考文档:
Hadoop实战 第二版 陆嘉恒
http://baike.baidu.com/view/4029457.htm?fr=aladdin
http://www.ibm.com/developerworks/cn/java/j-mahout/#resources
Mahout简介的更多相关文章
- Mahout学习之Mahout简介、安装、配置、入门程序测试
一.Mahout简介 查了Mahout的中文意思——驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个 ...
- Apache Mahout 简介 通过可伸缩、商业友好的机器学习来构建智能应用程序
在信息时代,公司和个人的成功越来越依赖于迅速有效地将大量数据转化为可操作的信息.无论是每天处理数以千计的个人电子邮件消息,还是从海量博客文章中推测用户的意图,都需要使用一些工具来组织和增强数据. 这其 ...
- 机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源
机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源 相关主题 在信息时代,公司和个人的成功越来越依赖于迅速 ...
- [转] 基于 Apache Mahout 构建社会化推荐引擎
来源:http://www.ibm.com/developerworks/cn/java/j-lo-mahout/index.html 推荐引擎简介 推荐引擎利用特殊的信息过滤(IF,Informat ...
- 转】机器学习开源框架Mahout配置与入门研究
原博文出自于:http://www.ha97.com/5803.html 感谢! PS:机器学习这两年特别火,ATB使劲开百万到几百万年薪招美国牛校的机器学习方向博士,作为一个技术控,也得折腾下 ...
- 基于Mahout的电影推荐系统
基于Mahout的电影推荐系统 1.Mahout 简介 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域 ...
- 深入浅出Hadoop Mahout数据挖掘实战(算法分析、项目实战、中文分词技术)
Mahout简介 Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目, 提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建 ...
- 基于 Apache Mahout 构建社会化推荐引擎
基于 Apache Mahout 构建社会化推荐引擎 http://www.ibm.com/developerworks/cn/views/java/libraryview.jsp 推荐引擎利用特殊的 ...
- Apache Mahout:适合所有人的可扩展机器学习框架
http://www.ibm.com/developerworks/cn/java/j-mahout-scaling/ 在软件的世界中,两年就像是无比漫长的时光.在过去两年中,我们看到了社交媒体的风生 ...
随机推荐
- angular2.0学习笔记7.echarts 地图(type:'map')slice undifined 出错问题
在 项目\node_modules\echarts\lib\chart\map.js文件头部 ... ... require("../coord/geo/geoCreator"); ...
- JAVA 8.20 游戏:四子连(Java&C++)
(游戏:四子连 )四子连是一个两个人玩的棋盘游戏,在游戏中,玩家轮流将有颜色的棋子放在一个六行七列的垂直悬挂的网格中: 这个游戏的目的是在对手实现一行.一列或者一条对角线上有四个相同颜 ...
- PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
- vs视图引入命名空间设置方法
解决: 1.@using在cshtml的最上面,加上一句: @using Puzzle.Framework.Common 2.在View文件夹下面的web.config里面加: <system. ...
- RNA-seq流程需要进化啦!
RNA-seq流程需要进化啦! Posted on 2015年9月25日 Tophat 首次被发表已经是6年前 Cufflinks也是五年前的事情了 Star的比对速度是tophat的50倍,hisa ...
- BZOJ1088或洛谷2327 [SCOI2005]扫雷
BZOJ原题链接 洛谷原题链接 很容易发现答案就只有\(0,1,2\)三种答案,而且只要知道第一个格子是否有雷就可以直接顺推下去了. 所以我们跑一次首位有雷,跑一次首位无雷判断是否可行即可. #inc ...
- SQL语句的三大类
数据定义语言(DDL Data Defination Language):用于创建和定义数据库对象,并且将对这些对象的定义保存到数据库字典中,通过DDL语句可以创建数据库对象.修改数据库对象.删除数据 ...
- [Chrome Headless + Python] 截长图 (Take Full-page Screenshot)
# -*- coding: utf-8 -*- import time import os from selenium import webdriver from selenium.webdriver ...
- js中将斜杠\替换的方法
js中将/替换的方法replace(/\//g, '-') 中间涉及到js的一些转义问题,试了几个方法,发现这个可以,就记下来.
- Spring Boot学习笔记:项目开发中规范总结
Spring Boot在企业开发中使用的很广泛,不同的企业有不同的开发规范和标准.但是有些标准都是一致的. 项目包结构 以下是一个项目常见的包结构 以上是一个项目的基本目录结构,不同的项目结构会有差异 ...