《数据科学手册》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)菲尔德·卡迪(Field Cady)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:9787111619116
  • 页数:313 页
图书介绍:本书对数据科学进行了整体性介绍,涵盖了掌握该学科所需的分析、编程和业务技能等方方面面。找到一个优秀的数据科学家就像是寻找一只独角兽:因为其所需要的技术及技能组合很难在一个人身上兼备。另外,良好的数据科学素养不仅仅是对所训练技能的综合应用,还需要能够灵活考虑所有这些领域,并理解它们之间的联系。本书提供了数据科学的速成课程,将所有必要的技能结合到一个统一的学科体系中。与许多数据分析的书籍不同,本书涵盖了关键的计算机科学和软件工程相关内容,因为它们在数据科学家的日常工作中发挥了极其重要的作用。本书还介绍了经典的机器学习算法,从这些算法的数学基础到实际应用均有描述。本书对可视化工具进行了综述,并强调其在数据科学中的核心位置。引入古典统计学的目的是帮助读者用批判性思维对数据进行解释,并指出常见的陷阱。对分析结果的清晰交流(这也许是数据科学技术中最为薄弱的一个环节)有专门的章节进行讲解,本书对所有涉及的主题均是在解决实际问题的背景下加以解释。

第1章 引言:成为独角兽 1

1.1 数据科学家不仅仅是高薪统计人员 2

1.2 本书的内容是怎样组织的 2

1.3 如何使用本书 3

1.4 无论如何,为什么一切都在PythonTM中 3

1.5 示例代码及数据集 3

1.6 最后的话 4

第Ⅰ部分 必须掌握的基础素材 6

第2章 数据科学路线图 6

2.1 解决问题 7

2.2 理解数据:基本问题 8

2.3 理解数据:数据整理 9

2.4 理解数据:探索性分析 9

2.5 提取特征 10

2.6 模型 10

2.7 呈现结果 11

2.8 部署代码 11

2.9 迭代 12

2.10 术语 12

第3章 编程语言 13

3.1 为什么使用编程语言,有无其他选项 13

3.2 数据科学编程语言综述 14

3.2.1 Python语言 14

3.2.2 R语言 14

3.2.3 MATLAB?和Octave 14

3.2.4 SAS? 15

3.2.5 Scala? 15

3.3 Python语言速成班 15

3.3.1 版本注解 15

3.3.2 “hello world”脚本 16

3.3.3 更为复杂的脚本 17

3.3.4 数据类型 19

3.4 字符串 19

3.4.1 注释与文档注释 21

3.4.2 复杂数据类型 21

3.4.3 列表 22

3.4.4 字符串与列表 22

3.4.5 元组 23

3.4.6 字典 24

3.4.7 集合 24

3.5 定义函数 24

3.5.1 循环与控制结构 25

3.5.2 一些关键函数 26

3.5.3 异常处理 27

3.5.4 导入库 27

3.5.5 类及对象 27

3.5.6 可哈希与不可哈希类型 28

3.6 Python语言技术库 29

3.6.1 数据帧 29

3.6.2 序列 30

3.6.3 连接与分组 32

3.7 其他Python语言资源 33

3.8 延伸阅读 33

3.9 术语 34

第4章 数据预处理:字符串操作、正则表达式和数据清理 36

4.1 世界上最糟糕的数据集 36

4.2 如何识别问题 37

4.3 数据内容问题 37

4.3.1 重复条目 37

4.3.2 单实体的多个条目 37

4.3.3 丢失缺失值 38

4.3.4 NULL 38

4.3.5 巨大异常值 38

4.3.6 过期数据 39

4.3.7 人造数据 39

4.3.8 非正规空格 39

4.4 格式化问题 39

4.4.1 不同行列之间的不规则格式化 39

4.4.2 额外的空白 39

4.4.3 不规则大小写 40

4.4.4 不一致分隔符 40

4.4.5 不规则NULL格式 40

4.4.6 非法字符 40

4.4.7 奇怪或不兼容的时间类型 40

4.4.8 操作系统不兼容 41

4.4.9 错误的软件版本 41

4.5 格式化脚本实例 42

4.6 正则表达式 43

4.6.1 正则表达式语法 43

4.7 数据科学战壕中的生活 46

4.8 术语 47

第5章 可视化与简单度量 48

5.1 关于Python语言可视化工具的说明 48

5.2 示例代码 49

5.3 饼图 49

5.4 柱状图 51

5.5 直方图 53

5.6 均值、标准差、中位数和分位数 55

5.7 箱式图 56

5.8 散点图 57

5.9 对数轴线散点图 59

5.10 散点阵列图 61

5.11 热力图 62

5.12 相关性 63

5.13 Anscombe四重奏与数字极限 64

5.14 时间序列 65

5.15 延伸阅读 68

5.16 术语 69

第6章 机器学习概要 70

6.1 历史背景 71

6.2 监督与无监督学习 71

6.3 训练数据、测试数据和过拟合 72

6.4 延伸阅读 72

