数据科学导论:Python语言实现(原书第2版)
作者 : [意]阿尔贝托·博斯凯蒂(Alberto Boschetti) 卢卡·马萨罗(Luca Massaron) 著
译者 : 于俊伟 靳小波 译
出版日期 : 2018-03-09
ISBN : 978-7-111-58986-0
定价 : 59.00元
教辅资源
扩展信息
语种 : 简体中文
页数 : 232
开本 : 16
原书名 : Python Data Science Essentials,Second Edition
原出版社: Packt Publishing Ltd.
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书首先介绍了如何在Python 3.5中安装必要的数据科学工具箱;然后引导你进入数据改写和预处理阶段,在其中阐述用于数据分析、探索或处理的数据加载、变换和修复等关键的数据科学活动;最后,通过介绍主要的机器学习算法、图分析技术和可视化方法来对数据科学进行概述。

图书特色

封面

图书前言

“千里之行,始于足下。”
——老子(公元前604—531)
数据科学属于一门相对较新的知识领域,它成功融合了线性代数、统计建模、可视化、计算语言学、图形分析、机器学习、商业智能、数据存储和检索等众多学科。
Python编程语言在过去十年已经征服了科学界,现在是数据科学实践者不可或缺的工具,也是每一个有抱负的数据科学家的必备工具。Python为数据分析、机器学习和算法求解提供了快速、可靠、跨平台、成熟的开发环境。无论之前在数据科学应用中阻止你掌握Python的原因是什么,我们将通过简单的分步化解和示例导向的方法帮你解决,帮助你在演示数据集和实际数据集上使用最直接有效的Python工具。
作为第2版,本书对第1版内容进行了更新和扩展。以最新的Jupyter Notebook(包括可互换内核,一个真正支持多种编程语言的数据科学系统)为基础,本书包含了NumPy、pandas和Scikit-learn等库的所有主要更新。此外,本书还提供了不少新内容,包括深度学习(基于Theano和Tensorflow的Keras)、漂亮的数据可视化(Seaborn和ggplot)和Web部署(使用bottle)等。本书首先使用单源方法,展示如何在最新版Python(3.5)中安装基本的数据科学工具箱,这意味着本书中的代码可以在Python 2.7上重用。接着,将引导你进入完整的数据改写和预处理阶段,主要阐述用于数据分析、探索或处理的数据加载、变换、修复等关键数据科学活动。最后,本书将完成数据科学精要的概述,介绍主要的机器学习算法、图分析技术和可视化方法,其中,可视化工具将更易于向数据科学专家或商业用户展示数据处理结果。
本书内容
第1章介绍Jupyter Notebook,演示怎样使用程序手册中的数据。
第2章对数据科学流程进行概述,详细分析进行数据准备和处理所使用的关键工具,这些工具将在采用机器学习算法和建立假设实验计划之前使用。
第3章讨论所有可能有助于结果改进甚至提升的数据操作技术。
第4章深入研究Scikit-learn包中的主要机器学习算法,例如线性模型、支持向量机、树集成和无监督聚类技术等。
第5章介绍图的概念,它可以表示为偏离预测或目标的有趣矩阵。这是目前数据科学界的研究热点,期待利用图的技术来研究复杂的社交网络。
第6章介绍使用matplotlib进行可视化的基本方法,以及如何使用pandas进行探索性数据分析(EDA),如何使用Seaborn和Bokeh实现漂亮的可视化,还包括如何建立提供所需要信息的Web服务器。
附录包括一些Python示例和说明,重点介绍Python语言的主要特点,这些都是从事数据科学工作必须了解的。
阅读准备
本书用到的Python及其他数据科学工具(从IPython到Scikit-learn)都能在网上免费下载。要运行本书附带的源代码,需要一台装有Windows、Linux或Mac OS等操作系统的计算机。本书将分步介绍Python解释器的安装过程,以及运行示例所需要的工具和数据。
读者对象
如果你有志于成为数据科学家,并拥有一些数据分析和Python方面的基础知识,本书将助你在数据科学领域快速入门。对于有R语言或Matlab编程经验的数据分析人员,本书也可以作为一个全面的参考书,提高他们在数据操作和机器学习方面的技能。
代码下载
你可以从http://www.packtpub.com通过个人账号下载你所购买书籍的样例源码。你也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载本书的源代码。
彩图下载
我们还提供了一个PDF文件,其中包含本书中使用的截图和彩图,可以帮助读者更好地了解输出的变化。文件可以从以下地址下载:http://www.packtpub.com/sites/default/files/downloads/PythonDataScienceEssentialsSecondEdition_colorImages.pdf。

