前 言
这是一本关于机器学习的书,它以Scala为重点,介绍了函数式编程方法以及如何在Spark上处理大数据。九个月前,当我受邀写作本书时,我的第一反应是:Scala、大数据、机器学习,每一个主题我都曾彻底调研过,也参加了很多的讨论,结合任何两个话题来写都具有挑战性,更不用说在一本书中结合这三个主题。这个挑战激发了我的兴趣,于是就有了这本书。并不是每一章的内容都像我所希望的那样圆满,但技术每天都在快速发展。我有一份具体的工作,写作只是表达我想法的一种方式。
下面先介绍机器学习。机器学习经历了翻天覆地的变换;它是由人工智能和统计学发展起来的,于20世纪90年代兴起。后来在2010年或稍晚些时候诞生了数据科学。数据科学家有许多定义,但Josh Wills的定义可能最通俗,我有幸在Cloudera工作时和他共事过。这个定义在图1中有具体的描述。虽然细节内容可能会有争议,但数据科学确实是几个学科的交叉,数据科学家不一定是任何一个领域的专家。据Jeff Hammerbacher(Cloudera的创始人,Facebook的早期员工)介绍,第一位数据科学家工作于Facebook。Facebook需要跨学科的技能,以便从当时大量的社交数据中提取有价值的信息。虽然我自称是一个大数据科学家,但我已经关注这个交叉领域很久了,以至于有太多知识出现混淆。写这本书就是想使用机器学习的术语来保持对这些领域的关注度。
目录
第1章 探索数据分析
1.1 Scala入门
1.2 去除分类字段的重复值
1.3 数值字段概述
1.4 基本抽样、分层抽样和一致抽样
1.5 使用Scala和Spark的Notebook工作
1.6 相关性的基础
1.7 总结
第2章 数据管道和建模
2.1 影响图
2.2 序贯试验和风险处理
2.3 探索与利用问题
2.4 不知之不知
2.5 数据驱动系统的基本组件
2.6 优化和交互
第3章 使用Spark和MLlib
3.1 安装Spark
3.2 理解Spark的架构
3.3 应用
3.4 机器学习库
3..5 Spark的性能调整
3.6 运行Hadoop的HDFS
3.7 总结