6.5 术语 73

第7章 插曲:特征提取思路 74

7.1 标准特征 74

7.2 有关分组的特征 75

7.3 预览更复杂的特征 75

7.4 定义待预测功能 75

第8章 机器学习分类 77

8.1 什么是分类器,用它可以做什么 77

8.2 一些实用的关注点 78

8.3 二分类与多分类 78

8.4 实例脚本 79

8.5 特定分类器 80

8.5.1 决策树 80

8.5.2 随机森林 82

8.5.3 集成分类器 83

8.5.4 支持向量机 83

8.5.5 逻辑回归 85

8.5.6 回归 87

8.5.7 朴素贝叶斯分类器 88

8.5.8 神经网络 89

8.6 评价分类器 90

8.6.1 混淆矩阵 91

8.6.2 ROC曲线 91

8.6.3 ROC曲线之下的面积 93

8.7 选择分类阈值 93

8.7.1 其他性能测量 94

8.7.2 升力曲线 94

8.8 延伸阅读 94

8.9 术语 95

第9章 技术交流与文档化 96

9.1 指导原则 96

9.1.1 了解观众 96

9.1.2 说明其重要性 97

9.1.3 使其具体化 97

9.1.4 一张图片胜过千言万语 98

9.1.5 不要对自己的技术知识感到骄傲 98

9.1.6 使其看起来美观 98

9.2 幻灯片 99

9.2.1 C.R.A.P设计原则 99

9.2.2 一些提示和经验法则 101

9.3 书面报告 102

9.4 演示:有用的技巧 103

9.5 代码文档 104

9.6 延伸阅读 105

9.7 术语 105

第Ⅱ部分 仍需要知道的事情 108

第10章 无监督学习:聚类与降维 108

10.1 维数灾难 108

10.2 实例:“特征脸”降维 110

10.3 主成分分析与因子分析 112

10.4 Skree图与维度的理解 113

10.5 因子分析 114

10.6 PCA的局限性 114

10.7 聚类 115

10.7.1 聚类簇的实际评估 115

10.7.2 k均值聚类 116

10.7.3 高斯混合模型 117

10.7.4 合成聚类 118

10.7.5 聚类质量评价 118

10.7.6 轮廓分数 118

10.7.7 兰德指数与调整兰德指数 120

10.7.8 互信息 120

10.8 延伸阅读 121

10.9 术语 121

第11章 回归 122

11.1 实例:预测糖尿病进展 122

11.2 最小二乘法 125

11.3 非线性曲线拟合 126

11.4 拟合度:R2和相关度 127

11.5 残差相关性 128

11.6 线性回归 128

11.7 LASSO回归与特征选择 130

11.8 延伸阅读 131

11.9 术语 131

第12章 数据编码与文件格式 132

12.1 典型的文件格式类别 132

12.1.1 文本文件 132

12.1.2 密集数组 133

12.1.3 程序相关的数据格式 133

12.1.4 数据压缩和数据存档 133

12.2 CSV文件 133

12.3 JSON文件 134

12.4 XML文件 136

12.5 HTML文件 138

12.6 Tar文件 139

12.7 GZip文件 140

12.8 Zip文件 140

12.9 图像文件:栅格化、矢量化及压缩 141

12.10 归根到底都是字节 142

12.11 整型数 142

12.12 浮点数 143

12.13 文本数据 144

12.14 延伸阅读 146

12.15 术语 146

第13章 大数据 147

13.1 什么是大数据 147

13.2 Hadoop:文件系统与处理器 148

13.3 使用HDFS 149

13.4 PySpark脚本实例 150

13.5 Spark概述 151

13.6 Spark操作 152

13.7 运行PySpark的两种方式 154

13.8 Spark配置 154

13.9 底层的细节 155

13.10 Spark提示与技巧 156

13.11 MapReduce范例 157

13.12 性能考量 158

13.13 延伸阅读 159

13.14 术语 160

第14章 数据库 161

14.1 关系数据库及MySQL? 162

14.1.1 基本查询和分组 162

14.1.2 连接 164

14.1.3 嵌套查询 165

14.1.4 运行MySQL并管理数据库 166

14.2 键-值存储 167

14.3 宽列存储 167

14.4 文档存储 168

14.4.1 MongoDB? 168

14.5 延伸阅读 170

14.6 术语 170

第15章 软件工程最佳实践 172

15.1 编码风格 172

15.2 数据科学家的版本控制和Git 174

15.3 代码测试 176

15.3.1 单元测试 176

15.3.2 集成测试 178

15.4 测试驱动的开发 178

15.5 敏捷方法 179

15.6 延伸阅读 179

15.7 术语 179

第16章 自然语言处理 181

16.1 是否真正需要NLP 181

16.2 两种流派的对垒:语言学与统计学 181

16.3 实例:股市文章的论点分析 182

16.4 软件和数据库 184

16.5 词语切分 184

16.6 核心概念:词袋 184

16.7 单词加权:TF-IDF 185

16.8 n-gram 186

