第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