《Mahout算法解析与案例实战》一一1.1 Mahout应用背景

1.1 Mahout应用背景

随着互联网的发展,企业拥有的数据也越来越多,比如Facebook公司,从公司成立之初的100万用户数到2010年的1.34亿用户数,再到2014年的13.1亿用户数,其用户增长速度达到了令人惊叹的地步,单单用户数目的增长已经达到了如此地步,更不用说每个用户所产生的数据量了。很明显,面对如此庞大的数据量,企业再用以前的数据处理方式显然已经不能满足要求了。
正所谓,变则通,通则久。企业若想长久发展,面对日益增长的数据,在以前传统的数据处理方式显得力不从心的时候,就需要“变”。所谓“变”,其实就是对现有方式的创新。在此情况下,“云计算”便应运而生。所谓“云计算”是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备,这样可以最大限度、最大效率地利用计算机资源,达到快捷、高速地处理数据的目的。
但是,单单有云计算平台还不够,还需要有适合云平台的算法。云计算的核心就是计算,要研究可以在云平台上实现的算法,这样才能发挥云计算的最大威力。以前的数据挖掘算法是在单机上实现的,单机实现的算法其编程思路和模式与云平台下的编程思路和模式很不一样,如果还是按照以前的思路,那么肯定是行不通的。
目前开源的云平台有多种,本书所述的云平台是Hadoop云平台。Hadoop云平台是一个用于处理大数据的分布式应用的开源框架,提供分布式存储和高效计算能力。Hadoop具有以下优势:
同时提供分布式存储和计算能力。
具有极高的可扩展性。
其主要的组件之一HDFS具有很高的数据吞吐量。
具有软件和硬件容错性。
允许大数据的并行工作。
在Hadoop云平台下编程不仅要求用户对Hadoop云平台框架比较熟悉,还要对Hadoop云平台下底层数据流、Map和Reduce原理非常熟悉,这是基本的编程要求。此外,用户要编写某一个算法还需要对该算法的原理比较熟悉,即需要对算法原理理解透彻。总体来看,编写云平台下的算法程序是属于高难度的开发工作了。但是,如果使用Mahout,情况就会有很大的不同,用户再也不用自己编写复杂的算法,不需要掌握太高深的云平台的框架和数据流程的理论知识。用户所需要了解的只是算法的大概原理、算法实际应用环境和如何调用Mahout相关算法的程序接口。当然,在具体的项目中,用户还应该根据实际需求在Mahout源代码基础上进行二次开发以满足具体的实际应用情况。
Mahout是Apache基金会的开源项目之一。Apache Mahout起源于2008年,当时它是Apache Lucene的子项目。在使用Hadoop云平台的基础上,可以将其功能有效地扩展到Hadoop云平台中,提高其运算效率。2010年4月,Apache Mahout最终成为了Apache的顶级项目。创建此项目的用意是建立一个可扩容的云平台算法库。目前,Mahout已经实现了多种经典数据挖掘算法,算是比较完备的算法库了。Mahout目前还在扩充中,由世界上对这个项目感兴趣的云平台算法编程高手们一起进行开发、测试,然后进行算法扩充,任何对这个项目感兴趣的个人或者组织都可以加入到该项目的社区中,为该项目做出贡献。

时间: 2024-11-02 22:51:43

《Mahout算法解析与案例实战》一一1.1 Mahout应用背景的相关文章

《Mahout算法解析与案例实战》一一3.3 Mean Shift算法

3.3 Mean Shift算法 3.3.1 Mean Shift算法简介 Mean Shift算法,中文可以翻译为均值偏移或均值漂移,最早是由Fukunaga在1975年发表的<The Estimation of the Gradient of a Density Function, with Application in Pattern Recognition>中被提出来,这是一篇关于概率密度梯度函数的论文.Mean Shift最开始的意思是偏移的均值向量,它是一种无参的估计方法,沿着概率

《Mahout算法解析与案例实战》一一

3.1 Canopy算法 3.1.1 Canopy算法简介在生活中,我们可以使用聚类解决很多问题,就像本章开始提到的几个例子一样.传统的聚类算法对于一般的应用问题(基本都是小数据量)都是可以解决的,但是当数据变得很大的时候,就有点"力不从心"了.这里的数据变得很大指的是:①数据的条目很多,整个数据集包含的样本数据向量很多:②针对①中的每个样本数据向量其维度很大,即包含多个属性:③要聚类的中心向量很多.当我们所要应用聚类算法的数据是上面所述情况时,传统的聚类方法应用起来就会相当棘手,这时

《Mahout算法解析与案例实战》一一 第3章 聚 类 算 法

