图书目录

第1章  机器学习与深度学习概述 1

1.1  人工智能与机器学习的历史 2

1.2  机器学习项目的基础 3

1.3  机器学习算法与传统计算机程序 4

1.4  深度学习的工作原理 4

1.5  机器学习与深度学习的应用 5

1.5.1  日常生活中的应用 5

1.5.2  机器学习在制造业中的应用 5

1.5.3  机器人技术的应用 6

1.5.4  银行与金融领域的应用 6

1.5.5  深度学习的应用 7

1.6  本书的组织结构 7

1.7  预备知识 —— 数学基础 9

1.8  术语 9

1.9  机器学习 —— 扩展视野 10

1.9.1  人工智能发展现状 10

1.9.2  人工智能未来的影响力 11

1.9.3  与人工智能相关的伦理、社会和

法律问题 12

1.10  Python及其作为机器学习语言的

潜力 13

1.11  关于TensorFlow 13

1.12  本章小结 13

第2章  Python编程与统计学基础 15

2.1  认识Python 15

2.1.1  为什么使用Python 16

2.1.2  Python的版本 16

2.1.3  Python IDE 17

2.1.4  安装Python 18

2.2  Python编程入门 20

2.2.1  使用Spyder IDE 20

2.2.2  第一个代码示例 21

2.2.3  错误和错误信息 23

2.2.4  命名约定 24

2.2.5  使用print输出消息 25

2.3  Python中的数据类型 25

2.3.1  数值 25

2.3.2  字符串 26

2.3.3  列表 27

2.3.4  字典 28

2.4  Python中的包 30

2.4.1  NumPy 32

2.4.2  Pandas 33

2.4.3  Matplotlib 34

2.4.4  ScikitLearn 35

2.4.5  nltk 35

2.4.6  TensorFlow 35

2.5  Python中的条件语句和循环

语句 35

2.6  数据处理与使用Pandas深入

分析数据 37

2.6.1  数据导入和数据集的基本信息 38

2.6.2  子集和数据筛选器 41

2.6.3  Pandas中实用的函数 45

2.7  基本的描述性统计 47

2.7.1  平均值 48

2.7.2  中位数 49

2.7.3  方差和标准差 50

2.8  数据探索 52

2.8.1  探索数值型连续变量 53

2.8.2  探索离散变量和分类变量 61

2.8.3  探索其他类型的变量 63

2.9  本章小结 65

2.10  本章习题 65

第3章  回归与逻辑回归 67

3.1  什么是回归 67

3.2  构建回归模型 70

3.2.1  获取回归系数 70

3.2.2  回归线示例 74

3.3  R-squared 77

3.4  多元回归 80

3.5  回归中的多重共线性 83

3.5.1  什么是多重共线性 85

3.5.2  多重共线性的检测 87

3.5.3  计算VIF 88

3.6  回归中各变量的影响力 93

3.6.1  P-value 93

3.6.2  P -value的理论 96

3.7  构建多元回归模型的步骤 97

3.8  逻辑回归模型 97

3.9  构建逻辑回归模型 102

3.10  逻辑回归线的准确率 104

3.11  多元逻辑回归线 107

3.12  逻辑回归中的多重共线性 111

3.13  变量的个体影响力 113

3.14  构建逻辑回归模型的步骤 116

3.15  比较线性回归模型与逻辑

回归模型 116

3.16  本章小结 117

3.17  本章习题 118

第4章  决策树 119

4.1  什么是决策树 119

4.2  划分准则:熵和信息增益 123

4.2.1  熵:不纯度的度量 124

4.2.2  信息增益 125

4.2.3  基尼系数:与熵类似的方法 127

4.3  决策树算法 128

4.4  实例研究:基于客服中心的

数据对客户分类(细分) 132

4.4.1  研究目标和数据探索 132

4.4.2  使用Python构建模型 135

4.4.3  绘制决策树 136

4.4.4  理解树的输出 137

4.4.5  验证树的准确率 142

4.5  过拟合的问题 143

4.5.1  巨大的决策树 143

4.5.2  训练数据和测试数据 145

4.5.3  过拟合 146

4.6  决策树的剪枝 149

4.7  欠拟合的挑战 152

4.8  使用二分搜索法设置剪枝参数 152

4.9  其他剪枝参数 154