16.9 停用词 186

16.10 词形还原与词干提取 187

16.11 同义词 187

16.12 词性标注 188

16.13 常见问题 188

16.13.1 搜索 188

16.13.2 情感分析 189

16.13.3 实体识别与主题建模 189

16.14 高级NLP:语法树、知识以及理解 190

16.15 延伸阅读 191

16.16 术语 191

第17章 时间序列分析 192

17.1 实例:预测维基百科页面的访问量 192

17.2 典型的工作流 196

17.3 时间序列与时间戳事件 196

17.4 插值的重采样 196

17.5 信号平滑 199

17.6 对数变换及其他变换 199

17.7 趋势和周期性 199

17.8 窗口化 200

17.9 简单特征的头脑风暴 201

17.10 更好的特征:向量形式的时间序列 201

17.11 傅里叶分析:有时候非常有效 202

17.12 上下文中的时间序列:全套特征 204

17.13 延伸阅读 205

17.14 术语 205

第18章 概率 206

18.1 抛硬币:伯努利随机变量 206

18.2 掷飞镖:均匀随机变量 207

18.3 均匀分布和伪随机数 208

18.4 非离散型、非连续型随机变量 209

18.5 记号、期望和标准偏差 210

18.6 独立概率、边际概率和条件概率 211

18.7 重尾的理解 212

18.8 二项分布 214

18.9 泊松分布 214

18.10 正态分布 215

18.11 多元高斯分布 216

18.12 指数分布 217

18.13 对数正态分布 218

18.14 熵 218

18.15 延伸阅读 220

18.16 术语 220

第19章 统计学 222

19.1 统计学透视 222

19.2 贝叶斯与频率论:使用上的权衡及不同学派 223

19.3 假设检验:关键思想和范例 223

19.4 多重假设检验 225

19.5 参数估计 226

19.6 假设检验:t检验 227

19.7 置信区间 229

19.8 贝叶斯统计学 230

19.9 朴素贝叶斯统计学 231

19.10 贝叶斯网络 232

19.11 先验概率选择:最大熵或领域知识 232

19.12 延伸阅读 233

19.13 术语 233

第20章 编程语言概念 235

20.1 编程范式 235

20.1.1 命令式 235

20.1.2 函数式 236

20.1.3 面向对象 239

20.2 编译与解释 242

20.3 类型系统 244

20.3.1 静态类型与动态类型 244

20.3.2 强类型与弱类型 244

20.4 延伸阅读 245

20.5 术语 245

第21章 性能和计算机内存 247

21.1 示例脚本 247

21.2 算法性能与Big-O符号 249

21.3 一些经典问题:排序列表与二分查找 250

21.4 摊销性能与平均性能 253

21.5 两个原则:减小开销和管理内存 255

21.6 性能技巧:在适用的情况下使用数字化库 256

21.7 性能技巧:删除不需要的大型结构 257

21.8 性能技巧:尽可能使用内置函数 257

21.9 性能技巧:避免不必要的函数调用 258

21.10 性能技巧:避免创建大型新对象 258

21.11 延伸阅读 259

21.12 术语 259

第Ⅲ部分 专业或高级主题 262

第22章 计算机内存和数据结构 262

22.1 虚拟内存、堆栈和堆结构 262

22.2 C程序实例 262

22.3 内存数据类型和数组 263

22.4 结构 264

22.5 指针、堆栈和堆 265

22.6 关键数据结构 269

22.6.1 字符串 269

22.6.2 可调数组 269

22.6.3 哈希表 271

22.6.4 链表 272

22.6.5 二叉搜索树 273

22.7 延伸阅读 274

22.8 术语 274

第23章 最大似然估计和最优化 276

23.1 最大似然估计 276

23.2 一个简单实例:直线拟合 277

23.3 另一个例子:逻辑回归 278

23.4 最优化 279

23.5 梯度下降和凸优化 280

23.6 凸优化 283

23.7 随机梯度下降 284

23.8 延伸阅读 284

23.9 术语 284

第24章 高级分类器 286

24.1 函数库注解 286

24.2 基础深度学习 287

24.3 卷积神经网络 289

24.4 不同类型的层以及张量到底是什么 290

24.5 实例:MNIST手写数据集 291

24.6 递归神经网络 293

24.7 贝叶斯网络 294

24.8 训练和预测 295

24.9 马尔可夫链蒙特卡洛理论 296

24.10 PyMC实例 297

24.11 延伸阅读 299

24.12 术语 299

第25章 随机建模 300

25.1 马尔可夫链 300

25.2 两类马尔可夫链、两类问题 302

25.3 马尔可夫链蒙特卡洛 303

25.4 隐马尔可夫模型和Viterbi算法 304

25.5 维特比算法 305

25.6 随机游走 307

25.7 布朗运动 308

25.8 ARIMA模型 308

25.9 连续时间马尔可夫过程 309

25.10 泊松过程 310

25.11 延伸阅读 310

25.12 术语 311

告别语:数据科学家的未来 312