本书将帮助读者掌握开发有效学习系统所需的流程、模式和策略,通过简单的故事、图片和Python示例来向读者传达机器学习的基本思想。即使读者是一名初学者,只要具备一些Python编程基础,不管大学数学水平如何,都能轻松阅读本书并有所收获。
译者序
推荐序
前言
作者简介
第一部分 机器学习入门
第1章 机器学习概论 2
1.1 欢迎来到机器学习的世界 2
1.2 范围、术语、预测和数据 3
1.2.1 特征 4
1.2.2 目标值和预测值 5
1.3 让机器开始机器学习 6
1.4 学习系统举例 8
1.4.1 预测类别:分类器举例 8
1.4.2 预测值:回归器举例 9
1.5 评估机器学习系统 10
1.5.1 准确率 10
1.5.2 资源消耗 11
1.6 创建机器学习系统的过程 12
1.7 机器学习的假设和现实 13
1.8 本章参考阅读资料 15
1.8.1 本书内容 15
1.8.2 章节注释 16
第2章 相关技术背景 18
2.1 编程环境配置 18
2.2 数学语言的必要性 18
2.3 用于解决机器学习问题的软件 19
2.4 概率 20
2.4.1 基本事件 21
2.4.2 独立性 22
2.4.3 条件概率 23
2.4.4 概率分布 24
2.5 线性组合、加权和以及点积 27
2.5.1 加权平均 29
2.5.2 平方和 31
2.5.3 误差平方和 32
2.6 几何视图:空间中的点 33
2.6.1 直线 33
2.6.2 直线拓展 37
2.7 表示法和加1技巧 41
2.8 渐入佳境:突破线性和非线性 42
2.9 NumPy与“数学无所不在” 45
2.10 浮点数问题 49
2.11 本章参考阅读资料 50
2.11.1 本章小结 50
2.11.2 章节注释 51
第3章 预测类别:分类入门 52
3.1 分类任务 52
3.2 一个简单的分类数据集 53
3.3 训练和测试:请勿应试教育 55
3.4 评估:考试评分 58
3.5 简单分类器#1:最近邻分类器、远距离关系和假设 59
3.5.1 定义相似性 60
3.5.2 k?-最近邻中的k 61
3.5.3 答案组合 61
3.5.4 k?-最近邻、参数和非参数方法 61
3.5.5 建立一个k?-最近邻分类模型 62
3.6 简单分类器#2:朴素贝叶斯分类器、
概率和违背承诺 64
3.7 分类器的简单评估 66
3.7.1 机器学习的性能 66
3.7.2 分类器的资源消耗 67
3.7.3 独立资源评估 73
3.8 本章参考阅读资料 77
3.8.1 局限性和尚未解决的问题 77
3.8.2 本章小结 77
3.8.3 章节注释 77
3.8.4 练习题 79
第4章 预测数值:回归入门 80
4.1 一个简单的回归数据集 80
4.2 最近邻回归和汇总统计 82
4.2.1 中心度量方法:中位数和均值 83
4.2.2 构建一个k?-最近邻回归模型 85
4.3 线性回归和误差 86
4.3.1 地面总是不平坦的:为什么需要斜坡 86
4.3.2 倾斜直线 89
4.3.3 执行线性回归 91
4.4 优化:选择最佳答案 92
4.4.1 随机猜测 92
4.4.2 随机调整 93
4.4.3 智能调整 94
4.4.4 计算的捷径 94
4.4.5 线性回归的应用 95
4.5 回归器的简单评估和比较 95
4.5.1 均方根误差 95
4.5.2 机器学习的性能 96
4.5.3 回归过程中的资源消耗 96
4.6 本章参考阅读资料 98
4.6.1 局限性和尚未解决的问题 98
4.6.2 本章小结 99
4.6.3 章节注释 99
4.6.4 练习题 99
第二部分 通用评估技术
第5章 机器学习算法的评估和比较分析 102
5.1 评估和大道至简的原则 102
5.2 机器学习阶段的术语 103
5.2.1 有关机器的重新讨论 104
5.2.2 更规范的阐述 106
5.3 过拟合和欠拟合 109
5.3.1 合成数据和线性回归 109
5.3.2 手动操控模型的复杂度 111
5.3.3 金凤花姑娘(“恰到好处”原则):可视化过拟合、欠拟合和“最佳拟合” 112
5.3.4 简单性 115
5.3.5 关于过拟合必须牢记的注意事项 116
5.4 从误差到成本 116
5.4.1 损失 116
5.4.2 成本 117
5.4.3 评分 118
5.5 (重新)抽样:以少胜多 119
5.5.1 交叉验证 119
5.5.2 分层抽样 122
5.5.3 重复的训练-测试集拆分 124
5.5.4 一种更好的方法和混排 127
5.5.5 留一交叉验证 131
5.6 分解:将误差分解为偏差和方差 132
5.6.1 数据的方差 133
5.6.2 模型的方差 133
5.6.3 模型的偏差 134
5.6.4 结合所有的因素 134
5.6.5 偏差-方差权衡示例 135
5.7 图形可视化评估和比较 139
5.7.1 学习曲线:到底需要多少数据 139
5.7.2 复杂度曲线 141
5.8 使用交叉验证比较机器学习模型 143
5.9 本章参考阅读资料 144
5.9.1 本章小结 144
5.9.2 章节注释 144
5.9.3 练习题 146
第6章 评估分类器 147
6.1 基线分类器 147
6.2 准确率以外:分类器的其他度量指标 149
6.2.1 从混淆矩阵中消除混淆 151
6.2.2 错误的方式 151
6.2.3 基于混淆矩阵的度量指标 152
6.2.4 混淆矩阵编码 154
6.2.5 处理多元类别:多元类别平均 156
6.2.6 F1分数 158
6.3 ROC曲线 159
6.3.1 ROC模式 161
6.3.2 二元分类ROC 162
6.3.3 AUC:(ROC)曲线下的面积 165
6.3.4 多元分类机器学习模型、“一对其他”和ROC 166
6.4 多元分类的另一种方法:“一对一” 168
6.4.1 “一对一”方法 168
6.4.2 多元分类AUC第二部分:寻找单一值 170
6.5 精确率-召回率曲线 173
6.5.1 关于精确率-召回率权衡的说明 173
6.5.2 构建精确率-召回率曲线 174
6.6 累积响应和提升曲线 174
6.7 更复杂的分类器评估:第二阶段 177
6.7.1 二元分类 177
6.7.2 一个新颖的多元分类问题 182
6.8 本章参考阅读资料 187
6.8.1 本章小结 187
6.8.2 章节注释 187
6.8.3 练习题 189
第7章 评估回归器 190
7.1 基线回归器 191
7.2 回归器的其他度量指标 192
7.2.1 创建自定义的评估指标 192
7.2.2 其他内置的回归度量指标 193
7.2.3 R2 194
7.3 误差图和残差图 199
7.3.1 误差图 199
7.3.2 残差图 202
7.4 标准化初探 205
7.5 使用更复杂的方法评估回归系数:第二阶段 209
7.5.1 多个度量指标的交叉验证结果 210
7.5.2 交叉验证结果汇总 213
7.5.3 残差 214
7.6 本章参考阅读资料 216
7.6.1 本章小结 216
7.6.2 章节注释 216
7.6.3 练习题 218
第三部分 更多方法和其他技术
第8章 更多分类方法 220
8.1 重温分类知识 220
8.2 决策树 222
8.2.1 树构建算法 224
8.2.2 让我们开始吧:决策树时间 227
8.2.3 决策树中的偏差和方差 230
8.3 支持向量分类器 230
8.3.1 执行支持向量分类器 233
8.3.2 SVC中的偏差和方差 236
8.4 逻辑回归 238
8.4.1 投注几率 239
8.4.2 概率、几率和对数几率 241
8.4.3 实现操作:逻辑回归版本 245
8.4.4 逻辑回归:空间奇异性 247
8.5 判别分析 248
8.5.1 协方差 249
8.5.2 方法 259
8.5.3 执行判别分析 260
8.6 假设、偏差和分类器 262
8.7 分类器的比较:第三阶段 264
8.8 本章参考阅读资料 267
8.8.1 本章小结 267
8.8.2 章节注释 267
8.8.3 练习题 270
第9章 更多回归方法 271
9.1 惩罚框中的线性回归:正则化 272
9.1.1 正则化回归概述 272
9.1.2 执行正则化回归 276
9.2 支持向量回归 277
9.2.1 铰链损失 277
9.2.2 从线性回归到正则化回归再到支持向量回归 280
9.2.3 实践应用:支持向量回归风格 282
9.3 分段常数回归 282
9.3.1 实施分段常数回归器 284
9.3.2 模型实现的一般说明 285
9.4 回归树 287
9.5 回归器比较:第三阶段 288
9.6 本章参考阅读资料 291
9.6.1 本章小结 291
9.6.2 章节注释 291
9.6.3 练习题 292
第10章 手动特征工程:操作数据的乐趣和意义 293
10.1 特征工程的术语和动机 293
10.1.1 为什么选择特征工程 294
10.1.2 何时开始特征工程 294
10.1.3 特征工程是如何发生的 296
10.2 特征选择和数据简化:清除垃圾 296
10.3 特征缩放 297
10.4 离散化 300
10.5 分类编码 303
10.5.1 数据的编码技术 303
10.5.2 编码的另一种方式以及无截距的奇怪情况 306
10.6 关系和相互作用 312
10.6.1 手动特征构造 312
10.6.2 相互作用 314
10.6.3 使用转换器添加特征 319
10.7 对输入空间和目标的相关操作 320
10.7.1 对输入空间的相关操作 321
10.7.2 对目标的相关操作 323
10.8 本章参考阅读资料 325
10.8.1 本章小结 325
10.8.2 章节注释 326
10.8.3 练习题 326
第11章 调整超参数和管道技术 328
11.1 模型、参数、超参数 329
11.2 调整超参数 330
11.2.1 关于计算机科学和机器学习术语的说明 331
11.2.2 关于完整搜索的示例 331
11.2.3 使用随机性在大海捞针 337
11.3 递归的神奇世界:嵌套交叉验证 337
11.3.1 重温交叉验证 338
11.3.2 作为模型的网格搜索 339
11.3.3 交叉验证中嵌套的交叉验证 340
11.3.4 关于嵌套交叉验证的注释 341
11.4 管道技术 344
11.4.1 一个简单的管道 344
11.4.2 更复杂的管道 346
11.5 管道和调参相结合 347
11.6 本章参考阅读资料 348
11.6.1 本章小结 348
11.6.2 章节注释 348
11.6.3 练习题 349
第四部分 高级主题
第12章 组合机器学习模型 352
12.1 集成 352
12.2 投票集成 354
12.3 装袋法和随机森林 355
12.3.1 自举 355
12.3.2 从自举到装袋法 358
12.3.3 随机森林 360
12.4 提升方法 362
12.4.1 提升方法的核心理念 362
12.4.2 提升方法实现细节 363
12.5 各种树集成方法的比较 365
12.6 本章参考阅读资料 368
12.6.1 本章小结 368
12.6.2 章节注释 368
12.6.3 练习题 370
第13章 提供特征工程的模型 371
13.1 特征选择 373
13.1.1 基于度量特征的“单步筛选”方法 374
13.1.2 基于模型的特征选择 384
13.1.3 将特征选择与机器学习管道相集成 387
13.2 基于核的特征构造 389
13.2.1 核激励因子 389
13.2.2 手动核方法 394
13.2.3 核方法和核选项 398
13.2.4 核化支持向量分类器:支持向量机 401
13.2.5 关于SVM的建议和示例 403
13.3 主成分分析:一种无监督技术 404
13.3.1 预热:中心化数据 405
13.3.2 寻找不同的最佳线路 406
13.3.3 第一次执行PCA 407
13.3.4 PCA的内部原理 410
13.3.5 结局:对一般PCA的评论 415
13.3.6 核心PCA和流形方法 415
13.4 本章参考阅读资料 419
13.4.1 本章小结 419
13.4.2 章节注释 419
13.4.3 练习题 424
第14章 领域特征工程:领域特定的机器学习 425
14.1 处理文本 426
14.1.1 对文本进行编码 427
14.1.2 文本学习的示例 432
14.2 聚类 434
14.3 处理图像 436
14.3.1 视觉词袋 436
14.3.2 图像数据 437
14.3.3 端到端系统 438
14.3.4 全局视觉词袋转换器的完整代码 444
14.4 本章参考阅读资料 447
14.4.1 本章小结 447
14.4.2 章节注释 447
14.4.3 练习题 448
第15章 连接、扩展和未来的研究方向 450
15.1 优化 450
15.2 基于原始数据的线性回归 453
15.2.1 线性回归的方法和分析 453
15.2.2 线性回归的可视化视图 456
15.3 基于原始数据构建逻辑回归 456
15.3.1 采用0-1编码的逻辑回归 458
15.3.2 加1减1编码的逻辑回归 459
15.3.3 逻辑回归的可视化视图 461
15.4 基于原始数据的SVM 461
15.5 神经网络 462
15.5.1 线性回归的神经网络视图 463
15.5.2 逻辑回归的神经网络视图 465
15.5.3 超越基本神经网络 466
15.6 概率图模型 467
15.6.1 抽样 468
15.6.2 线性回归的概率图模型视图 469
15.6.3 逻辑回归的概率图模型视图 472
15.7 本章参考阅读资料 474
15.7.1 本章小结 474
15.7.2 章节注释 474
15.7.3 练习题 475
附录 mlwpy.py程序清单 476