4.9.1  叶子节点的最大数量 154

4.9.2  min_samples_in_leaf_node参数 155

4.10  构建决策树模型的步骤 156

4.11  本章小结 156

4.12  本章习题 157

第5章  模型选择和交叉验证 159

5.1  构建模型的步骤 159

5.2  模型验证指标:回归 161

5.3  实例:华盛顿金县的房屋销售 162

5.3.1  研究目标和数据 162

5.3.2  构建和验证模型 165

5.4  模型验证指标:分类 167

5.4.1  混淆矩阵和准确率 167

5.4.2  不均衡分类的度量 169

5.5  权衡偏差与方差 189

5.5.1  过拟合的问题:方差 189

5.5.2  欠拟合问题:偏差 190

5.5.3  权衡偏差与方差 190

5.5.4  案例研究:皮马印第安人糖尿病

预测 192

5.6  交叉验证 195

5.6.1  交叉验证:一个示例 195

5.6.2  K-折交叉验证 197

5.6.3  训练集-验证集-留出交叉验证

方法 199

5.7  特征工程的技巧和诀窍 201

5.7.1  什么是特征工程 202

5.7.2  创建哑变量或独热编码 205

5.7.3  处理经度和纬度 214

5.7.4  处理日期类型的变量 219

5.7.5  数据转换 225

5.8  处理类的不均衡 229

5.9  本章小结 234

5.10  本章习题 234

第6章  聚类分析 235

6.1   无监督学习 235

6.1.1  聚类分析 236

6.1.2  案例研究:批发客户数据的

客户细分 237

6.2  距离的度量 241

6.2.1  欧几里得距离 242

6.2.2  距离矩阵 243

6.3  K-means聚类算法 244

6.3.1  聚类算法的步骤 245

6.3.2  K-means算法:图解 247

6.3.3  K-means聚类算法:输出 248

6.4  构建K-means聚类模型 248

6.5   聚类簇数量的选取 254

6.6  本章小结 257

6.7  本章习题 257

第7章  随机森林和Boosting 259

7.1  集成模型 259

7.1.1  群体智慧 259

7.1.2  构建集成模型的方法 261

7.2  Bagging 261

7.2.1  自助采样法 262

7.2.2  Bagging算法 262

7.3  随机森林 263

7.3.1  随机森林算法 264

7.3.2  随机森林中的超参数 265

7.4  案例研究:交通事故预测 265

7.4.1  研究背景和目标 266

7.4.2  数据探索 266

7.4.3  构建模型和验证模型 268

7.5  Boosting算法 271

7.6  AdaBoosting算法 271

7.7  Gradient Boosting算法 273

7.7.1  Gradient Boosting算法 273

7.7.2  Gradient Boosting算法在

决策树上的应用 273

7.7.3  Boosting算法中的超参数 274

7.7.4  Gradient Boosting算法的图解 275

7.8  案例研究:基于人口普查数据的

收入预测 278

7.8.1  研究背景和目标 279

7.8.2  数据探索 280

7.8.3  数据清洗和特征工程 283

7.8.4  构建模型与验证模型 286

7.9  本章小结 289

7.10  本章习题 289

第8章  人工神经网络 291

8.1  逻辑回归的网络图 291

8.2  决策边界的概念 293

8.3  多决策边界问题 299

8.4  多决策边界问题的解决方案 302

8.5  直观理解神经网络 309

8.6  神经网络算法 312

8.6.1  神经网络算法:非技术方式 313

8.6.2  神经网络算法:数学公式 315

8.6.3  神经网络算法:示例 316

8.7   梯度下降的概念 319

8.7.1  梯度下降在回归模型中的应用 320

8.7.2  学习率 321

8.7.3  梯度下降在回归模型中的编码 321

8.7.4  一题多解 323

8.8  案例研究:手写数字识别 324

8.8.1  研究背景和目标 324

8.8.2  数据 326

8.8.3  构建模型 329

8.8.4  模型预测与验证模型 334

8.9  深度神经网络 336

8.10  本章小结 337

8.11  本章习题 337

第9章  TensorFlow和Keras 339

9.1  深度神经网络 339

9.2  深度学习框架 340

9.2.1  什么是TensorFlow 341

9.2.2  计算图 341