上架指导

计算机\数据科学

封底文字

本书首先介绍如何设置基本的数据科学工具箱,然后带你进入数据改写和预处理阶段,这一部分主要是阐明所有与核心数据科学活动相关的数据分析过程,如数据加载、转换、修复以及数据探索和处理等。最后,通过主要的机器学习算法、图形分析技术,以及所有易于表现结果的可视化工具,实现对数据科学的概述。
本书对上一版内容进行了全面拓展和更新,涵盖新版的Jupyter Notebook、NumPy、pandas和Scikit-learn等的最新改进。此外,还介绍了深度学习(借助在Theano和Tensorflow平台上运行的Keras库)、漂亮的可视化(使用Seaborn和 ggplot)和Web部署(使用bottle)等新内容。
本书行文过程以数据科学项目为主体,辅以整洁的代码和简化的示例,能帮助你理解与项目相关的潜在原理和实际数据集。

通过阅读本书,你将学到:
在Windows、Mac和Linux的Python科学环境中安装数据科学工具箱
为数据科学项目准备数据
为了解决数据科学问题,进行数据操作、修复和探索
建立实验流程来检验数据科学假设
为数据科学任务选择最有效和可扩展的学习算法
优化机器学习模型,以获得最佳性能
进行图的探索和聚集分析,充分利用数据中的联系和连接

译者序

我们正处于一个快速发展的信息化时代,人们每天都在生产着各种类型的数据,与此同时,数据也在极大地影响着我们的生活。于是,数据成为与能源同等重要的资源。掌握了数据获取、处理、建模、分析等过程的理论和方法,无疑就掌握了打开这种新型资源的钥匙。
数据科学是融合多种学科的新的知识领域,一般要求学习者或从业者具备统计学等数学知识、计算机相关学科专业知识和特定业务领域的知识。随着人工智能、大数据、云计算等领域的蓬勃发展,众多科技公司和从业人员都越来越重视对数据科学的研究和应用。
工欲善其事,必先利其器。那么,什么才是数据科学家最值得信赖的专业工具呢?Python无疑是众多数据分析语言中最适合的一个。GitHub Octoverse 2017 年度报告显示,Python已经代替Java成为第二种最受欢迎的编程语言,由此可见数据科学发展的火热程度。Python是一种通用的、解释性和面向对象的语言,具有强大的数据分析和机器学习软件包,为解决各种数据科学问题提供了快速、可靠、成熟的开发环境。它易学易用,便于快速开发,有很好的交互式体验,并且已经征服了科学界,堪称解决数据科学问题的神器。
本书介绍了进行数据科学分析和开发的所有关键要点,包括Python软件及相关工具包的安装和使用;介绍了数据加载、运算和改写等基本数据准备过程,以及特征选择、维数约简等高级数据操作方法;建立了由训练、验证、测试等过程组成的数据科学流程,结合示例深入浅出地讲解了多种机器学习算法;讨论了基于图模型的社交网络创建、分析和处理方法;最后还谈到了数据分析结果的可视化及相关工具使用方法。
本书在第1版的基础上对数据科学的编程环境和知识结构进行了一定的更新和调整,方便读者使用最新版本的Python及相关工具包,也有助于读者结合数据科学的最新发展形成自己的知识体系。在编程环境方面,本书的示例代码全部是基于Python 3的,尽管通过添加导入过程还能在Python 2环境下运行,我们还是建议读者使用代表未来发展趋势的Python 3的较新版本。Jupyter已经正式从IPython分离,本书对这种支持多语言的交互式工具进行了系统而详细的介绍,书中很多示例都是在Jupyter Notebook环境下完成的。另外,为了给不同系统和不同版本的Python创建独立的运行环境,可以使用virtualenv或conda进行虚拟环境管理。在知识结构上,本书对数据处理、机器学习和结果表示等相关的方法进行了梳理和补充。例如,将目前流行的大数据和深度学习单独列为一节进行详细介绍,重点介绍了深度学习库Theano和神经网络Keras库的使用方法。为了促进机器学习方法在现实生活中的应用,6.4节介绍了创建“机器学习即服务”预测服务器的工具和方法。另外,为了增强读者的Python基础,附录简明扼要地介绍了Python数据结构、函数、类、条件语句等基础知识,还指出了深入学习Python相关知识会用到的网络资源。
本书作者是两位意大利数据科学专家,他们长期从事与数据科学相关的教学和科研工作,在Python社区、社交网络上也很活跃,发表了多篇学术论文,出版了多部著作,对数据科学相关人员影响很大。本书是作者多年实践经验的总结,具有以下特点:1)循序渐进,深入浅出,让初学者不畏惧,让从业者得要领。2)理论与实践相结合,几乎所有算法和理论都辅以简洁的实例和说明,通过简单的几行代码即可验证。3)有助于深入理解数据科学概念,轻松进行理论扩展,快速建立自己的工程,从而做到学以致用,促进多种形式的科学研究和应用开发。
无论是作为数据科学和机器学习理论研究者的参考书,还是作为数据科学应用开发人员的工具书,抑或作为有志成为数据科学家的初学者的指导书,本书都能提供非常有价值的参考。本书还可以作为高等院校相关学科本科生或研究生的学习教材,特别适合从事数据科学、信息处理和机器学习等方向的研究生进行学习和参考。
本书第4章由河南工业大学信息科学与工程学院靳小波博士翻译,其余章节及附录由河南工业大学信息科学与工程学院于俊伟博士翻译。由于译者水平有限,加之时间仓促,错误和疏漏在所难免,恳请读者批评指正。
本书的翻译工作得到国家自然科学基金项目(61300123)、河南省高校重点科研项目(15A520012)和河南省研究生教育教学改革研究与实践项目(2017SJGLX046Y)的资助。感谢机械工业出版社华章公司对本书出版的高度重视,特别感谢和静、张志铭等编辑的讨论和帮助,他们的辛勤工作提高了本译著的质量。最后还要感谢父母、妻子及女儿等家人的爱和包容,他们的支持使我对目前从事的科技工作更加坚定和执着,也希望我们的工作能为读者在数据科学的成长道路上提供有益的帮助!

