第 1 章 机器学习算法概述 ………………………………………………………………… 1
1.1 机器学习 …………………………………………………………………………… 1
1.2 机器学习分类 ……………………………………………………………………… 2
1.2.1 监督学习 …………………………………………………………………… 2
1.2.2 无监督学习 ………………………………………………………………… 2
1.2.3 强化学习 …………………………………………………………………… 3
1.3 机器学习中的基本概念 …………………………………………………………… 3
1.4 机器学习环境搭建 ………………………………………………………………… 4
1.4.1 Python 安装 ………………………………………………………………… 4
1.4.2 PyCharm 及相关包的下载安装 …………………………………………… 6
1.4.3 JupyterLab …………………………………………………………………… 9
1.5 本章小结 ……………………………………………………………………………12
思考与练习…………………………………………………………………………………12
第 2 章? NumPy 和 Matplotlib 入门 ……………………………………………………… 13
2.1 NumPy 数组基础 ……………………………………………………………………13
2.1.1 创建 NumPy 数组……………………………………………………………14
2.1.2 NumPy 数组的索引与切片 …………………………………………………16
2.1.3 NumPy 数组的变形 …………………………………………………………18
2.1.4 NumPy 合并与分割 …………………………………………………………20
2.1.5 NumPy 的通用函数 …………………………………………………………25
2.1.6 NumPy 数组的聚合运算 ……………………………………………………27
2.1.7 NumPy 数组的广播 …………………………………………………………28
2.1.8 NumPy 数组比较、掩码和布尔逻辑 ………………………………………30
2.1.9 NumPy 花哨的索引 …………………………………………………………30
2.1.10 NumPy 的矩阵运算 ………………………………………………………32
2.2 Matplotlib 数据可视化 ………………………………………………………………36
2.2.1 线形图 ………………………………………………………………………36
2.2.2 散点图 ………………………………………………………………………39
2.2.3 直方图和柱状图 ……………………………………………………………41
2.2.4 等高线图 ……………………………………………………………………43
2.2.5 多子图 ………………………………………………………………………46
2.2.6 三维图像 ……………………………………………………………………50
2.3 本章小结 ……………………………………………………………………………53
思考与练习…………………………………………………………………………………53
第 3 章? 线性回归算法 …………………………………………………………………… 54
3.1 简单线性回归 ………………………………………………………………………54
3.2 正规方程算法(最小二乘法)………………………………………………………55
3.3 多项式回归 …………………………………………………………………………61
3.4 线性回归的正则化算法 ……………………………………………………………64
3.5 Sklearn 的线性回归 …………………………………………………………………66
3.6 本章小结 ……………………………………………………………………………69
思考与练习…………………………………………………………………………………69
第 4 章? 机器学习中的搜索算法 ………………………………………………………… 70
4.1 梯度下降算法 ………………………………………………………………………70
4.1.1 梯度下降算法概述 …………………………………………………………70
4.1.2 模拟实现梯度下降算法 ……………………………………………………71
4.1.3 线性回归中的梯度下降算法 ………………………………………………73
4.2 随机梯度下降算法 …………………………………………………………………75
4.2.1 回归问题中的随机梯度下降算法 …………………………………………76
4.2.2 梯度下降算法与随机梯度下降算法的效果对比 …………………………78
4.3 小批量梯度下降算法 ………………………………………………………………81
4.4 牛顿迭代算法 ………………………………………………………………………85
4.4.1 模拟实现牛顿迭代算法 ……………………………………………………85
4.4.2 线性回归问题中的牛顿迭代算法 …………………………………………87
4.5 坐标下降算法 ………………………………………………………………………88
4.6 Sklearn 的随机梯度下降算法 ………………………………………………………90
4.7 本章小结 ……………………………………………………………………………96
思考与练习…………………………………………………………………………………96
第 5 章? Logistic 回归算法 ………………………………………………………………… 97
5.1 Logistic 回归的基本概念 ……………………………………………………………97
5.1.1 Sigmoid() 函数 ………………………………………………………………97
5.1.2 Logistic 模型 …………………………………………………………………98
5.2 Logistic 回归算法的应用 ……………………………………………………………99
5.3 评价分类结果 …………………………………………………………………… 103
5.3.1 准确率(Accuracy)……………………………………………………… 103
5.3.2 精确率 (Precision) 和召回率 (Recall) …………………………………… 104
5.3.3 ROC 曲线和 AUC 度量 ………………………………………………… 115
5.4 多元回归算法 SoftMax…………………………………………………………… 118
5.4.1 SoftMax 回归基本概念 ………………………………………………… 119
5.4.2 SoftMax 回归优化算法 ………………………………………………… 120
5.5 Sklearn 的 Logistic 回归算法 …………………………………………………… 126
5.6 本章小结 ………………………………………………………………………… 130
思考与练习……………………………………………………………………………… 130
第 6 章? 支持向量机算法 ………………………………………………………………… 132
6.1 支持向量机的基本概念 ………………………………………………………… 132
6.1.1 感知机 …………………………………………………………………… 132
6.1.2 支持向量机 ……………………………………………………………… 137
6.1.3 支持向量机的对偶 ……………………………………………………… 138
6.2 支持向量机优化算法 …………………………………………………………… 139
6.3 核方法 …………………………………………………………………………… 144
6.4 软间隔支持向量机 ……………………………………………………………… 153
6.4.1 软间隔支持向量机的概念 ……………………………………………… 153
6.4.2 Hinge 损失函数与软间隔支持向量机…………………………………… 156
6.5 Sklearn 的 SVM 库 ……………………………………………………………… 159
6.5.1 Sklearn SVM 算法库使用概述…………………………………………… 159
6.5.2 SVM 核函数概述 ………………………………………………………… 159
6.5.3 SVM 分类算法的使用 …………………………………………………… 160
6.5.4 SVM 算法的调参要点 …………………………………………………… 162
6.6 本章小结 ………………………………………………………………………… 174
思考与练习……………………………………………………………………………… 174
第 7 章? 朴素贝叶斯算法 ………………………………………………………………… 175
7.1 朴素贝叶斯 ……………………………………………………………………… 175
7.1.1 数学基础 ………………………………………………………………… 175
7.1.2 朴素贝叶斯的种类 ……………………………………………………… 176
7.2 朴素贝叶斯算法分类 …………………………………………………………… 177
7.2.1 基于极大似然估计的朴素贝叶斯算法 ………………………………… 178
7.2.2 基于贝叶斯估计的朴素贝叶斯算法 …………………………………… 180
7.3 Sklearn 的朴素贝叶斯算法 ……………………………………………………… 183
7.3.1 Sklearn 的高斯朴素贝叶斯实现 ………………………………………… 183
7.3.2 Sklearn 的多项式朴素贝叶斯实现 ……………………………………… 184
7.3.3 Sklearn 的伯努利朴素贝叶斯实现 ……………………………………… 186
7.4 本章小结 ………………………………………………………………………… 188
思考与练习……………………………………………………………………………… 188
第 8 章? 决策树算法 ……………………………………………………………………… 189
8.1 决策树的基本概念 ……………………………………………………………… 189
8.2 决策树优化算法 ………………………………………………………………… 194
8.2.1 决策树回归问题的 CART 算法 ………………………………………… 195
8.2.2 决策树分类问题的 CART 算法 ………………………………………… 196
8.3 CART 算法的实现 ……………………………………………………………… 198
8.3.1 决策树 CART 算法实现 ………………………………………………… 198
8.3.2 决策树回归算法实现 …………………………………………………… 201
8.3.3 决策树分类算法实现 …………………………………………………… 204
8.4 Sklearn 的决策树 ………………………………………………………………… 207
8.5 集成学习算法 …………………………………………………………………… 214
8.5.1 装袋评估算法 …………………………………………………………… 215
8.5.2 随机森林算法 …………………………………………………………… 218
8.5.3 AdaBoost 提升 …………………………………………………………… 221
8.5.4 梯度提升决策树 ………………………………………………………… 227
8.6 本章小结 ………………………………………………………………………… 232
思考与练习……………………………………………………………………………… 232
第 9 章? 聚类算法 ………………………………………………………………………… 233
9.1 K 均值算法 ……………………………………………………………………… 233
9.2 合并聚类算法 …………………………………………………………………… 238
9.3 DBSCAN 算法 …………………………………………………………………… 246
9.4 Sklearn 的聚类算法 ……………………………………………………………… 252
9.4.1 K 均值算法(Kmeans) ………………………………………………… 252
9.4.2 近邻传播算法(Affinity Propagation) ………………………………… 258
9.4.3 均值漂移算法(Mean-shift) …………………………………………… 261
9.4.4 合并聚类算法(Agglomerative Clustering) …………………………… 263
9.4.5 带噪声的基于密度的空间聚类算法(DBSCAN)……………………… 268
9.5 本章小结 ………………………………………………………………………… 272
思考与练习……………………………………………………………………………… 272
第 10 章? 降维算法 ………………………………………………………………………… 273
10.1 主成分分析法 …………………………………………………………………… 273
10.1.1 算法思想 ………………………………………………………………… 273
10.1.2 主成分分析法的实现 …………………………………………………… 276
10.2 主成分分析的核方法 …………………………………………………………… 278
10.3 Sklearn 的主成分分析法 ……………………………………………………… 281
10.3.1 Sklearn 的 PCA 算法 …………………………………………………… 281
10.3.2 Sklearn 的带核 PCA 算法 ……………………………………………… 284
10.4 本章小结 ………………………………………………………………………… 290
思考与练习……………………………………………………………………………… 290
展开