本书是一本机器学习入门读物,注重理论与实践的结合。全书主要包括6个部分,每个部分均以典型的机器学习算法为例,从算法原理出发,由浅入深,详细分析算法的理论,并配合目前流行的Python语言,从零开始,实现每一个算法,以加强对机器学习算法理论的理解、增强实际的算法实践能力,终达到熟练掌握每一个算法的目的。与其他机器学习类书相比,本书同时包含算法理论的介绍和算法的实践,以理论支撑实践,同时,又将复杂、枯燥的理论用简单易懂的形式表达出来,促进对理论的理解。
探索数据的内在价值,洞悉人工智能背后的技术!
赵志勇,毕业于武汉大学计算机学院,CSDN博主,博客地址blog.csdn.net/google19890102,现就职于新浪微博,从事计算广告的算法工作。对机器学习、优化算法具有浓厚的兴趣。
0 绪论 1
0.1 机器学习基础 1
0.1.1 机器学习的概念 1
0.1.2 机器学习算法的分类 2
0.2 监督学习 3
0.2.1 监督学习 3
0.2.2 监督学习的流程 3
0.2.3 监督学习算法 4
0.3 无监督学习 4
0.3.1 无监督学习 4
0.3.2 无监督学习的流程 4
0.3.3 无监督学习算法 5
0.4 推荐系统和深度学习 6
0.4.1 推荐系统 6
0.4.2 深度学习 6
0.5 Python和机器学习算法实践 6
参考文献 7
及时部分 分类算法
1 Logistic Regression 10
1.1 Logistic Regression模型 10
1.1.1 线性可分VS线性不可分 10
1.1.2 Logistic Regression模型 11
1.1.3 损失函数 13
1.2 梯度下降法 14
1.2.1 梯度下降法的流程 14
1.2.2 凸优化与非凸优化 15
1.2.3 利用梯度下降法训练Logistic Regression模型 17
1.3 梯度下降法的若干问题 18
1.3.1 选择下降的方向 18
1.3.2 步长的选择 19
1.4 Logistic Regression算法实践 20
1.4.1 利用训练样本训练Logistic Regression模型 20
1.4.2 最终的训练效果 22
1.4.3 对新数据进行预测 23
参考文献 26
2 Softmax Regression 27
2.1 多分类问题 27
2.2 Softmax Regression算法模型 28
2.2.1 Softmax Regression模型 28
2.2.2 Softmax Regression算法的代价函数 28
2.3 Softmax Regression算法的求解 29
2.4 Softmax Regression与Logistic Regression的关系 31
2.4.1 Softmax Regression中的参数特点 31
2.4.2 由Softmax Regression到Logistic Regression 31
2.5 Softmax Regression算法实践 32
2.5.1 对Softmax Regression算法的模型进行训练 33
2.5.2 最终的模型 34
2.5.3 对新的数据的预测 35
参考文献 39
3 Factorization Machine 40
3.1 Logistic Regression算法的不足 40
3.2 因子分解机FM的模型 42
3.2.1 因子分解机FM模型 42
3.2.2 因子分解机FM可以处理的问题 43
3.2.3 二分类因子分解机FM算法的损失函数 43
3.3 FM算法中交叉项的处理 43
3.3.1 交叉项系数 43
3.3.2 模型的求解 44
3.4 FM算法的求解 45
3.4.1 随机梯度下降(Stochastic Gradient Descent) 45
3.4.2 基于随机梯度的方式求解 45
3.4.3 FM算法流程 46
3.5 因子分解机FM算法实践 49
3.5.1 训练FM模型 50
3.5.2 最终的训练效果 53
3.5.3 对新的数据进行预测 55
参考文献 57
4 支持向量机 58
4.1 二分类问题 58
4.1.1 二分类的分隔超平面 58
4.1.2 感知机算法 59
4.1.3 感知机算法存在的问题 61
4.2 函数间隔和几何间隔 61
4.2.1 函数间隔 62
4.2.2 几何间隔 62
4.3 支持向量机 63
4.3.1 间隔较大化 63
4.3.2 支持向量和间隔边界 64
4.3.3 线性支持向量机 65
4.4 支持向量机的训练 66
4.4.1 学习的对偶算法 66
4.4.2 由线性支持向量机到非线性支持向量机 68
4.4.3 序列最小化算法SMO 69
4.5 支持向量机SVM算法实践 74
4.5.1 训练SVM模型 74
4.5.2 利用训练样本训练SVM模型 81
4.5.3 利用训练好的SVM模型对新数据进行预测 85
参考文献 88
5 随机森林 89
5.1 决策树分类器 89
5.1.1 决策树的基本概念 89
5.1.2 选择划分的标准 91
5.1.3 停止划分的标准 94
5.2 CART分类树算法 95
5.2.1 CART分类树算法的基本原理 95
5.2.2 CART分类树的构建 95
5.2.3 利用构建好的分类树进行预测 98
5.3 集成学习(Ensemble Learning) 99
5.3.1 集成学习的思想 99
5.3.2 集成学习中的典型方法 99
5.4 随机森林(Random Forests) 101
5.4.1 随机森林算法模型 101
5.4.2 随机森林算法流程 102
5.5 随机森林RF算法实践 104
5.5.1 训练随机森林模型 105
5.5.2 最终的训练结果 109
5.5.3 对新数据的预测 110
参考文献 113
6 BP神经网络 114
6.1 神经元概述 114
6.1.1 神经元的基本结构 114
6.1.2 激活函数 115
6.2 神经网络模型 116
6.2.1 神经网络的结构 116
6.2.2 神经网络中的参数说明 117
6.2.3 神经网络的计算 117
6.3 神经网络中参数的求解 118
6.3.1 神经网络损失函数 118
6.3.2 损失函数的求解 119
6.3.3 BP神经网络的学习过程 120
6.4 BP神经网络中参数的设置 126
6.4.1 非线性变换 126
6.4.2 权重向量的初始化 126
6.4.3 学习率 127
6.4.4 隐含层节点的个数 127
6.5 BP神经网络算法实践 127
6.5.1 训练BP神经网络模型 128
6.5.2 最终的训练效果 132
6.5.3 对新数据的预测 133
参考文献 136
第二部分 回归算法
7 线性回归 138
7.1 基本线性回归 138
7.1.1 线性回归的模型 138
7.1.2 线性回归模型的损失函数 139
7.2 线性回归的最小二乘解法 140
7.2.1 线性回归的最小二乘解法 140
7.2.2 广义逆的概念 141
7.3 牛顿法 141
7.3.1 基本牛顿法的原理 141
7.3.2 基本牛顿法的流程 142
7.3.3 全局牛顿法 142
7.3.4 Armijo搜索 144
7.3.5 利用全局牛顿法求解线性回归模型 145
7.4 利用线性回归进行预测 146
7.4.1 训练线性回归模型 147
7.4.2 最终的训练结果 149
7.4.3 对新数据的预测 150
7.5 局部加权线性回归 152
7.5.1 局部加权线性回归模型 152
7.5.2 局部加权线性回归的最终结果 153
参考文献 154
8 岭回归和Lasso回归 155
8.1 线性回归存在的问题 155
8.2 岭回归模型 156
8.2.1 岭回归模型 156
8.2.2 岭回归模型的求解 156
8.3 Lasso回归模型 157
8.4 拟牛顿法 158
8.4.1 拟牛顿法 158
8.4.2 BFGS校正公式的推导 158
8.4.3 BFGS校正的算法流程 159
8.5 L-BFGS求解岭回归模型 162
8.5.1 BGFS算法存在的问题 162
8.5.2 L-BFGS算法思路 162
8.6 岭回归对数据的预测 165
8.6.1 训练岭回归模型 166
8.6.2 最终的训练结果 168
8.6.3 利用岭回归模型预测新的数据 168
参考文献 171
9 CART树回归 172
9.1 复杂的回归问题 172
9.1.1 线性回归模型 172
9.1.2 局部加权线性回归 173
9.1.3 CART算法 174
9.2 CART回归树生成 175
9.2.1 CART回归树的划分 175
9.2.2 CART回归树的构建 177
9.3 CART回归树剪枝 179
9.3.1 前剪枝 179
9.3.2 后剪枝 180
9.4 CART回归树对数据预测 180
9.4.1 利用训练数据训练CART回归树模型 180
9.4.2 最终的训练结果 182
9.4.3 利用训练好的CART回归树模型对新的数据预测 185
参考文献 187
第三部分 聚类算法
10 K-Means 190
10.1 相似性的度量 190
10.1.1 闵可夫斯基距离 191
10.1.2 曼哈顿距离 191
10.1.3 欧氏距离 191
10.2 K-Means算法原理 192
10.2.1 K-Means算法的基本原理 192
10.2.2 K-Means算法步骤 193
10.2.3 K-Means算法与矩阵分解 193
10.3 K-Means算法实践 195
10.3.1 导入数据 196
10.3.2 初始化聚类中心 197
10.3.3 聚类过程 198
10.3.4 最终的聚类结果 199
10.4 K-Means 算法 200
10.4.1 K-Means算法存在的问题 200
10.4.2 K-Means 算法的基本思路 202
10.4.3 K-Means 算法的过程和最终效果 204
参考文献 205
11 Mean Shift 206
11.1 Mean Shift向量 206
11.2 核函数 207
11.3 Mean Shift算法原理 209
11.3.1 引入核函数的Mean Shift向量 209
11.3.2 Mean Shift算法的基本原理 210
11.4 Mean Shift算法的解释 212
11.4.1 概率密度梯度 212
11.4.2 Mean Shift向量的修正 213
11.4.3 Mean Shift算法流程 213
11.5 Mean Shift算法实践 217
11.5.1 Mean Shift的主过程 218
11.5.2 Mean Shift的最终聚类结果 219
参考文献 221
12 DBSCAN 222
12.1 基于密度的聚类 222
12.1.1 基于距离的聚类算法存在的问题 222
12.1.2 基于密度的聚类算法 225
12.2 DBSCAN算法原理 225
12.2.1 DBSCAN算法的基本概念 225
12.2.2 DBSCAN算法原理 227
12.2.3 DBSCAN算法流程 228
12.3 DBSCAN算法实践 231
12.3.1 DBSCAN算法的主要过程 232
12.3.2 Mean Shift的最终聚类结果 234
参考文献 236
13 Label Propagation 237
13.1 社区划分 237
13.1.1 社区以及社区划分 237
13.1.2 社区划分的算法 238
13.1.3 社区划分的评价标准 239
13.2 Label Propagation算法原理 239
13.2.1 Label Propagation算法的基本原理 239
13.2.2 标签传播 240
13.2.3 迭代的终止条件 242
13.3 Label Propagation算法过程 244
13.4 Label Propagation算法实践 244
13.4.1 导入数据 245
13.4.2 社区的划分 246
13.4.3 最终的结果 247
参考文献 248
第四部分 推荐算法
14 协同过滤算法 250
14.1 推荐系统的概述 250
14.1.1 推荐系统 250
14.1.2 推荐问题的描述 251
14.1.3 推荐的常用方法 251
14.2 基于协同过滤的推荐 252
14.2.1 协同过滤算法概述 252
14.2.2 协同过滤算法的分类 252
14.3 相似度的度量方法 253
14.3.1 欧氏距离 254
14.3.2 皮尔逊相关系数(Pearson Correlation) 254
14.3.3 余弦相似度 254
14.4 基于协同过滤的推荐算法 256
14.4.1 基于用户的协同过滤算法 256
14.4.2 基于项的协同过滤算法 258
14.5 利用协同过滤算法进行推荐 260
14.5.1 导入用户-商品数据 260
14.5.2 利用基于用户的协同过滤算法进行推荐 261
在人工智能时代,机器学习已经成了互联网从业人员和在校学生的一门必修课。市场上不乏机器学习相关的书籍,但大都晦涩难懂而缺乏应用场景。本书是作者在新浪微博广告业务上一手的实践经验和心得体会,具有极佳的实用性,非常适合于对机器学习感兴趣但没有经验的开发人员,和渴望了解“理论知识如何在业务中应用”的在校学生,相信你们一定可以从中找到想要的答案。
——新浪微博高级技术经理 姜贵彬
本书没有使用高深复杂的数学逻辑来解释机器学习,而是从直观简洁的介绍入手,通俗易懂,再辅助于代码实现帮助读者理解算法细节,是机器学习入门一本不可多得的好书,推荐。
——百度博学技术专家 毛钦
本书从具体的代码开始去理解抽象的算法,给读者一种脚踏实地的感觉,推荐给所有工程出身有志于算法的工程师。
——阿里妈妈算法工程技术专家 易慧民
本书对常用的机器学习算法进行了深入和的介绍,书中大量的代码清单令人印象尤为深刻,确实是一本实用易懂、快速入门的好书。
——美团 大众点评博学技术专家 潘文彬
有点折痕,不影响阅读。书中有些数学公式没有推导,阅读起来有点不明白。
算是基础性质的阅读资料,入门不错
内容一般只适合初学者