9.2.3  Python Notebook 343

9.2.4  安装TensorFlow 348

9.3  TensorFlow中的关键术语 349

9.4  使用TensorFlow构建模型 352

9.4.1  使用TensorFlow构建回归

模型 352

9.4.2  使用TensorFlow构建逻辑回归

模型 355

9.5  Keras 357

9.5.1  什么是 Keras 357

9.5.2  使用Keras 358

9.5.3  在Keras中应用MNIST数据集的

示例 358

9.6  本章小结 361

第10章  深度学习中的超参数 363

10.1  正则化 363

10.1.1  回归模型中的正则化 364

10.1.2  L1正则化与L2正则化 368

10.1.3  在神经网络中应用正则化 368

10.1.4  L1正则化和L2正则化的

编码 375

10.1.5  在L1正则化和L2正则化中

应用数据标准化 377

10.2  随机丢弃正则化 377

10.3  早停法 381

10.4  损失函数 384

10.5  激活函数 386

10.5.1  Sigmoid函数 386

10.5.2  Tanh函数 387

10.5.3  ReLU函数 390

10.5.4  Softmax函数 393

10.5.5  激活函数的编码 393

10.6  学习率 395

10.6.1  学习率的应用示例 397

10.6.2  设置学习率的代码 401

10.6.3  动量 405

10.7  优化器 407

10.7.1  SGD—Stochastic Gradient 

Descent 407

10.7.2  小批量梯度下降法(Mini-Batch 

Gradient Descent) 408

10.8  本章小结 410

第11章  卷积神经网络 411

11.1  用于图像的人工神经网络 412

11.1.1  空间依赖性 412

11.1.2  ANNs中自由参数的数量 414

11.2  卷积核 414

11.2.1  卷积核的工作原理 415

11.2.2  利用卷积核执行特征检测 417

11.2.3  卷积核中的权重 422

11.3  卷积层 422

11.3.1  在Keras中使用卷积层 423

11.3.2  彩色图像的卷积核 425

11.3.3  零填充 429

11.3.4  跨步卷积(stride) 435

11.4  池化层 437

11.4.1  池化的工作原理 437

11.4.2  为什么进行池化 437

11.5   CNN模型的架构 440

11.5.1  CNN模型中的权重 441

11.5.2  CNN模型的编码 443

11.6  案例研究:从图像中识别

手势 447

11.6.1  项目背景和研究目标 447

11.6.2  数据 448

11.6.3  构建模型和验证模型 450

11.7  规划理想的CNN模型 455

11.7.1  卷积层和池化层的数量 455

11.7.2  卷积层中卷积核的数量 456

11.7.3  批量归一化(Batch 

Normalization) 464

11.7.4  选择优化器 471

11.8  构建CNN模型的步骤 475

11.9  本章小结 475

11.10  本章习题 476

第12章  RNN与LSTM 477

12.1  横截面数据和序列数据 477

12.1.1  横截面数据 477

12.1.2  序列数据 477

12.2  在序列数据上构建模型 478

12.2.1  在序列数据上使用ANN

模型 478

12.2.2  在序列数据上使用CNN

模型 479

12.2.3  处理序列数据的ANN

(Sequential ANN ) 479

12.3  案例研究:单词预测 481

12.3.1  研究目标和数据 481

12.3.2  数据预处理 484

12.3.3  构建模型 487

12.3.4  预测 490

12.4  RNN模型 491

12.4.1  时间反向传播 492

12.4.2  计算参数的数量:一个

示例 494

12.4.3  构建RNN模型的示例代码 496

12.4.4  使用RNN模型预测单词 498

12.5  使用RNN模型处理长序列 501

12.5.1  案例研究: 预测组成下一个

单词的字符 501

12.5.2  梯度消失问题 511

12.6   长短期记忆模型 512

12.6.1  LSTM的控制门 513

12.6.2  直观理解LSTM 518

12.6.3  应用LSTM的案例研究 519

12.7  序列到序列模型 523

12.8  案例研究:语言翻译 529

12.8.1  研究目标和数据 529

12.8.2  数据预处理 530

12.8.3  编码和解码 532

12.8.4  构建模型 533

12.8.5  用模型做预测 534

12.9  本章小结 538

12.10  本章习题 538

第13章  参考文献(在线资源) 539