第3章 聚 类 算 法 聚类在百度百科上的定义为:将物体或抽象对象的集合分成由类似的对象组成的多个类的过程.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异.在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类在生活中的应用有很多,例如,在商务上,聚类能帮助市场分析人员从客户基本库中发现不同的客户群,并且用购买模式来刻画不同的客户群特征:在生物学上,聚类用于推导植物和动物的分类,对基

《Mahout算法解析与案例实战》一一1.4 本章小结

1.4 本章小结 本章首先介绍了Mahout应用背景,由云计算引入Hadoop,随后介绍了Hadoop云平台.Hadoop云平台的优势及其应用编程模型,由Hadoop云平台的编程引入Mahout.接着解释了Mahout的基本概念以及它的应用背景.在Mahout应用背景的基础上,介绍了Mahout算法库已经具备的算法模块,然后针对每个算法模块分别进行了每个算法的介绍.接着简单分析了Mahout的各种现有应用,其中商业上的应用比较突出,然而,在学术上,Mahout的应用也同样很广泛,一些大学课程中也

《Mahout算法解析与案例实战》一一1.2 Mahout算法库

1.2 Mahout算法库 Mahout自从2008年兴起以来,发展迅速,从最开始的只有推荐系统到现在的多个算法模块,涵盖了很多行业.这些模块有聚类算法.分类算法.协同过滤算法和频繁项集挖掘算法,每个模块都含有一个或者几个不同的实现算法,下面分别进行介绍.1.2.1 聚类算法 中国有句古谚语"物以类聚,人以群分".一个聚类即是一类物体的集合,集合中的个体是相似的,不同聚类中的个体是不相似的.聚类的二维图如图1-1所示. 图1-1 聚类二维图 针对上面的数据,我们可以很容易地把它们分为右

《Mahout算法解析与案例实战》一一2.1 Mahout安装前的准备

2.1 Mahout安装前的准备 就像前面提到的,我们是在Hadoop云平台编写算法时遇到困难才想到使用Mahout的,所以首先要有一个Hadoop云平台才行.这里要注意的是,虽然Mahout最初应用的平台是Hadoop集群平台,但是现在经过扩展,Mahout已经不仅仅适用于Hadoop集群云平台了,还可以单机运行算法,即与使用Java编写的算法是一样的,而且这个算法还是被优化过的.配置基于Hadoop云平台的Mahout 环境所使用的软件包括Linux操作系统.JDK.Hadoop.Mahou

《Mahout算法解析与案例实战》一一导读

Preface?前 言 为什么要写这本书 2010年以后,世界快速进入了大数据时代,Hadoop成为大数据分析的首选平台和开发标准,无数数据分析软件纷纷向Hadoop靠拢.在Hadoop原有技术基础之上,涌现了Hadoop家族产品,它们正在配合"大数据"概念不断创新,推动科技进步.因此,新一代IT精英也必须顺应潮流,抓住机遇,随着Hadoop一起发展和成长! 简而言之,Hadoop是由Apache基金会开发的一个优秀的云计算技术框架,用户在其基础上即使不了解分布式底层细节,也可以开发分

《Mahout算法解析与案例实战》一一1.3 Mahout应用

1.3 Mahout应用 作为Apache基金会的顶级项目之一,Mahout的应用也极其广泛,一般分为商业应用和学术应用.在商业应用中,Adobe AMP公司使用Mahout的聚类算法把用户区分为不同的圈子,通过精确定位营销来增加客户.Amazon的个人推荐平台也是使用Mahout的算法库来进行推荐的.AOL使用Mahout来进行购物推荐.DataMine Lab使用Mahout的推荐算法以及聚类算法来提高客户广告投放的精确度.iOffer使用Mahout频繁项集挖掘算法和协同过滤算法为用户推荐

《Mahout算法解析与案例实战》一一2.2 两种安装方式

2.2 两种安装方式 关于Mahout的安装配置,这里介绍两种方式:其一,下载源码(直接下载源码或者通过svn下载源码都可以),然后使用Maven进行编译:其二,下载完整包进行解压缩.下面分别对这两种方式进行介绍.2.2.1 使用Maven安装 使用Maven安装之前需要先安装Maven.首先到Maven官网http://maven.apache.org/download.cgi下载Maven软件,这里下载的是bin版本,解压到/home/mahout/apache-maven-3.1.0,然后

《Mahout算法解析与案例实战》一一3.4 本章小结

3.4 本章小结 本章首先介绍聚类算法的一般概念,然后简要分析了这类算法在生活中的应用,使读者了解了该类算法的应用场景.接着通过分析Hadoop云平台上面三个聚类算法的Mahout实现:Canopy.K-Means和Mean Shift算法,让读者在比较清晰地理解每个具体算法的原理的同时,了解该算法在Mahout的实现思路,开拓思维.并且在每个小节专门设置了算法实战,使读者通过实战可以轻而易举地学会如何调用该算法,为读者解决实际问题提供帮助.