Python大数据与机器学习实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

为什么要写这本书?

随着5G时代的来临、企事业单位信息化系统的不断完善以及物联网的兴起,数据的收集、传输、存储不再是问题,数据的质量和数量都呈爆发式增长。大数据开发的焦点逐渐从数据收集统计向挖掘新功能、节约成本、创造价值的方向转变,从而催生出大量的应用,并且开始在各个垂直领域开花结果。

人工智能和大数据技术是一门交叉学科,不仅需要计算机领域的知识和算法技术,而且还需要应用领域的相关知识和技巧才能定义和解决问题。可以说,大数据不仅是一门技术,而且是一种思维。机器从数据中学习知识、总结经验,并不断自我进化,整个行业将迎来从信息化向智能化蓬勃发展的时期。

从业者也将面临前所未有的挑战:如何定义问题、选择数据、架构系统、评估工作量、完成工作需要哪些技能……这些问题也随着行业的变化而逐步演进。对于从业者的技术要求越来越高,同时也产生了巨大的人才缺口。

在此时代背景下,大量学生和有经验的程序员都希望能向人工智能和大数据的方向发展,而该领域又涉及系统集成、数据仓库、网络数据获取、统计学、数学基础、机器学习建模以及结果的展示等方面,使得该行业“门槛”比较高。对于日新月异的新兴行业,技术更新迭代速度非常快,目前学校和培训机构开设的课程有限,且水平良莠不齐。在校招时,笔者就发现本科生往往很难达到算法工程师的要求。

那么,如何培养数据工程师并使其在有限的时间内了解整个系统的运行方式,同时出色地完成自身的工作,对学校和企业来说都是必须面对的问题。目前,市场上的大数据书籍和教程基本分为两类:一类偏重算法概念,实用性较差,读者的学习过程比较艰难枯燥,学习之后也很难与实际工作相结合;另一类偏重讲解语言和工具的用法,实例相对简单,与真实应用场景差别较大。

在本书的撰写过程中,笔者遵循全面、实战、目标导向的原则,以在实际工作中大数据工程师需要掌握的技术为目标,系统地讲解了数据工程师的必备技能;由程序员转行的数据工程师也可以从这本书中学习算法和统计学原理,在使用工具时不仅可以知其然,还可以知其所以然。在结构上,本书并没有为保持完整性而用相同篇幅讲解所有功能,而是根据实践经验梳理出常用的问题和场景,让读者用最短的时间,掌握最核心的知识,避免陷入细枝末节中。

本书有何特色?

1.从系统角度出发

本书涉及大数据工程的方方面面,从问题的定义、数据评估,到具体实现,如数据获取(爬虫)、数据存储(数据库、数据仓库)、特征工程、数据展示、统计分析、建立模型以及简单的前端展示。其中,还涉及数据集群的搭建(Linux、Docker)。本书可以使读者了解数据工作的全貌,学习整个数据系统的运作和相关技能,具有全局思维,而不只是熟悉小范围内的具体工作。企业也可以将本书作为从事与大数据相关工作人员的培训资料。

2.理论与实际结合

本书从始至终都本着理论和实际相结合的原则,在原理章节(第7至10章)中阐释原理、推导公式的同时,给出例程并讨论该方法常见的使用场景;在实战章节(第11至16章)中除了展示前沿算法的使用方法,还介绍了相关概念、公式推导以及源代码。本书把学和用联系起来,既能在学习时了解使用场景,又能在使用时了解其背后的原理和算法演进过程。

3.主次分明

本书并不是某一具体领域方法的罗列和知识的总结,并不为了保持其完整性使用同等篇幅介绍所有功能。本书更多地着眼于基础知识、常见的需求和方法,尽量将它们组织起来,以解决具体问题的方式偏重关键点,简略说明次要部分。在学习时间和学习难度两方面降低读者的学习成本。

4.前沿技术

目前,在很多偏重原理的算法书中主要讲解的都是20世纪八九十年代流行的算法,这些基础算法都是复杂算法的基础,机器学习从业人员必须了解,但在实用方面,它们早已被当前的主流算法所取代。

本书也使用了一定篇幅讲解基础算法和统计学方法,同时在实战章节中引入近几年的前沿技术,如NLP领域的BERT算法、图像分割的Mask R-CNN算法、机器学习XGBoost的原理推导以及源码的讲解。

5.典型示例

本书后半部分以实例为主,每个实例针对一种典型的问题,包括决策问题、自然语言处理、时间序列、图像处理等,其中大部分代码函数可以直接用在类似的场景中。同时,也在各个章节中加入了示例代码,对于常见问题,读者可快速找到其解决方法并且直接使用其代码。

6.通俗易懂

本书的语言通俗易懂,并在相对生涩的算法原理章节中加入了大量举例和相关基础知识,尽量让读者在阅读过程中无须查阅其他有关基础知识的书籍,以提高学习效率。

本书内容及知识体系

第1章 Python编程

本章介绍作为大数据工程师需要掌握的基本技术,让读者对数据分析的知识体系有一个整体的认知,然后讲解各种Python开发和运行环境的搭建,以及Python的基本数据结构和语法、调试技术和常见问题。不熟悉Python编程的开发者可通过学习本章掌握Python语言的特点和使用方法。

第2~4章 Python数据分析工具

本部分详细介绍数据处理使用的科学计算库Numpy、数据操作库Pandas、数据可视化工具Matplotlib和Seaborn,以及交互作图工具PyEcharts的数据处理逻辑和常用方法示例,为后续的数据处理奠定基础。

第5~10章 Python数据处理与机器学习算法

本部分涉及数据采集、数据存储、特征工程、统计分析,建立机器学习模型的基本概念、原理、具体实现方法、统计方法和模型的选择,以及在实现机器学习算法过程中常用的工具和技巧。其将理论、举例和Python代码有机地结合在一起,分别讲解数据处理的每一个子模块。

第11~16章 Python实战

本部分介绍决策问题、迁移学习、图像分割、时序分析、自然语言处理,以及定义问题的方法等几类典型的机器学习问题,兼顾使用场景分析、原理、代码解析等层面,和读者一起探讨在实战中解决问题的思路和方法。

适合阅读本书的读者

● 向人工智能和大数据方向发展的工程师。

● 学习Python算法和数据分析的工程师。

● 希望了解大数据工作全流程的行业从业者。

● 希望将数据算法应用于传统行业的从业者(金融、医疗、经济等)。

● 有一定的大数据理论基础,但没有实战经验的研究人员。

● 大数据和人工智能方向的创业者。

● 大数据行业的项目经理、产品经理、客户经理、产品设计师。

● 希望了解人工智能和大数据开发的学生、教师、专业培训机构的学员。

阅读本书的建议

● 对于没有Python编程基础的读者,建议从第1章开始阅读并演练每一个实例。

● 对于有经验的程序员,建议先通读本书,对大数据相关问题建立整体认知。对于具体的语法以及库的使用方法,不用一次掌握,只需要了解其可实现的功能,在遇到问题时能从书中速查即可。

● 算法章节难度相对较大,但原理非常重要,放平心态认真阅读,绝大部分都能掌握,有些公式推导未必能一次理解,读不懂的部分可先遗留。

● 本书后半部分的实例章节,强烈建议读者在阅读的过程中编程实现和调试,并加入自己的改进方案,因为调试代码的效果要远远大于仅阅读代码的效果。