Mahout算法解析与案例实战
上QQ阅读APP看书,第一时间看更新

前言

为什么要写这本书

2010年以后,世界快速进入了大数据时代,Hadoop成为大数据分析的首选平台和开发标准,无数数据分析软件纷纷向Hadoop靠拢。在Hadoop原有技术基础之上,涌现了Hadoop家族产品,它们正在配合“大数据”概念不断创新,推动科技进步。因此,新一代IT精英也必须顺应潮流,抓住机遇,随着Hadoop一起发展和成长!

简而言之,Hadoop是由Apache基金会开发的一个优秀的云计算技术框架,用户在其基础上即使不了解分布式底层细节,也可以开发分布式程序。Hadoop家族成员中的诸多成员进一步利用了这一优势,拓展了云计算的应用领域,降低了相应的软件开发门槛,而Mahout就是其中最难掌握,也是最有竞争力且最值得学习的项目之一。

Mahout是一个基于Hadoop的机器学习和数据挖掘的分布式计算框架,在MapReduce模式下封装实现了大量数据挖掘经典算法,为Hadoop开发人员提供了数据建模的标准,从而大大降低了大数据应用中并行挖掘产品的开发难度。在掌握了Mahout之后,Hadoop开发人员可以直接调用相关算法模型的接口,方便、快捷地创建智能应用程序,从而大幅提升商业智能软件的大数据分析处理能力。

但是,目前关于Mahout的参考资料比较少,比较有名的是Sean Owen编写的《Mahout in Action》,更多时候开发者只能通过Mahout的官网或者网络上一些技术爱好者发布的博客内容来进行学习。《Mahout in Action》是一本全英文的书籍,而且出版年份比较早,对国内的一些Mahout爱好者来说,阅读此书有一定的难度,因此,笔者就有了结合自己的经验写一本与Mahout有关的书籍的想法。本书针对Mahout算法库目前收录的大多数算法进行了分析,同时收录了笔者开发的4个简单系统,作为读者学习和实践的实例。

读者对象

·Hadoop用户和爱好者

·云平台系统架构师

·Mahout代码二次开发者

·云平台系统开发者

·使用Mahout、Hadoop的相关用户

·开设相关课程的大专院校学生

如何阅读本书

本书分为三大部分:

第一部分为基础篇(第1~2章),首先对Mahout的应用背景以及Mahout算法库收录的算法进行了简单介绍,同时分析了Mahout的应用实例。接着介绍其开发环境并详细分析了它的配置,使读者可以搭建一个自己的开发环境,为后面实战做好准备。

第二部分为算法篇(第3~7章),分析了Mahout算法库中不同模块的各个算法的原理以及Mahout实现流程,同时在每章末尾都有算法实战,让读者自己运行程序,感受程序运行的各个流程。

第三部分为实战篇(第8~11章),通过对4个不同系统案例的分析讲解,让读者了解开发完整的云平台系统的各个流程,即需求分析→系统框架选择及构建→系统功能设计→功能开发和界面开发。

其中第三部分以接近实战的案例来讲解云平台算法和当前流行框架的结合,此部分内容需要读者有一定的Spring、Struts 2、Hibernate等框架的基础。第一、第二部分则是Mahout基础知识,如果读者对Mahout不熟悉,建议从第1章内容开始阅读。

勘误和支持

除封面署名外,还有很多人对本书的写作提供了帮助,分别为:张汉锐、张良均、刘名军、庄思待、曾祥柱、曾健荣等。由于作者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,读者可以通过笔者微博(http://weibo.com/fansy1990)或CSDN地址(http://blog.csdn.net/fansy1990)反馈有关问题。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱fansy1990@foxmail.com,期待能够得到你们的真挚反馈。

致谢

首先要感谢Apache基金会,感谢其开源的伟大精神。如果没有Apache基金会,没有其Mahout开源项目,那么就不会有这本书。

感谢华南师范大学的薛云老师,在写本书的过程中,他给了我很多指导,为我指明了方向,同时提供了很多支持。

感谢CSDN社区,它提供了一个技术交流平台,笔者在这个平台学到了很多知识和技能,为笔者编写本书提供了很多帮助和支持。

感谢机械工业出版社华章公司的编辑杨福川、姜影和佘洁,在这一年多的时间中始终支持我的写作,你们的鼓励和帮助引导我顺利完成全部书稿。

最后感谢我的爸爸、妈妈,感谢你们将我培养成人,感谢你们在我人生的每个阶段都能给我提供不同的建议,并时时刻刻支持我。无论我做什么决定,你们的支持是我坚持的动力。

谨以此书献给我最亲爱的家人,以及众多热爱Mahout的朋友!