第1章 Python与机器学习入门 1
1.1 机器学习绪论 1
1.1.1 什么是机器学习 2
1.1.2 机器学习常用术语 3
1.1.3 机器学习的重要性 6
1.2 人生苦短,我用Python 7
1.2.1 为何选择Python 7
1.2.2 Python 在机器学习领域的优势 8
1.2.3 Anaconda的安装与使用 8
1.3 第一个机器学习样例 12
1.3.1 获取与处理数据 13
1.3.2 选择与训练模型 14
1.3.3 评估与可视化结果 15
1.4 本章小结 17
第2章 贝叶斯分类器 18
2.1 贝叶斯学派 18
2.1.1 贝叶斯学派与频率学派 19
2.1.2 贝叶斯决策论 19
2.2 参数估计 20
2.2.1 极大似然估计(ML估计) 21
2.2.2 极大后验概率估计(MAP估计) 22
2.3 朴素贝叶斯 23
2.3.1 算法陈述与基本架构的搭建 23
2.3.2 MultinomialNB的实现与评估 31
2.3.3 GaussianNB的实现与评估 40
2.3.4 MergedNB的实现与评估 43
2.3.5 算法的向量化 50
2.4 半朴素贝叶斯与贝叶斯网 53
2.4.1 半朴素贝叶斯 53
2.4.2 贝叶斯网 54
2.5 相关数学理论 55
2.5.1 贝叶斯公式与后验概率 55
2.5.2 离散型朴素贝叶斯算法 56
2.5.3 朴素贝叶斯和贝叶斯决策 58
2.6 本章小结 59
第3章 决策树 60
3.1 数据的信息 60
3.1.1 信息论简介 61
3.1.2 不确定性 61
3.1.3 信息的增益 65
3.1.4 决策树的生成 68
3.1.5 相关的实现 77
3.2 过拟合与剪枝 92
3.2.1 ID3、C4.5的剪枝算法 93
3.2.2 CART剪枝 100
3.3 评估与可视化 103
3.4 相关数学理论 111
3.5 本章小结 113
第4章 集成学习 114
4.1 “集成”的思想 114
4.1.1 众擎易举 115
4.1.2 Bagging与随机森林 115
4.1.3 PAC框架与Boosting 119
4.2 随机森林算法 120
4.3 AdaBoost算法 124
4.3.1 AdaBoost算法陈述 124
4.3.2 弱模型的选择 126
4.3.3 AdaBoost的实现 127
4.4 集成模型的性能分析 129
4.4.1 随机数据集上的表现 130
4.4.2 异或数据集上的表现 131
4.4.3 螺旋数据集上的表现 134
4.4.4 蘑菇数据集上的表现 136
4.5 AdaBoost算法的解释 138
4.6 相关数学理论 139
4.6.1 经验分布函数 139
4.6.2 AdaBoost与前向分步加法模型 140
4.7 本章小结 142
第5章 支持向量机 144
5.1 感知机模型 145
5.1.1 线性可分性与感知机策略 145
5.1.2 感知机算法 148
5.1.3 感知机算法的对偶形式 151
5.2 从感知机到支持向量机 153
5.2.1 间隔最大化与线性SVM 154
5.2.2 SVM算法的对偶形式 158
5.2.3 SVM的训练 161
5.3 从线性到非线性 163
5.3.1 核技巧简述 163
5.3.2 核技巧的应用 166
5.4 多分类与支持向量回归 180
5.4.1 一对多方法(One-vs-Rest) 180
5.4.2 一对一方法(One-vs-One) 181
5.4.3 有向无环图方法(Directed Acyclic Graph Method) 181
5.4.4 支持向量回归(Support Vector Regression) 182
5.5 相关数学理论 183
5.5.1 梯度下降法 183
5.5.2 拉格朗日对偶性 185
5.6 本章小结 187
第6章 神经网络 188
6.1 从感知机到多层感知机 189
6.2 前向传导算法 192
6.2.1 算法概述 193
6.2.2 激活函数(Activation Function) 195
6.2.3 损失函数(Cost Function) 199
6.3 反向传播算法 200
6.3.1 算法概述 200
6.3.2 损失函数的选择 202
6.3.3 相关实现 205
6.4 特殊的层结构 211
6.5 参数的更新 214
6.5.1 Vanilla Update 217
6.5.2 Momentum Update 217
6.5.3 Nesterov Momentum Update 219
6.5.4 RMSProp 220
6.5.5 Adam 221
6.5.6 Factory 222
6.6 朴素的网络结构 223
6.7 “大数据”下的网络结构 227
6.7.1 分批(Batch)的思想 228
6.7.2 交叉验证 230
6.7.3 进度条 231
6.7.4 计时器 233
6.8 相关数学理论 235
6.8.1 BP算法的推导 235
6.8.2 Softmax + log-likelihood组合 238
6.9 本章小结 240
第7章 卷积神经网络 241
7.1 从NN到CNN 242
7.1.1 “视野”的共享 242
7.1.2 前向传导算法 243
7.1.3 全连接层(Fully Connected Layer) 250
7.1.4 池化(Pooling) 251
7.2 利用TensorFlow重写NN 252
7.2.1 反向传播算法 252
7.2.2 重写Layer结构 253
7.2.3 实现SubLayer结构 255
7.2.4 重写CostLayer结构 261
7.2.5 重写网络结构 262
7.3 将NN扩展为CNN 263
7.3.1 实现卷积层 263
7.3.2 实现池化层 266
7.3.3 实现CNN中的特殊层结构 267
7.3.4 实现LayerFactory 268
7.3.5 扩展网络结构 270
7.4 CNN的性能 272
7.4.1 问题描述 272
7.4.2 搭建CNN模型 273
7.4.3 模型分析 280
7.4.4 应用CNN的方法 283
7.4.5 Inception 286
7.5 本章小结 289
附录A Python入门 290
附录B Numpy入门 303
附录C TensorFlow入门 310
· · · · · · (
收起)