第1章 机器学习简介 1
1.1 机器学习 1
1.1.1 定义 2
1.1.2 核心概念与术语 3
1.1.3 什么是学习 3
1.1.4 机器学习中的数据不一致性 7
1.1.5 机器学习实践范例 8
1.1.6 机器学习问题类型 9
1.2 性能度量 14
1.3 机器学习的相关领域 17
1.3.1 数据挖掘 18
1.3.2 人工智能 18
1.3.3 统计学习 18
1.3.4 数据科学 19
1.4 机器学习处理流程及解决方案架构 19
1.5 机器学习算法 20
1.5.1 基于决策树的算法 20
1.5.2 基于贝叶斯的算法 21
1.5.3 基于核方法的算法 21
1.5.4 聚类算法 21
1.5.5 人工神经网络 21
1.5.6 降维方法 22
1.5.7 集成方法 22
1.5.8 基于实例的算法 22
1.5.9 基于回归分析的算法 23
1.5.10 基于关联规则的算法 23
1.6 机器学习工具与框架 23
1.7 小结 24
第2章 机器学习和大规模数据集 25
2.1 大数据和大规模机器学习 25
2.1.1 功能与架构:方法论的失配 26
2.1.2 机器学习的可扩展性和性能 31
2.1.3 模型选择过程 33
2.1.4 大规模机器学习的潜在问题 33
2.2 算法和并发 33
2.3 垂直扩展的机器学习技术方案 35
2.3.1 MapReduce编程架构 35
2.3.2 利用消息传递接口进行高性能计算 36
2.3.3 LINQ框架 36
2.3.4 使用LINQ操作数据集 36
2.3.5 GPU 37
2.3.6 FPGA 37
2.3.7 多核或多处理器系统 38
2.4 小结 38
第3章 Hadoop架构和生态系统简介 40
3.1 Apache Hadoop简介 40
3.1.1 Hadoop的演化 41
3.1.2 Hadoop及其核心要素 41
3.2 基于Hadoop的大数据机器学习解决方案架构 42
3.2.1 数据源层 42
3.2.2 数据摄入层 43
3.2.3 Hadoop数据存储层 45
3.2.4 Hadoop基础设施层 46
3.2.5 Hadoop平台/处理层 47
3.2.6 分析层 48
3.2.7 数据消费层 48
3.2.8 MapReduce 57
3.3 Hadoop 2.x 62
3.3.1 Hadoop生态系统组件 63
3.3.2 Hadoop安装和配置 65
3.3.3 Hadoop发行版和供应商 70
3.4 小结 71
第4章 机器学习工具、库及框架 73
4.1 机器学习工具概览 74
4.2 Apache Mahout 75
4.2.1 Mahout如何工作 75
4.2.2 安装和设置Apache Mahout 76
4.2.3 Mahout软件包详解 80
4.2.4 Mahout中的vector实现 80
4.3 R 82
4.3.1 安装和设置R 82
4.3.2 R与Apache Hadoop集成 84
4.4 Julia 91
4.4.1 安装和设置Julia 91
4.4.2 在命令行中执行Julia程序 93
4.4.3 例解Julia 93
4.4.4 变量与赋值 93
4.4.5 使用Julia的好处 96
4.4.6 Julia与Hadoop集成 97
4.5 Python 98
4.5.1 Python中工具包的选择 98
4.5.2 例解Python 98
4.6 Apache Spark 100
4.6.1 Scala 101
4.6.2 RDD编程 102
4.7 Spring XD 103
4.8 小结 104
第5章 基于决策树的学习 105
5.1 决策树 105
5.1.1 术语 106
5.1.2 目标与用途 107
5.1.3 构造决策树 107
5.1.4 特殊的决策树 117
5.2 实现决策树 121
5.3 小结 121
第6章 基于实例和核方法的学习 122
6.1 基于实例的学习 123
6.1.1 最近邻 123
6.1.2 实现kNN 129
6.2 基于核方法的学习 129
6.2.1 核函数 129
6.2.2 支持向量机 130
6.2.3 实现SVM 134
6.3 小结 134
第7章 关联规则学习 136
7.1 关联规则学习 137
7.1.1 关联规则的定义 137
7.1.2 Apriori算法 140
7.1.3 FP- growth算法 144
7.1.4 Apriori与FP- growth 147
7.2 实现Apriori及FP- growth算法 147
7.3 小结 148
第8章 聚类学习 149
8.1 聚类学习 149
8.2 聚类的类型 151
8.2.1 层次聚类 151
8.2.2 划分式聚类 152
8.3 k-means聚类算法 153
8.3.1 k- means算法的收敛性 153
8.3.2 k- means算法的优点 155
8.3.3 k-means算法的缺点 155
8.3.4 距离度量 156
8.3.5 复杂度度量 156
8.4 实现k-means聚类 157
8.5 小结 157
第9章 贝叶斯学习 158
9.1 贝叶斯学习 159
9.1.1 统计学家的视角 159
9.1.2 贝叶斯定理 169
9.1.3 朴素贝叶斯分类器 170
9.2 实现朴素贝叶斯算法 173
9.3 小结 173
第10章 基于回归的学习 174
10.1 回归分析 175
10.1.1 重温统计学 175
10.1.2 混杂 185
10.1.3 效应修饰 185
10.2 回归方法 186
10.2.1 简单线性回归 188
10.2.2 多元线性回归 193
10.2.3 多项式回归 194
10.2.4 广义线性模型 195
10.2.5 逻辑回归(logit连接) 196
10.2.6 泊松回归 198
10.3 实现线性回归和逻辑回归 198
10.4 小结 198
第11章 深度学习 199
11.1 背景知识 200
11.1.1 人类大脑结构 200
11.1.2 神经网络 204
11.1.3 反向传播算法 214
11.1.4 Softmax回归算法 216
11.2 深度学习类型 216
11.2.1 卷积神经网络 217
11.2.2 循环神经网络 218
11.2.3 受限玻尔兹曼机 219
11.2.4 深度玻尔兹曼机 220
11.2.5 自动编码器 220
11.3 实现ANN和深度学习方法 221
11.4 小结 221
第12章 强化学习 222
12.1 强化学习 223
12.1.1 强化学习的背景知识 224
12.1.2 强化学习的主要特点 231
12.2 强化学习算法 231
12.2.1 动态规划 232
12.2.2 蒙特卡罗方法 233
12.2.3 时序差分学习 233
12.2.4 Q-learning(异策略TD) 234
12.2.5 actor-critic方法(同策略) 235
12.2.6 R-learning(异策略) 235
12.3 实现强化学习方法 235
12.4 小结 236
第13章 集成学习 237
13.1 集成学习方法 238
13.1.1 群体智慧 238
13.1.2 经典应用 241
13.1.3 集成方法 243
13.2 实现集成学习方法 252
13.3 小结 252
第14章 下一代机器学习数据架构 253
14.1 数据架构的演进 253
14.2 机器学习的现代数据架构 259
14.2.1 语义数据架构 259
14.2.2 多模型数据库架构/混合持久化 263
14.2.3 Lambda架构 266
14.3 小结 267