本书是“达人迷”经典系列中关于机器学习的一本。本书内容分为6 个部分, 共计 23 章, 由浅入深地讲解机器学习的基础知识, 本书使用的语言--Python和R, 必备数学知识, 处理数据的常用工具, 机器学习的应用以及常见的学习包、模型等6个方面, 以帮助读者了解并掌握机器学习的相关知识、并能将其应用于自己的工作中。
第 1 部分 关于机器如何学习的介绍 1
第 1 章 有关 AI 的真实故事 3
1.1 超越炒作 4
1.2 梦到电子羊 5
1.2.1 了解 AI 和机器学习的历史 5
1.2.2 机器学习能为 AI 做什么 6
1.2.3 机器学习的目标 7
1.2.4 硬件决定了机器学习的极限 7
1.3 克服 AI 幻想 8
1.3.1 AI 和机器学习的时髦用途 9
1.3.2 AI 和机器学习的真正用途 9
1.3.3 讲究实用性,讲究普通性 11
1.4 AI 和机器学习之间的关系 11
1.5 AI 和机器学习的规范 12
1.6 定义艺术与工程之间的界限 13
第 2 章 大数据时代的学习 14
2.1 定义大数据 15
2.2 考虑大数据源 16
2.2.1 构建一个新的数据源 16
2.2.2 使用现有的数据源 18
2.2.3 寻找用于测试的数据源 18
2.3 确立统计学在机器学习中的角色 19
2.4 理解算法的角色 20
2.4.1 定义算法要做什么 20
2.4.2 考虑五大主流技术 20
2.5 定义训练的含义 22
第 3 章 对未来的设想 24
3.1 为将来创造有用的技术 25
3.1.1 考虑机器人领域中机器学习的角色 25
3.1.2 在医疗领域使用机器学习 26
3.1.3 为各种需求创建智能的系统 26
3.1.4 在工业界使用机器学习 27
3.1.5 理解更新的处理器和其他硬件的角色 28
3.2 通过机器学习发现新的工作机会 28
3.2.1 为机器工作 28
3.2.2 和机器一起工作 29
3.2.3 修复机器 30
3.2.4 创建新的机器学习任务 30
3.2.5 设计新的机器学习环境 30
3.3 避免未来技术中潜在的陷阱 31
第 2 部分 准备你的学习工具 33
第 4 章 安装 R 35
4.1 为机器学习选择 R 的版本 36
4.2 在 Windows 系统上安装 R 37
4.3 在 Linux 系统上安装 R 43
4.4 在 Mac OS X 系统上安装 R 45
4.5 下载数据集和示例代码 46
4.5.1 了解本书使用的数据集 47
4.5.2 定义代码库 48
第 5 章 使用 RStudio 在 R 中编码 50
5.1 理解基本的数据类型 51
5.2 使用向量 52
5.3 使用列表组织数据 53
5.4 使用矩阵 54
5.4.1 创建基本矩阵 54
5.4.2 修改向量的排列 55
5.4.3 访问单个元素 56
5.4.4 对行和列进行命名 56
5.5 使用数组处理多维 57
5.5.1 创建一个基本的数组 58
5.5.2 命名行和列 59
5.6 创建一个数据框 60
5.6.1 理解因子 60
5.6.2 创建一个基本的数据框 62
5.6.3 和数据框的交互 63
5.6.4 扩展一个数据框 64
5.7 执行基本的统计任务 66
5.7.1 进行决策 66
5.7.2 使用循环 68
5.7.3 不使用循环语句来执行循环的任务 69
5.7.4 使用函数 70
5.7.5 查找平均值和中位数 70
5.7.6 通过图表来表示你的数据 71
第 6 章 安装 Python 73
6.1 为机器学习选择 Python 的版本 74
6.1.1 获取 Continuum Analytics Anaconda 75
6.1.2 获取 Enthought Canopy Express 76
6.1.3 获取 pythonxy 76
6.1.4 获取 WinPython 77
6.2 在 Linux 系统上安装 Python 77
6.3 在 Mac OS X 上安装 Python 78
6.4 在 Windows 系统上安装Python 79
6.5 下载数据集和示例代码 83
6.5.1 使用 Jupyter Notebook 83
6.5.2 定义代码库 85
6.5.3 了解本书所使用的数据集 90
第 7 章 使用 Anaconda 进行 Python编程 92
7.1 使用数字和逻辑 93
7.1.1 执行变量赋值 95
7.1.2 做算术 95
7.1.3 使用布尔表达式来比较数据 97
7.2 创建并使用字符串 99
7.3 和日期打交道 100
7.4 创建并使用函数 101
7.4.1 创建可重用的函数 101
7.4.2 调用函数 102
7.4.3 使用全局变量和局部变量 104
7.5 使用条件和循环语句 105
7.5.1 使用 if 语句进行决策 105
7.5.2 使用嵌套的决策,在多个选项中进行选择 106
7.5.3 使用 for 执行重复的任务 107
7.5.4 使用 while 语句 108
7.6 使用集合、列表和元组来存储数据 109
7.6.1 创建集合 109
7.6.2 在集合上进行运算 109
7.6.3 创建列表 110
7.6.4 创建并使用元组 111
7.7 定义有用的迭代器 113
7.8 使用字典来索引数据 114
7.9 将代码存储在模块中 114
第 8 章 探索其他的机器学习工具 116
8.1 SAS、Stata 和 SPSS 117
8.2 用 Weka 做学术 119
8.3 使用 LIBSVM 轻松访问复杂的算法 120
8.4 使用 Vowpal Wabbit,运行起来像闪电那么快 120
8.5 使用 KNIME 和 RapidMiner进行可视化 121
8.6 使用 Spark 处理海量数据 122
第 3 部分 从数学的基础知识开始 123
第 9 章 揭秘机器学习背后的数学 125
9.1 处理数据 126
9.1.1 创建矩阵 127
9.1.2 理解基本的运算 129
9.1.3 进行矩阵的乘法 130
9.1.4 了解高级的矩阵运算 132
9.1.5 有效地使用向量 132
9.2 探索概率的世界 135
9.2.1 概率的运算 136
9.2.2 贝叶斯理论的条件概率 137
9.3 介绍统计的使用 139
第 10 章 降低合适的曲线 142
10.1 将学习解释为优化 143
10.1.1 监督式学习 143
10.1.2 无监督式学习 143
10.1.3 增强学习 144
10.1.4 学习的过程 144
10.2 探索成本函数 147
10.3 降低误差曲线 148
10.4 小批量和在线的更新 150
第 11 章 验证机器学习 154
11.1 检查样本之外的误差 155
11.2 理解偏差的局限 157
11.3 记住模型的复杂性 159
11.4 让解决方案保持均衡性 160
11.5 训练、验证和测试 163
11.6 借助于交叉验证 163
11.7 寻求验证的替代方案 165
11.8 优化交叉验证的选择 166
11.9 避免样本偏差和泄露陷阱 168
第 12 章 从简单的学习器开始 171
12.1 发现令人惊叹的感知器 172
12.1.1 还谈不上奇迹 172
12.1.2 触碰不可分的极限 174
12.2 生成贪婪的分类树 175
12.2.1 通过划分数据来预测结果 176
12.2.2 修剪过于茂盛的树 179
12.3 概率 180
12.3.1 理解朴素贝叶斯 180
12.3.2 使用朴素贝叶斯来预估响应 183
第 4 部分 从聪明且大量的数据中学习 187
第 13 章 预处理数据 189
13.1 收集并清洗数据 190
13.2 修复缺失的数据 191
13.2.1 识别缺失的数据 191
13.2.2 选择正确的替代策略 192
13.3 变换数据的分布 195
13.4 创建你自己的特征 197
13.4.1 理解为什么要创建特征 197
13.4.2 自动地创建特征 197
13.5 压缩数据 199
13.6 划分出异常数据 201
第 14 章 利用相似度 205
14.1 测量向量之间的相似度 206
14.1.1 理解相似度 206
14.1.2 计算用于学习的距离 207
14.2 使用距离来确定聚类 208
14.2.1 检查假设和期望 209
14.2.2 检视算法的细节 210
14.3 调优 K 均值算法 212
14.3.1 试验 K 均值的可靠性 213
14.3.2 试验质心如何收敛 215
14.4 使用 K 最近邻的搜索进行分类 218
14.5 利用正确的 k 参数 218
14.5.1 理解参数 k 219
14.5.2 试验一个灵活的算法 220
第 15 章 使用线性模型的简单方式 223
15.1 开始合并变量 224
15.2 混合不同类型的变量 229
15.3 切换到概率 232
15.3.1 指定二元的响应 232
15.3.2 处理多个类 234
15.4 猜测正确的特征 235
15.4.1 定义不能协同工作的特征的结果 235
15.4.2 使用特征选择来解决过拟合问题 236
15.5 每次学习一个样例 238
15.5.1 使用梯度下降 238
15.5.2 理解随机梯度下降的不同之处 239
第 16 章 用神经网络解决复杂性问题 243
16.1 学习并模仿大自然 244
16.1.1 使用前馈 245
16.1.2 深入兔子洞 247
16.1.3 使用反向传播 249
16.2 和过拟合做斗争 251
16.2.1 理解问题 252
16.2.2 打开黑匣子 252
16.3 介绍深度学习 255
第 17 章 更进一步,使用支持向量机 258
17.1 重温分隔问题:一种新的方法 259
17.2 算法的解释 260
17.2.1 深入支持向量机的数学基础 262
17.2.2 避免不可分隔的陷阱 263
17.3 使用非线性 264
17.3.1 使用例子展示核函数的技巧 265
17.3.2 发现不同的核函数 266
17.4 阐述超参数 268
17.5 使用支持向量机进行分类和预估 269
第 18 章 借助于学习器的组合 274
18.1 利用决策树 275
18.1.1 种植一片森林 276
18.1.2 理解重要性度量 279
18.2 使用几乎随机的猜测 281
18.3 增强聪明的预测器 285
18.4 平均不同的预测器 287
第 5 部分 将学习应用到实际问题 289
第 19 章 图像的分类 291
19.1 处理一组图像 292
19.2 提取视觉特征 296
19.3 使用 Eigenfaces 识别人脸 297
第 20 章 为观点和情感打分 301
20.1 介绍自然语言处理 301
20.2 理解机器是如何阅读的 302
20.2.1 处理并增强文本 304
20.2.2 从 Web 上抓取文本数据集 308
20.2.3 处理原始文本中的问题 311
20.3 使用打分和分类 312
20.3.1 执行分类任务 312
20.3.2 分析来自电子商务平台的评论 315
第 21 章 推荐商品和电影 319
21.1 实现变革 320
21.2 下载评分数据 321
21.2.1 了解 MovieLens数据集 321
21.2.2 浏览匿名的 Web 数据 323
21.2.3 面对评分数据的局限 323
21.3 利用奇异值分解 325
21.3.1 考虑 SVD 的起源 325
21.3.2 理解 SVD 的内在关联 326
21.3.3 SVD 的实践 327
第 6 部分 十条区 333
第 22 章 10 个需要掌握的机器学习包 335
22.1 Cloudera Oryx 336
22.2 CUDA-Convnet 336
22.3 ConvNetJS 336
22.4 e1071 337
22.5 gbm 337
22.6 Gensim 338
22.7 glmnet 338
22.8 randomForest 338
22.9 SciPy 339
22.10 XGBoost 339
第 23 章 提升机器学习模型的 10 种方式 340
23.1 研究学习的曲线 341
23.2 正确地使用交叉验证 341
23.3 选择正确的错误或分数度量标准 342
23.4 搜寻最佳的超参数 343
23.5 测试多个模型 343
23.6 平均多个模型 344
23.7 堆叠多个模型 344
23.8 运用特征工程 345
23.9 选择特征和样本 345
23.10 寻求更多的数据 346