本书不仅对经典机器学习中的基础概念做了系统的梳理和分类,涵盖机器学习基本概念、模型分类、特征选择方法、机器学习处理流程、评估方法等基础知识,而且还系统介绍了新一代大数据架构。此外,本书还深入浅出地介绍了各类机器学习算法,详细讲解决策树、核方法、贝叶斯方法、聚类、回归、关联规则挖掘、深度学习、强化学习、集成学习等机器学习技术。在讲解具体机器学习算法时,都会首先介绍算法原理及应用场景,然后通过案例来讲述算法实践。随书源码还列举了每类算法在不同机器学习框架和库中的实现。
1
从结构复杂的海量数据集中探索数据蕴含的意义,是日益增长的现实需求。机器学习与预测分析技术是进行此类探索的重要工具。机器学习利用历史数据集,提取其中蕴含的模式,在不断的迭代中提升预测效果。机器学习能发现数据中隐含的动态趋势、模式及关系,这对业务增长非常重要。
在本书中,读者不仅仅能学到机器学习的基本知识,同时也能了解到现实世界的数据复杂性,然后使用Hadoop及其生态系统软件来处理和管理结构化及非结构化数据。
主要内容
第1章介绍机器学习的基本概念及其常见语义。通过一些简单的术语来定义机器学习。本章是其余章节的基础。
第2章探索大规模数据集,包括其公共特性、数据重复问题、数据量快速增长的原因,以及如何处理大数据。
第3章介绍Hadoop,从Hadoop核心框架开始,然后扩展到其生态系统。学完本章,读者将掌握Hadoop的配置、部分功能的运行,同时也能了解到某些Hadoop生态系统组件。读者将能够运行和管理Hadoop环境及理解命令行工具的使用。
第4章介绍一些开源的机器学习工具,包括安装、算法在特定工具或平台中的实现,以及这些库、工具及框架的运行,这些工具或库包括Apache Mahout、Python、R、Julia以及Apache Spark中的MLlib。值得强调的是,本章中也会着重介绍这些库、工具或框架与Hadoop的集成。
第5章介绍一种有监督学习技术,称为决策树,它既可解决分类问题也可以解决回归问题。本章内容覆盖从特征选择到决策树分裂、剪枝等多个环节。重点介绍几类决策树算法,如CART、C45、随机森林以及一些高级的决策树。
第6章介绍两种机器学习方法——基于实例和基于核方法的学习,并讨论它们是如何解决分类与预测问题的。在基于实例的方法中,会详细介绍最近邻算法。而在基于核方法的机器学习算法中,会重点介绍如何使用支持向量机解决现实问题。
第7章探讨关联规则学习相关算法:Apriori及FPgrowth。借助一个常见的例子,手把手教读者通过Apriori及FPgrowth算法进行频繁模式挖掘。
第8章讨论聚类学习方法,聚类是一种无监督学习方法。本章将深入介绍kmeans聚类,同时利用Mahout、R、Python、Julia、Spark等工具演示如何实现kmeans聚类。
第9章介绍贝叶斯学习。此外,介绍一些核心的统计学概念,从基本术语到各种分布模型。最后会深入介绍贝叶斯定理,以及如何利用它解决现实问题。
第10章介绍基于回归分析的机器学习,重点介绍如何利用Mahout、R、Python、Julia、Spark等工具实现线性回归和逻辑回归。另外,也会介绍相关统计概念,如方差、协方差、ANOVA等。最后会利用案例深入介绍如何使用回归模型解决现实问题。
第11章首先介绍生物学中的神经元模型、人工神经网络的功能以及与它的关联。读者将会学到人工神经网络的核心概念、全连接神经网络的结构。本章也会探究某些关键的激活函数,它们用到了矩阵乘法。
第12章介绍一种新的机器学习技术,称为强化学习。读者将会了解到它与传统的有监督和无监督机器学习技术的区别。本章也会介绍MDP基础,以及相关的案例。
第13章讨论机器学习中的集成学习方法,带领读者通过真实案例掌握某些有监督集成学习技术。最后,本章将以源代码形式介绍如何利用R、Python(scikitlearn)、Julia、Spark、Mahout等工具演示梯度提升算法。
第14章介绍机器学习的实现。读者需要深刻理解传统分析平台的局限,以及为什么它们不能适应现代数据需求。读者也应该了解新的数据架构范式,如Lambda架构混合持久化(多模型数据库架构);本章也会介绍语义架构,它帮助使用者进行无缝数据集成。
阅读准备
欲演示本书中的范例,需预先安装下列软件:
●R(2151)
●Apache Mahout (09)
●Python(scikitlearn)
●Julia(034)
●Apache Spark(Scala 2104)
目标读者
本书的目标读者是那些想了解机器学习实践及通过机器学习技术解决现实应用的数据科学家。本书能指导读者了解机器学习和预测分析的基本原理及最新进展,了解大数据革命的方方面面,这是任何致力于解决当前大数据问题的人员的必备资源。如果你想立即着手练习,需具备基本的编程(Python和R)功底和数学知识。
范例源码及彩图下载
本书提供了源代码供读者下载,网址为https://githubcom/PacktCode/PracticalMachineLearning。
为了帮助读者更好地理解书中的内容,本书提供了彩图的PDF文件供读者下载:http://wwwpacktpubcom/sites/default/files/downloads/Practical_Machine_Learning_ColorImagespdf。
计算机\数据挖掘
本书探索了一系列广泛应用的机器学习技术,用实际例子揭示常见数据中隐藏的处理技巧。虽然机器学习是高度理论性的,但是本书提供了一种令人耳目一新的实操方法,同时也没有忽略底层原理。
本书涵盖当前领先的数据科学语言(如Python和R)、被低估但非常强大的Julia,以及一系列大数据平台(包括Spark、Hadoop和Mahout等)。实用的机器学习技术是现代数据科学家掌握机器学习应用的重要资源。
本书还探讨了机器学习的前沿进展,提供了一些关于深度学习和强化学习的范例和指导原则,完美演绎实操过程及算法原理。
通过阅读本书,你将学到:
实现多种算法或技术,用于处理复杂数据。
掌握数据科学相关的颇具威力的语言,如R、Python、Julia等。
掌握Spark、Mahout与Hadoop的协同使用,成功解决数据管理、处理中的各种问题。
如何采用适当的机器学习技术解决现实问题。
了解深度学习及机器学习前沿领域是如何使用人工神经网络的。
探索新一代机器学习技术,深入了解混合持久化、语义数据等技术。
[印]苏尼拉·格拉普蒂(Sunila Gollapudi)著:Sunila Gollapudi 担任Broadridge金融解决方案(印度)有限公司的技术副总裁。该公司是美国Broadridge金融解决方案公司的全资子公司(BR)。她在IT服务领域拥有近14年的丰富实践经验。她目前负责印度卓越架构中心,是大数据和数据科学计划的领军人物。加入Broadridge之前,她在全球性领先机构担任重要职位,专门从事Java,分布式架构,大数据技术,高级分析,机器学习,语义技术和数据集成工具等领域的研发。
随着互联网时代的来临,出现了前所未有的信息过载问题。为了方便人们从海量信息中快速精准地提取感兴趣的信息,需要解决两方面问题:一方面是解决海量数据的存储、计算;另一方面是在海量数据上进行深度分析与挖掘,提取有用的知识或模式。前者属于大数据架构范畴,而后者很大程度上依赖机器学习技术。
机器学习实践存在以下几大难点:第一,机器学习算法种类繁多,有较高理论门槛,对实践者的数学基础有一定要求。常见的机器学习算法有决策树、关联规则挖掘、核方法、聚类算法、回归分析、贝叶斯方法、深度学习、强化学习、集成学习等。第二,实践者通常需要同时掌握多种机器学习框架。市面上并没有某个机器学习框架能通吃一切。第三,特征工程、参数调优依赖经验及计算资源。第四,机器学习算法在大数据场景下的落地,对工程能力有较高的要求,实践者需要对大数据架构有足够的了解,能够将单机版的机器学习算法移植到分布式环境中。本书针对上述机器学习实践难点,对内容做了精心编排,深入浅出,图文并茂。首先介绍了机器学习的基础概念,然后介绍了机器学习算法与大数据的关系、Hadoop框架及其生态系统,以及常见的机器学习框架。之后根据机器学习算法的类别,逐一介绍每类算法。在介绍具体的机器学习算法时,首先介绍算法原理及应用场景,然后通过案例来讲述算法实践。本书的随书源码还列举了每类算法在不同机器学习框架和库中的实现。
本书译文经过精心组织,结合了译者的机器学习实践经验,并参考了IBM、微软、百度、腾讯、国美大数据研究院、滴滴出行等众多知名企业的业界专业人士的意见。本书翻译团队由拥有丰富机器学习实践经验的算法专家、架构师和开发者组成。其中,张世武负责第1、4~10章的翻译和全书统稿工作,商旦负责第2和3章的翻译,陈铁兵负责第11~14章的翻译。在本书翻译过程中,翻译团队经过多次讨论、审校,力求翻译准确、优雅。由于本书涉及很多新概念,业界尚无统一术语,再加上译者水平有限,难免会出现一些翻译问题,欢迎广大读者及业内同行批评指正。
在此感谢翻译团队所有成员的不懈努力和辛苦工作。大家精力和时间都很有限,能够半年如一日,顶着日常工作和生活的压力,不计回报通力合作,为一本书的翻译付出极大的热忱,实属难得。还要感谢翻译团队家人的理解和默默支持,让我们一路走到今天。
在本书的翻译过程中,译者张世武得到所在单位成都数联铭品科技有限公司(BBD)的大力支持。BBD是一家行业领先的金融大数据公司,机器学习技术在BBD得到了广泛的应用,应用领域包括自然语言处理(NLP)、图像识别、深度学习、图挖掘、行业分类、关联挖掘等。感谢曾途、尹康、吴桐、丁国栋、田志伟、马扬、张浩林、李然、黎学亮、宋开发、夏阳、刘荀、李元豪、罗元磊、何宏靖、唐宏伟等领导对本书出版给予的关怀与支持。技术部及其他部门同事提出了很多宝贵建议,感谢BBD公司以下人员的支持:李想、王尧、丁明会、范东来、刘世林、赵龙、王振宇、何耀、刘兆强、金涛、黄光虎、范从俊、董涛、许尧、张伟、邢杰、丁永强、何俊、唐国海、刘兴洋、苏印、刘俊杰、闫俊杰、张学锋、吕司君、吴德文、何佳、邹俊、何正开、刘龙均、郭羽凌、吴勇、杨熹岑、王瑞贤、曾昌强、封强、秦德强、黄元勋、侯宜梁、何毅、高学林、王彤、谭亚军、魏犇、席爱龄、沈思丞、田曲、陈珊、胡馨月、申秋艳、马小思、高翔、葛相宇、唐斌、苏柏铔、魏林玮、沈思成、龚必全、胡时豪、徐宏杰、张宇翔、翟建平、隋苗苗、王琰、刘琳琳、李梓睿、韩远、杨建蓉、郑睿颖、岑锦、薛双凯、张冬冬、李宏凯、韩垚、黄艳飞。
感谢机械工业出版社华章分社的编辑团队提供的翻译机会。尤其要感谢缪杰老师及王春华老师,没有他们的督导和支持,本书很难如期翻译完成。还要感谢出版社相关岗位的工作人员,离开他们的支持,本书翻译版也无法尽快与读者见面。
再次感谢!
推 荐 序 一
近年来,人工智能、大数据分析、深度学习等领域日益引人瞩目,而机器学习技术则是其中非常重要的理论和工具。本书作为机器学习的入门及进阶图书,可以帮助广大迫切希望了解和掌握机器学习的研究人员或工程师奠定良好的基础。
本书各章节内容编排恰到好处,不但对经典机器学习中的基础概念做了非常系统的梳理和分类,涵盖了机器学习基础知识的主要部分,如基本概念、机器学习模型分类、特征选择方法、机器学习处理流程、评估方法等,而且还对新一代大数据架构做了系统的介绍,这是十分难能可贵的(在某种程度上弥补了同类书籍的空白),随着数据量的不断膨胀,现代机器学习技术越来越依赖大数据架构。本书也分别对每一类机器学习算法进行了深入浅出的介绍,对决策树、核方法、贝叶斯方法、聚类、回归、关联规则挖掘、深度学习、强化学习、集成学习等机器学习技术均有精彩的论述。
本人在北大求学以及在国美大数据研究院、Boss直聘工作期间,均从事机器学习相关研究工作,期间阅读过多本机器学习著作。该领域著作两极分化比较严重,或者是像《Deep Learning》(Ian Goodfellow、Yoshua Bengio、Aaron Courville)《Statistical Learning Theory》(Vapnic)这样艰深的理论著作,或者是像《Machine Learning in Action》这样难度稍浅但易于上手、令人愉悦的读本。手头这本书在理论性与实践性之间做了很好的平衡,在深入介绍算法原理、应用场景的同时,也借助大量例子帮助读者理解算法的工作机制,既介绍了机器学习技术,也介绍了大数据场景中机器学习算法所依赖的大数据技术,随书源码提供了每类算法在不同机器学习框架中的实现范例,不同技术背景的读者均可快速上手。书中配有大量的图表和实例,以非常形象的方式介绍机器学习技术。这种表述方式降低了理论门槛,能帮助工程师或工科背景的读者快速入门。
最后,值得一提的是,译者张世武曾与我在国美大数据研究院共事,他是一位资深的技术专家,在全文索引、分布式搜索引擎框架、相关性排序等方面有深入的研究。他在机器学习领域有着丰富的研究和实践经验,同时也是一位资深的技术书籍译者,这为本书的翻译质量提供了保证。本书通篇用语规范、表达准确,总体来说是非常不错的翻译版本,值得一读。
宋洋
博士,Boss直聘NLP技术负责人/前国美大数据研究院技术总监
推 荐 序 二
机器能思考吗?这个问题吸引了全世界的科学家和研究人员。20世纪50年代,阿兰·图灵(Alan Turing)对问题进行了改造,从“机器可以思考吗?”转移到“机器能做哪些人类(思维实体)能做的事情?”。此后,机器学习和人工智能领域一直是令人兴奋的话题,并已经取得了长足的进步。
随着各种计算技术的进步、计算设备的普遍使用,以及由此产生的信息/数据过剩现象,人们已经把对机器学习的关注焦点从令人兴奋的深奥领域转移到应用领域。如今,世界各地的组织已经认识到机器学习在知识发现中的关键作用,并开始对这些能力进行投资。
世界上大多数开发人员都听说过机器学习,“学习”似乎令人生畏,因为这个领域是跨学科的,涉及大数据、统计学、数学和计算机科学等。从某种程度上来说,Sunila填补了机器学习领域图书的空白。她采用一种全新的方法来帮助读者掌握机器学习相关知识,包括计算可扩展性、数据集复杂性,以及快速响应等。
撰写本书的目的是为数据科学家和数据分析师提供一本赏心悦目的参考手册。正如Sunila所述,本书能帮助读者以深入浅出的方式掌握机器学习基本知识,为读者的机器学习之旅中的每一步奠定坚实的基础。
作者逐步讲述了三个关键的知识模块。基础模块侧重于概念辨析,详细阐述了各种机器学习理论的差别。接下来的知识模块将这些概念与现实世界的问题关联,并建立了甄选最佳解决方案的规则。最后,介绍了机器学习实践方面的最新成果与工具及其对企业用户的价值。
V. Laxmikanth
Broadridge Financial Solutions(印度)公司董事总经理
推荐序一
推荐序二
译者序
前言
关于作者
关于审校者
第1章机器学习简介
11机器学习
111定义
112核心概念与术语
113什么是学习
114机器学习中的数据不一致性
115机器学习实践范例
116机器学习问题类型
12性能度量
13机器学习的相关领域
131数据挖掘
132人工智能
133统计学习
134数据科学
14机器学习处理流程及解决方案架构
15机器学习算法
151基于决策树的算法
152基于贝叶斯的算法
153基于核方法的算法
154聚类算法
155人工神经网络
156降维方法
157集成方法
158基于实例的算法
159基于回归分析的算法
1510基于关联规则的算法
16机器学习工具与框架
17小结
第2章机器学习和大规模数据集
21大数据和大规模机器学习
211功能与架构:方法论的失配
212机器学习的可扩展性和性能
213模型选择过程
214大规模机器学习的潜在问题
22算法和并发
23垂直扩展的机器学习技术方案
231MapReduce编程架构
232利用消息传递接口进行高性能计算
233LINQ框架
234使用LINQ操作数据集
235GPU
236FPGA
237多核或多处理器系统
24小结
第3章Hadoop架构和生态系统简介
31Apache Hadoop简介
311Hadoop的演化
312Hadoop及其核心要素
32基于Hadoop的大数据机器学习解决方案架构
321数据源层
322数据摄入层
323Hadoop数据存储层
324Hadoop基础设施层
325Hadoop平台/处理层
326分析层
327数据消费层
328MapReduce
33Hadoop 2x
331Hadoop生态系统组件
332Hadoop安装和配置
333Hadoop发行版和供应商
34小结
第4章机器学习工具、库及框架
41机器学习工具概览
42Apache Mahout
421Mahout如何工作
422安装和设置Apache Mahout
423Mahout软件包详解
424Mahout中的vector实现
43R
431安装和设置R
432R与Apache Hadoop集成
44Julia
441安装和设置Julia
442在命令行中执行Julia程序
443例解Julia
444变量与赋值
445使用Julia的好处
446Julia与Hadoop集成
45Python
451Python中工具包的选择
452例解Python
46Apache Spark
461Scala
462RDD编程
47Spring XD
48小结
第5章基于决策树的学习
51决策树
511术语
512目标与用途
513构造决策树
514特殊的决策树
52实现决策树
53小结
第6章基于实例和核方法的学习
61基于实例的学习
611最近邻
612实现kNN
62基于核方法的学习
621核函数
622支持向量机
623实现SVM
63小结
第7章关联规则学习
71关联规则学习
711关联规则的定义
712Apriori算法
713FPgrowth算法
714Apriori与FPgrowth
72实现Apriori及FPgrowth算法
73小结
第8章聚类学习
81聚类学习
82聚类的类型
821层次聚类
822划分式聚类
83kmeans聚类算法
831kmeans算法的收敛性
832kmeans算法的优点
833kmeans算法的缺点
834距离度量
835复杂度度量
84实现kmeans聚类
85小结
第9章贝叶斯学习
91贝叶斯学习
911统计学家的视角
912贝叶斯定理
913朴素贝叶斯分类器
92实现朴素贝叶斯算法
93小结
第10章基于回归的学习
101回归分析
1011重温统计学
1012混杂
1013效应修饰
102回归方法
1021简单线性回归
1022多元线性回归
1023多项式回归
1024广义线性模型
1025逻辑回归(logit连接)
1026泊松回归
103实现线性回归和逻辑回归
104小结
第11章深度学习
111背景知识
1111人类大脑结构
1112神经网络
1113反向传播算法
1114Softmax回归算法
112深度学习类型
1121卷积神经网络
1122循环神经网络
1123受限玻尔兹曼机
1124深度玻尔兹曼机
1125自动编码器
113实现ANN和深度学习方法
114小结
第12章强化学习
121强化学习
1211强化学习的背景知识
1212强化学习的主要特点
122强化学习算法
1221动态规划
1222蒙特卡罗方法
1223时序差分学习
1224Qlearning(异策略TD)
1225actorcritic方法(同策略)
1226Rlearning(异策略)
123实现强化学习方法
124小结
第13章集成学习
131集成学习方法
1311群体智慧
1312经典应用
1313集成方法
132实现集成学习方法
133小结
第14章下一代机器学习数据架构
141数据架构的演进
142机器学习的现代数据架构
1421语义数据架构
1422多模型数据库架构/混合持久化
1423Lambda架构
143小结