于俊伟
2017年10月

图书目录

译者序
前言
作者简介
第1章 新手上路 1
1.1 数据科学与Python简介 1
1.2 Python的安装 2
1.2.1 Python 2还是Python 3 3
1.2.2 分步安装 3
1.2.3 工具包的安装 4
1.2.4 工具包升级 6
1.2.5 科学计算发行版 6
1.2.6 虚拟环境 8
1.2.7 核心工具包一瞥 11
1.3 Jupyter简介 17
1.3.1 快速安装与初次使用 19
1.3.2 Jupyter魔术命令 20
1.3.3 Jupyter Notebook怎样帮助数据科学家 22
1.3.4 Jupyter的替代版本 26
1.4 本书使用的数据集和代码 27
1.5 小结 33
第2章 数据改写 34
2.1 数据科学过程 34
2.2 使用pandas进行数据加载与预处理 36
2.2.1 数据快捷加载 36
2.2.2 处理问题数据 38
2.2.3 处理大数据集 41
2.2.4 访问其他的数据格式 43
2.2.5 数据预处理 44
2.2.6 数据选择 47
2.3 使用分类数据和文本数据 49
2.3.1 特殊的数据类型——文本 51
2.3.2 使用Beautiful Soup抓取网页 56
2.4 使用NumPy进行数据处理 57
2.4.1 NmuPy中的N维数组 57
2.4.2 NmuPy ndarray对象基础 58
2.5 创建NumPy数组 59
2.5.1 从列表到一维数组 60
2.5.2 控制内存大小 60
2.5.3 异构列表 61
2.5.4 从列表到多维数组 62
2.5.5 改变数组大小 63
2.5.6 利用NumPy函数生成数组 64
2.5.7 直接从文件中获得数组 65
2.5.8 从pandas提取数据 65
2.6 NumPy快速操作和计算 66
2.6.1 矩阵运算 68
2.6.2 NumPy数组切片和索引 69
2.6.3 NumPy数组堆叠 71
2.7 小结 72
第3章 数据科学流程 73
3.1 EDA简介 73
3.2 创建新特征 77
3.3 维数约简 78
3.3.1 协方差矩阵 79
3.3.2 主成分分析 80
3.3.3 一种用于大数据的PCA变型——RandomizedPCA 82
3.3.4 潜在因素分析 83
3.3.5 线性判别分析 84
3.3.6 潜在语义分析 85
3.3.7 独立成分分析 85
3.3.8 核主成分分析 85
3.3.9 t-分布邻域嵌入算法 87
3.3.10 受限玻尔兹曼机 87
3.4 异常检测和处理 89
3.4.1 单变量异常检测 89
3.4.2 EllipticEnvelope 90
3.4.3 OneClassSVM 94
3.5 验证指标 96
3.5.1 多标号分类 97
3.5.2 二值分类 99
3.5.3 回归 100
3.6 测试和验证 100
3.7 交叉验证 103
3.7.1 使用交叉验证迭代器 105
3.7.2 采样和自举方法 107
3.8 超参数优化 108
3.8.1 建立自定义评分函数 110
3.8.2 减少网格搜索时间 112
3.9 特征选择 113
3.9.1 基于方差的特征选择 113
3.9.2 单变量选择 114
3.9.3 递归消除 115
3.9.4 稳定性选择与基于L1的选择 116
3.10 将所有操作包装成工作流程 118
3.10.1 特征组合和转换链接 118
3.10.2 构建自定义转换函数 120
3.11 小结 121
第4章 机器学习 122
4.1 准备工具和数据集 122
4.2 线性和logistic回归 124
4.3 朴素贝叶斯 126
4.4 K近邻 127
4.5 非线性算法 129
4.5.1 基于SVM的分类算法 129
4.5.2 基于SVM的回归算法 131
4.5.3 调整SVM(优化) 132
4.6 组合策略 133
4.6.1 基于随机样本的粘合策略 134
4.6.2 基于弱分类器的bagging策略 134
4.6.3 随机子空间和随机分片 135
4.6.4 随机森林和Extra-Trees 135
4.6.5 从组合估计概率 137
4.6.6 模型序列——AdaBoost 138
4.6.7 梯度树提升 139
4.6.8 XGBoost 140
4.7 处理大数据 142
4.7.1 作为范例创建一些大数据集 142
4.7.2 对容量的可扩展性 143
4.7.3 保持速度 144
4.7.4 处理多样性 145
4.7.5 随机梯度下降概述 147
4.8 深度学习 148
4.9 自然语言处理一瞥 153
4.9.1 词语分词 153
4.9.2 词干提取 154
4.9.3 词性标注 154
4.9.4 命名实体识别 155
4.9.5 停止词 156
4.9.6 一个完整的数据科学例子——文本分类 156
4.10 无监督学习概览 158
4.11 小结 165
第5章 社交网络分析 166
5.1 图论简介 166
5.2 图的算法 171
5.3 图的加载、输出和采样 177
5.4 小结 179
第6章 可视化、发现和结果 180
6.1 matplotlib基础介绍 180
6.1.1 曲线绘图 181
6.1.2 绘制分块图 182
6.1.3 数据中的关系散点图 183
6.1.4 直方图 184
6.1.5 柱状图 185
6.1.6 图像可视化 186
6.1.7 pandas的几个图形示例 188
6.1.8 散点图 190
6.1.9 平行坐标 192
6.2 封装matplotlib命令 193
6.2.1 Seaborn简介 194
6.2.2 增强EDA性能 197
6.3 交互式可视化工具Bokeh 201
6.4 高级数据学习表示 203
6.4.1 学习曲线 204
6.4.2 确认曲线 205
6.4.3 随机森林的特征重要性 206
6.4.4 GBT部分依赖关系图形 207
6.4.5 创建MA-AAS预测服务器 208
6.5 小结 212
附录A 增强Python基础 213

教学资源推荐
作者: (美)Mary Campione,Kathy Walrath,Alison Huml
作者: (美)Dennis Kafura
作者: 杨佩理 周洪斌
作者: (美)Y. Daniel Liang 著
参考读物推荐
作者: 罗飞 伍星 编著
作者: 鱼浆 包子 编著
作者: 王国辉 陈英 等编著