第一篇 机器学习基础篇 1
第1章 线性模型 2
1.1 概述 2
1.2 算法笔记精华 2
1.2.1 普通线性回归 2
1.2.2 广义线性模型 5
1.2.3 逻辑回归 5
1.2.4 线性判别分析 7
1.3 Python实战 10
1.3.1 线性回归模型 11
1.3.2 线性回归模型的正则化 12
1.3.3 逻辑回归 22
1.3.4 线性判别分析 26
第2章 决策树 30
2.1 概述 30
2.2 算法笔记精华 30
2.2.1 决策树原理 30
2.2.2 构建决策树的3个步骤 31
2.2.3 CART算法 37
2.2.4 连续值和缺失值的处理 42
2.3 Python实战 43
2.3.1 回归决策树(DecisionTreeRegressor) 43
2.3.2 分类决策树(DecisionTreeClassifier) 49
2.3.3 决策图 54
第3章 贝叶斯分类器 55
3.1 概述 55
3.2 算法笔记精华 55
3.2.1 贝叶斯定理 55
3.2.2 朴素贝叶斯法 56
3.3 Python实战 59
3.3.1 高斯贝叶斯分类器(GaussianNB) 61
3.3.2 多项式贝叶斯分类器(MultinomialNB) 62
3.3.3 伯努利贝叶斯分类器(BernoulliNB) 65
3.3.4 递增式学习partial_fit方法 69
第4章 k近邻法 70
4.1 概述 70
4.2 算法笔记精华 70
4.2.1 kNN三要素 70
4.2.2 k近邻算法 72
4.2.3 kd树 73
4.3 Python实践 74
第5章 数据降维 83
5.1 概述 83
5.2 算法笔记精华 83
5.2.1 维度灾难与降维 83
5.2.2 主成分分析(PCA) 84
5.2.3 SVD降维 91
5.2.4 核化线性(KPCA)降维 91
5.2.5 流形学习降维 93
5.2.6 多维缩放(MDS)降维 93
5.2.7 等度量映射(Isomap)降维 96
5.2.8 局部线性嵌入(LLE) 97
5.3 Python实战 99
5.4 小结 118
第6章 聚类和EM算法 119
6.1 概述 119
6.2 算法笔记精华 120
6.2.1 聚类的有效性指标 120
6.2.2 距离度量 122
6.2.3 原型聚类 123
6.2.4 密度聚类 126
6.2.5 层次聚类 127
6.2.6 EM算法 128
6.2.7 实际中的聚类要求 136
6.3 Python实战 137
6.3.1 K均值聚类(KMeans) 138
6.3.2 密度聚类(DBSCAN) 143
6.3.3 层次聚类(AgglomerativeClustering) 146
6.3.4 混合高斯(GaussianMixture)模型 149
6.4 小结 153
第二篇 机器学习高级篇 155
第7章 支持向量机 156
7.1 概述 156
7.2 算法笔记精华 157
7.2.1 线性可分支持向量机 157
7.2.2 线性支持向量机 162
7.2.3 非线性支持向量机 166
7.2.4 支持向量回归 167
7.2.5 SVM的优缺点 170
7.3 Python实战 170
7.3.1 线性分类SVM 171
7.3.2 非线性分类SVM 175
7.3.3 线性回归SVR 182
7.3.4 非线性回归SVR 186
第8章 人工神经网络 192
8.1 概述 192
8.2 算法笔记精华 192
8.2.1 感知机模型 192
8.2.2 感知机学习算法 194
8.2.3 神经网络 197
8.3 Python实战 205
8.3.1 感知机学习算法的原始形式 205
8.3.2 感知机学习算法的对偶形式 209
8.3.3 学习率与收敛速度 212
8.3.4 感知机与线性不可分数据集 213
8.3.5 多层神经网络 215
8.3.6 多层神经网络与线性不可分数据集 216
8.3.7 多层神经网络的应用 219
第9章 半监督学习 225
9.1 概述 225
9.2 算法笔记精华 226
9.2.1 生成式半监督学习方法 226
9.2.2 图半监督学习 228
9.3 Python实战 234
9.4 小结 243
第10章 集成学习 244
10.1 概述 244
10.2 算法笔记精华 244
10.2.1 集成学习的原理及误差 244
10.2.2 Boosting算法 246
10.2.3 AdaBoost算法 246
10.2.4 AdaBoost与加法模型 252
10.2.5 提升树 253
10.2.6 Bagging算法 256
10.2.7 误差-分歧分解 257
10.2.8 多样性增强 259
10.3 Python实战 260
10.3.1 AdaBoost 261
10.3.2 Gradient Tree Boosting 272
10.3.3 Random Forest 288
10.4 小结 298
第三篇 机器学习工程篇 299
第11章 数据预处理 300
11.1 概述 300
11.2 算法笔记精华 300
11.2.1 去除唯一属性 300
11.2.2 处理缺失值的三种方法 301
11.2.3 常见的缺失值补全方法 302
11.2.4 特征编码 307
11.2.5 数据标准化、正则化 308
11.2.6 特征选择 310
11.2.7 稀疏表示和字典学习 313
11.3 Python实践 316
11.3.1 二元化 316
11.3.2 独热码 317
11.3.3 标准化 321
11.3.4 正则化 325
11.3.5 过滤式特征选取 326
11.3.6 包裹式特征选取 330
11.3.7 嵌入式特征选取 334
11.3.8 学习器流水线(Pipeline) 339
11.3.9 字典学习 340
第12章 模型评估、选择与验证 345
12.1 概述 345
12.2 算法笔记精华 346
12.2.1 损失函数和风险函数 346
12.2.2 模型评估方法 348
12.2.3 模型评估 349
12.2.4 性能度量 350
12.2.5 偏差方差分解 356
12.3 Python实践 357
12.3.1 损失函数 357
12.3.2 数据集切分 359
12.3.3 性能度量 370
12.3.4 参数优化 387
第四篇 Kaggle实战篇 401
第13章 Kaggle牛刀小试 402
13.1 Kaggle简介 402
13.2 清洗数据 403
13.2.1 加载数据 403
13.2.2 合并数据 406
13.2.3 拆分数据 407
13.2.4 去除唯一值 408
13.2.5 数据类型转换 410
13.2.6 Data_Cleaner类 412
13.3 数据预处理 415
13.3.1 独热码编码 415
13.3.2 归一化处理 419
13.3.3 Data_Preprocesser类 421
13.4 学习曲线和验证曲线 424
13.4.1 程序说明 424
13.4.2 运行结果 430
13.5 参数优化 433
13.6 小结 435
全书符号 436