前言
Spark在英文中是火花的意思,创作者希望它能够像火花一样点燃大数据时代的序幕。它,做到了。
大数据时代是一个充满着机会和挑战的时代,就像一座未经开发的金山,任何人都有资格去获得其中的宝藏,仅仅需要的就是有一把得心应手的工具——MLlib就是这个工具。
本书目的
本书的主要目的是介绍如何使用MLlib进行数据挖掘。MLlib是Spark中最核心的部分,它是Spark机器学习库,经过无数创造者卓越的工作,MLlib已经成为一个优雅的、可以运行在分布式集群上的数据挖掘工具。
MLlib充分利用了现有数据挖掘的技术与手段,将隐藏在数据中不为人知,但又包含价值的信息从中提取出来,并通过相应的计算机程序,无须人工干预自动地在系统中进行计算,以发现其中的规律。
通常来说,数据挖掘的难点和重点在于两个方面:分别是算法的学习和程序的设计。还有的是需要使用者有些相应的背景知识,例如统计学、人工智能、网络技术等。本书在写作上以工程实践为主,重点介绍其与数据挖掘密切相关的算法与概念,并且使用浅显易懂的语言将其中涉及的算法进行概括性描述,从而可以帮助使用者更好地了解和掌握数据挖掘的原理。
作者在写作本书的时候有一个基本原则,这本书应该体现工程实践与理论之间的平衡。数据挖掘的目的是为了解决现实中的问题,并提供一个结果,而不是去理论比较哪个算法更高深,看起来更能吓唬人。本书对算法的基本理论和算法也做了描述,如果读者阅读起来觉得困难,建议找出相应的教材深入复习一下,相信大多数的读者都能理解相关的内容。
本书内容
本书主要介绍MLlib数据挖掘算法,编写的内容可以分成三部分:第一部分是MLlib最基本的介绍以及RDD的用法,包括第1~4章;第二部分是MLlib算法的应用介绍,包括第5~12章;第三部分通过一个经典的实例向读者演示了如何使用MLlib去进行数据挖掘工作,为第13章。
各章节内容如下:
第1章主要介绍了大数据时代带给社会与个人的影响,并由此产生的各种意义。介绍了大数据如何深入到每个人的生活之中。MLlib是大数据分析的利器,能够帮助使用者更好地完成数据分析。
第2章介绍Spark的单机版安装方法和开发环境配置。MLlib是Spark数据处理框架的一个主要组件,因此其运行必须要有Spark的支持。
第3章是对弹性数据集(RDD)进行了讲解,包括弹性数据集的基本组成原理和使用,以及弹性数据集在数据处理时产生的相互依赖关系,并对主要方法逐一进行示例演示。
第4章介绍了MLlib在数据处理时所用到的基本数据类型。MLlib对数据进行处理时,需要将数据转变成相应的数据类型。
第5章介绍了MLlib中协同过滤算法的基本原理和应用,并据此介绍了相似度计算和最小二乘法的原理和应用。
第6~12章每章是一个MLlib分支部分,其将MLlib各个数据挖掘算法分别做了应用描述,介绍了其基本原理和学科背景,演示了使用方法和示例,对每个数据做了详细的分析。并且在一些较为重要的程序代码上,作者深入MLlib源码,研究了其构建方法和参数设计,从而帮助读者更深入地理解MLlib,也为将来读者编写自有的MLlib程序奠定了基础。
第13章是本文的最后一章,通过经典的鸢尾花数据集向读者演示了一个数据挖掘的详细步骤。从数据的预处理开始,去除有相关性的重复数据,采用多种算法对数据进行分析计算,对数据进行分类回归,从而最终得到隐藏在数据中的结果,并为读者演示了数据挖掘的基本步骤与方法。
本书特点
● 本书尽量避免纯粹的理论知识介绍和高深技术研讨,完全从应用实践出发,用最简单的、典型的示例引申出核心知识,最后还指出了通往“高精尖”进一步深入学习的道路;
● 本书全面介绍了MLlib涉及的数据挖掘的基本结构和上层程序设计,借此能够系统地看到MLlib的全貌,使读者在学习的过程中不至于迷失方向;
● 本书在写作上浅显易懂,没有深奥的数学知识,采用了较为简洁的形式描述了应用的理论知识,让读者轻松愉悦地掌握相关内容;
● 本书旨在引导读者进行更多技术上的创新,每章都会用示例描述的形式帮助读者更好地学习内容;
● 本书代码遵循重构原理,避免代码污染,引导读者写出优秀的、简洁的、可维护的代码。
读者与作者
● 准备从事或者从事大数据挖掘、大数据分析的工作人员
● Spark MLlib初学者
● 高校和培训学校数据分析和处理相关专业的师生
本书由王晓华主编,其他参与创作的作者还有李阳、张学军、陈士领、陈丽、殷龙、张鑫、赵海波、张兴瑜、毛聪、王琳、陈宇、生晖、张喆、王健,排名不分先后。
示例代码下载
本书示例代码可以从下面地址(注意数字和字母大小写)下载:
http://pan.baidu.com/s/1hqtuutY
如果下载有问题,请联系电子邮箱booksaga@163.com,邮件主题为“MLlib代码”。
编者
2017年1月