译者序在人工智能和大数据时代,学习机器学习的相关算法,探索深度学习的实现与应用,实现对大数据的分析和挖掘是十分重要的。本书以机器学习算法、神经网络与深度学习为基础,以Python为研发环境,以scikitlearn、TensorFlow和Keras等为主要工具,介绍如何有效地构建智能系统和机器学习的解决方案,并给出工程实践。书中由浅入深地介绍有关Python与Jupyter等基础知识,介绍数据清洗和高级机器学习技术(如监督学习、无监督学习、分类和回归等),讨论Pandas、BeautifulSoup等机器学习与数据处理工具的使用,介绍数据采集和交互可视化方法。本书在对神经网络和深度学习进行介绍的基础上,给出基于scikitlearn、TensorFlow和Keras构建智能机器学习系统的解决方案,通过实例介绍构建智能系统的模型体系结构,通过对模型的性能评估和参数调优,向读者展示如何评估一个智能系统的性能。最后,通过深度学习模型的使用,创建智能应用系统。 原著作者Alex Galea和Luis Capelo均有多年从事Python数据分析、机器学习等相关智能系统工作的经验,是开源社区上的活跃人物,拥有scikitlearn、TensorFlow和Keras应用的丰富经验。由他们二人合作完成的这部著作,从实践角度出发,比较全面地介绍了基于scikitlearn、TensorFlow和Keras构建智能系统和机器学习的解决方案,并结合一些项目实例介绍了部分关键技术,原著的审校团队也拥有数据分析领域的丰富经验。我们认为,无论是对初学者还是有经验的开发人员来说,本书都是很有参考价值的,它不仅内容全面、强调实践,而且表达方式通俗易懂,且实践指导性较强。 本译著由高凯、吴林芳、李娇娥、朱玉合作翻译,最后由高凯完成了全书审校工作。在本译著的写作过程中,我们对部分相关概念进行了注释和说明,增加了对图注、表注的说明,并且对部分核心代码进行了标注。为忠实原著及方便排版,本书未对原文代码中的换行与缩进标记等进行改变,在上机运行示例中的代码时,请遵守Python语法及缩进规则。完整的可执行Jupyter Notebook文档可以从清华大学出版社官方网站中搜索本书后获取。运行代码时,应注意按Python语法与缩进规定书写。在本译著的写作过程中也得到了其他多方面的支持与帮助,高莘、杨铠成、徐倩、杨凯、江跃华、谢宇翔、李明奇、侯雪飞、杨聪聪等均提供了协助。在本译著的出版过程中,清华大学出版社的郭赛、焦虹等也给予了大力支持与协助,在此一并表示衷心感谢。 “信、达、雅”是我们翻译此书所追求的目标。尽管我们竭尽全力,但毕竟水平有限,译文中难免有不足和有待商榷之处,敬请读者批评指正。 译者2020年2月前言本书采用循序渐进的方法教您如何入门数据科学、机器学习和深度学习领域。本书的每个章节模块都建立在前一章学习的基础上,包含多个程序演示,使用真实的业务场景。借助这些高度相关的内容,您可以实践和应用所学习到的新技能。 在本书的第1~3章,您将学习入门级的数据科学方法,即Anaconda中的常用库,并借助真实数据集探索机器学习模型,这样可提高您的应用技巧和探索现实应用的能力。 从本书的第4章开始,您将学习神经网络和深度学习的相关知识。从现实Web应用的角度出发,您将学习如何训练、评估和部署TensorFlow和Keras模型。当您完成阅读时,您将掌握在深度学习环境中构建应用程序的知识,并创建精细的数据可视化和预测模型。 1. 谁适合阅读本书 如果您是一个即将迈入数据科学领域的Python程序员,那么这本书正适合您从头学习;如果您是一名有经验的软件开发人员、分析师或者从事数据处理的科研工作者,并想基于TensorFlow和Keras进行数据分析,那么这本书也是一本理想的参考书。在此,我们假设您已经熟悉Python、Web应用程序开发,Docker命令以及线性代数、概率论和统计学的相关概念。 2. 这本书包含哪些内容 第1章,Jupyter基础。本章涵盖Jupyter环境下数据分析的基础知识。本章将从Jupyter的使用和功能特征说明(例如Jupyter的魔术函数指令和标签)开始介绍,然后过渡到数据科学的具体内容。本章将在生动的Jupyter Notebook环境中探索数据分析,使用散点图(scatter plots)、直方图(histograms)和小提琴图(violin plots)等视觉辅助工具加深您对数据的理解。本章还将介绍构建简单的预测模型的方法。 第2章,数据清理和高级机器学习。本章将介绍如何在Jupyter Notebook环境中训练预测模型,如何构建基于机器学习的策略,有关机器学习的一些术语,如监督学习、无监督学习、分类和回归,以及使用scikitlearn译者注: scikitlearn是一个基于Python的开源机器学习库,可实现回归、分类、聚类、支持向量机、随机森林等算法,也可与Python的数值和科学库NumPy和SciPy等互操作。和Pandas译者注: Pandas是一个高性能的数据分析库,可用于数据的预处理和结构化等操作。进行数据预处理的方法。 第3章,网页信息采集和交互式可视化。本章将介绍如何采集网页、表单等数据,并使用交互式可视化方式研究数据。会首先讲解HTTP请求是如何工作的,重点关注GET请求以及请求响应状态码,然后将在Jupyter Notebook环境下基于Python使用Requests库构建HTTP请求。本章将介绍Jupyter Notebook如何渲染并呈现HTML,以及它和实际网页之间的互动操作。在提出网页请求后,您将看到如何使用BeautifulSoup译者注: BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库。等工具解析HTML中的文本,并使用此库采集相关表单中的数据。 第4章,神经网络与深度学习简介。本章将帮助您构建和配置深度学习的环境,并介绍一些有特色的模型和案例。本章还将讨论神经网络及其起源思想,进一步探索神经网络的强大功能。 第5章,模型体系结构。本章将展示如何使用深度学习模型预测比特币的价格。 第6章,模型评估和优化。本章将展示如何评估一个神经网络模型,讲解如何调整网络的超参数以改善其性能。 第7章,产品化。本章将介绍如何通过一个深度学习模型创建可用的应用程序。将把第6章中的比特币预测模型部署为应用程序,使之能够通过创建新模型处理新数据。 3. 如何更好地使用本书 本书适用于对数据感兴趣、希望学习有关TensorFlow和Keras的知识以及开发应用程序的专业人士和学生。为了获得最佳的学习体验,您应该具备编程基础知识,并具有一定的Python应用经验。特别地,您应该对一些Python库(如Pandas、Matplotlib译者注: Matplotlib是一个在Python中绘制图形的库。和scikitlearn等)有所了解,这对您的学习非常有帮助。 4. 如何下载样例代码文件 读者可以通过访问清华大学出版社官方网站下载本书的程序样例代码。 可以按照以下步骤下载代码文件。 (1) 访问清华大学出版社官方网站。 (2) 在网页右上方的搜索框中输入书名并搜索,在本书的详情页面中单击“课件下载”图标。 (3) 文件下载完毕后,请使用以下工具解压文件。  WinRAR/7Zip for Windows。  Zipeg/iZip/UnRarX for Mac。  7Zip/PeaZip for Linux。 本书的配套代码及相关资源可以通过扫描下方的二维码获取下载地址。 5. 书中的习惯用法与记号说明 本书采用如下习惯用法,记号说明如下。 代码段: 表明代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。下面示例中的NotebookApp就是这种类型的表示。 一个代码段被记成如下格式。fig, ax = plt.subplots(1, 2) sns.regplot('RM', 'MEDV', df, ax=ax[0], scatter_kws={'alpha': 0.4})) sns.regplot('LSTAT', 'MEDV', df, ax=ax[1], scatter_kws={'alpha': 0.4}))当需要着重表示某个特定代码段以引起您的注意时,相关代码行和项目用粗体标识。  cat chapter-1/requirements.txt   matplotlib==2.0.2   numpy==1.13.1   pandas==0.20.3   requests==2.18.4命令行的输入或输出被表述为如下格式。  pip install version_information   pip install ipython-sql粗体: 表示一个新术语、一个重要的词或您在屏幕上看到的词,例如出现在文本中的菜单或对话框中的词。例如“请注意write dress(白色礼服)的价格是如何用来填充missing values(缺失值)的。” 表示警告或重要的信息。 提示或小技巧。 6. 关于本书作者 Alex Galea: 拥有加拿大圭尔夫大学物理学硕士学位,毕业后一直从事职业数据分析工作,在攻读硕士学位、研究量子气体的工作时,他对Python产生了浓厚的兴趣。Alex目前正在进行Web数据分析的工作,而Python在他的分析工作中发挥了关键的作用,他经常在博客上撰写以数据为中心的项目,主要涉及Python和Jupyter Notebook等内容。 Luis Capelo: 一位接受过哈佛教育的分析师和程序员,在美国纽约专门从事数据科学产品的设计和开发,是福布斯(Forbes)数据产品团队的负责人。该团队负责调研新技术,以优化论文中提到的方法和性能,研发有关内容分发的相关技术。此前,他在Flowminder基金会领导了一支世界级的科学家团队,开发了预测模型,助力人文社区的建设。在此之前,他曾是联合国人文数据交换团队的成员,也是人文数据中心的创始人。作为一名古巴哈瓦那人,他是一家小型咨询公司的创始人和所有人,他的公司也致力于为新成立的古巴私营部门提供支持。 7. 关于本书审校人 Elie Kawerk: 他使用数据科学过程(包括统计方法和机器学习)从数据中生成观点,完成知识发现,喜欢用多年积累的数据分析技巧解决问题。 他接受过计算物理学的正规训练,曾经使用古老的FORTRAN语言在超级计算机的帮助下模拟原子和分子的物理现象,这个分析过程涉及很多线性代数和量子物理方程方面的知识。 Manoj Pandey: 一名Python程序员,也是PyData Delhi的创始人和组织者,经常从事研究和开发工作,目前正在与RaRe Technologies合作开展他们的孵化器计划(这是一个有关计算线性代数的项目)。在此之前,他曾与印度的初创公司和小型设计或开发机构合作过,并向很多业内人士教授有关Python和JavaScript的课程。