内容简介
0 绪论
0.1机器学习基础
0.1.1机器学习的概念
0.1.2机器学习算法的分类
0.2监督学习
0.2.1监督学习
0.2.2监督学习的流程
0.2.3监督学习算法
0.3无监督学习
0.3.1无监督学习
0.3.2无监督学习的流程
0.3.3无监督学习算法
0.4推荐系统和深度学习
0.4.1推荐系统
0.4.2深度学习
0.5 Python和机器学习算法实践
参考文献
第一部分 分类算法
1 Logistic Regression
1.1 Logistic Regression模型
1.1.1线性可分VS线性不可分
1.1.2 Logistic Regression模型
1.1.3损失函数
1.2梯度下降法
1.2.1梯度下降法的流程
1.2.2凸优化与非凸优化
1.2.3利用梯度下降法训练Logistic Regression模型
1.3梯度下降法的若干问题
1.3.1选择下降的方向
1.3.2步长的选择
1.4 Logistic Regression算法实践
1.4.1利用训练样本训练Logistic Regression模型
1.4.2最终的训练效果
1.4.3对新数据进行预测
参考文献
2 Softmax Regression
2.1多分类问题
2.2 Softmax Regression算法模型
2.2.1 Softmax Regression模型
2.2.2 Softmax Regression算法的代价函数
2.3 Softmax Regression算法的求解
2.4 Softmax Regression与Logistic Regression的关系
2.4.1 Softmax Regression中的参数特点
2.4.2由Softmax Regression到Logistic Regression
2.5 Softmax Regression算法实践
2.5.1对Softmax Regression算法的模型进行训练
2.5.2最终的模型
2.5.3对新的数据的预测
参考文献
3 Factorization Machine
3.1 Logistic Regression算法的不足
3.2因子分解机FM的模型
3.2.1因子分解机FM模型
3.2.2因子分解机FM可以处理的问题
3.2.3二分类因子分解机FM算法的损失函数
3.3 FM算法中交叉项的处理
3.3.1交叉项系数
3.3.2模型的求解
3.4 FM算法的求解
3.4.1随机梯度下降(Stochastic Gradient Descent)
3.4.2基于随机梯度的方式求解
3.4.3 FM算法流程
3.5因子分解机FM算法实践
3.5.1训练FM模型
3.5.2最终的训练效果
3.5.3对新的数据进行预测
参考文献
4 支持向量机
4.1二分类问题
4.1.1二分类的分隔超平面
4.1.2感知机算法
4.1.3感知机算法存在的问题
4.2函数间隔和几何间隔
4.2.1函数间隔
4.2.2几何间隔
4.3支持向量机
4.3.1间隔最大化
4.3.2支持向量和间隔边界
4.3.3线性支持向量机
4.4支持向量机的训练
4.4.1学习的对偶算法
4.4.2由线性支持向量机到非线性支持向量机
4.4.3序列最小最优化算法SMO
4.5支持向量机SVM算法实践
4.5.1训练SVM模型
4.5.2利用训练样本训练SVM模型
4.5.3利用训练好的SVM模型对新数据进行预测
参考文献
5 随机森林
5.1决策树分类器
5.1.1决策树的基本概念
5.1.2选择最佳划分的标准
5.1.3停止划分的标准
5.2 CART分类树算法
5.2.1 CART分类树算法的基本原理
5.2.2 CART分类树的构建
5.2.3利用构建好的分类树进行预测
5.3集成学习(Ensemble Learning)
5.3.1集成学习的思想
5.3.2集成学习中的典型方法
5.4随机森林(Random Forests)
5.4.1随机森林算法模型
5.4.2随机森林算法流程
5.5随机森林RF算法实践
5.5.1训练随机森林模型
5.5.2最终的训练结果
5.5.3对新数据的预测
参考文献
6 BP神经网络
6.1神经元概述
6.1.1神经元的基本结构
6.1.2激活函数
6.2神经网络模型
6.2.1神经网络的结构
6.2.2神经网络中的参数说明
6.2.3神经网络的计算
6.3神经网络中参数的求解
6.3.1神经网络损失函数
6.3.2损失函数的求解
6.3.3 BP神经网络的学习过程
6.4 BP神经网络中参数的设置
6.4.1非线性变换
6.4.2权重向量的初始化
6.4.3学习率
6.4.4隐含层节点的个数
6.5 BP神经网络算法实践
6.5.1训练BP神经网络模型
6.5.2最终的训练效果
6.5.3对新数据的预测
参考文献
第二部分 回归算法
7 线性回归
7.1基本线性回归
7.1.1线性回归的模型
7.1.2线性回归模型的损失函数
7.2线性回归的最小二乘解法
7.2.1线性回归的最小二乘解法
7.2.2广义逆的概念
7.3牛顿法
7.3.1基本牛顿法的原理
7.3.2基本牛顿法的流程
7.3.3全局牛顿法
7.3.4 Armijo搜索
7.3.5利用全局牛顿法求解线性回归模型
7.4利用线性回归进行预测
7.4.1训练线性回归模型
7.4.2最终的训练结果
7.4.3对新数据的预测
7.5局部加权线性回归
7.5.1局部加权线性回归模型
7.5.2局部加权线性回归的最终结果
参考文献
8 岭回归和Lasso回归
8.1线性回归存在的问题
8.2岭回归模型
8.2.1岭回归模型
8.2.2岭回归模型的求解
8.3 Lasso回归模型
8.4拟牛顿法
8.4.1拟牛顿法
8.4.2 BFGS校正公式的推导
8.4.3 BFGS校正的算法流程
8.5 L-BFGS求解岭回归模型
8.5.1 BGFS算法存在的问题
8.5.2 L-BFGS算法思路
8.6岭回归对数据的预测
8.6.1训练岭回归模型
8.6.2最终的训练结果
8.6.3利用岭回归模型预测新的数据
参考文献
9 CART树回归
9.1复杂的回归问题
9.1.1线性回归模型
9.1.2局部加权线性回归
9.1.3 CART算法
9.2 CART回归树生成
9.2.1 CART回归树的划分
9.2.2 CART回归树的构建
9.3 CART回归树剪枝
9.3.1前剪枝
9.3.2后剪枝
9.4 CART回归树对数据预测
9.4.1利用训练数据训练CART回归树模型
9.4.2最终的训练结果
9.4.3利用训练好的CART回归树模型对新的数据预测
参考文献
第三部分 聚类算法
10 K-Means
10.1相似性的度量
10.1.1闵可夫斯基距离
10.1.2曼哈顿距离
10.1.3欧氏距离
10.2 K-Means算法原理
10.2.1 K-Means算法的基本原理
10.2.2 K-Means算法步骤
10.2.3 K-Means算法与矩阵分解
10.3 K-Means算法实践
10.3.1导入数据
10.3.2初始化聚类中心
10.3.3聚类过程
10.3.4最终的聚类结果
10.4 K-Means++算法
10.4.1 K-Means算法存在的问题
10.4.2 K-Means++算法的基本思路
10.4.3 K-Means++算法的过程和最终效果
参考文献
11 Mean Shift
11.1 Mean Shift向量
11.2核函数
11.3 Mean Shift算法原理
11.3.1引入核函数的Mean Shift向量
11.3.2 Mean Shift算法的基本原理
11.4 Mean Shift算法的解释
11.4.1概率密度梯度
11.4.2 Mean Shift向量的修正
11.4.3 Mean Shift算法流程
11.5 Mean Shift算法实践
11.5.1 Mean Shift的主过程
11.5.2 Mean Shift的最终聚类结果
参考文献
12 DBSCAN
12.1基于密度的聚类
12.1.1基于距离的聚类算法存在的问题
12.1.2基于密度的聚类算法
12.2 DBSCAN算法原理
12.2.1 DBSCAN算法的基本概念
12.2.2 DBSCAN算法原理
12.2.3 DBSCAN算法流程
12.3 DBSCAN算法实践
12.3.1 DBSCAN算法的主要过程
12.3.2 Mean Shift的最终聚类结果
参考文献
13 Label Propagation
13.1社区划分
13.1.1社区以及社区划分
13.1.2社区划分的算法
13.1.3社区划分的评价标准
13.2 Label Propagation算法原理
13.2.1 Label Propagation算法的基本原理
13.2.2标签传播
13.2.3迭代的终止条件
13.3 Label Propagation算法过程
13.4 Label Propagation算法实践
13.4.1导入数据
13.4.2社区的划分
13.4.3最终的结果
参考文献
第四部分 推荐算法
14 协同过滤算法
14.1推荐系统的概述
14.1.1推荐系统
14.1.2推荐问题的描述
14.1.3推荐的常用方法
14.2基于协同过滤的推荐
14.2.1协同过滤算法概述
14.2.2协同过滤算法的分类
14.3相似度的度量方法
14.3.1欧氏距离
14.3.2皮尔逊相关系数(Pearson Correlation)
14.3.3余弦相似度
14.4基于协同过滤的推荐算法
14.4.1基于用户的协同过滤算法
14.4.2基于项的协同过滤算法
14.5利用协同过滤算法进行推荐
14.5.1导入用户-商品数据
14.5.2利用基于用户的协同过滤算法进行推荐
14.5.3利用基于项的协同过滤算法进行推荐
参考文献
15 基于矩阵分解的推荐算法
15.1矩阵分解
15.2基于矩阵分解的推荐算法
15.2.1损失函数
15.2.2损失函数的求解
15.2.3加入正则项的损失函数即求解方法
15.2.4预测
15.3利用矩阵分解进行推荐
15.3.1利用梯度下降对用户商品矩阵分解和预测
15.3.2最终的结果
15.4非负矩阵分解
15.4.1非负矩阵分解的形式化定义
15.4.2损失函数
15.4.3优化问题的求解
15.5利用非负矩阵分解进行推荐
15.5.1利用乘法规则进行分解和预测
15.5.2最终的结果
参考文献
16 基于图的推荐算法
16.1二部图与推荐算法
16.1.1二部图
16.1.2由用户商品矩阵到二部图
16.2 PageRank算法
16.2.1 PageRank算法的概念
16.2.2 PageRank的两个假设
16.2.3 PageRank的计算方法
16.3 PersonalRank算法
16.3.1 PersonalRank算法原理
16.3.2 PersonalRank算法的流程
16.4利用PersonalRank算法进行推荐
16.4.1利用PersonalRank算法进行推荐
16.4.2最终的结果
参考文献
第五部分 深度学习
17 AutoEncoder
17.1多层神经网络
17.1.1三层神经网络模型
17.1.2由三层神经网络到多层神经网络
17.2 AutoEncoder模型
17.2.1 AutoEncoder模型结构
17.2.2 AutoEncoder的损失函数
17.3降噪自编码器Denoising AutoEncoder
17.3.1 Denoising AutoEncoder原理
17.3.2 Denoising AutoEncoder实现
17.4利用Denoising AutoEncoders构建深度网络
17.4.1无监督的逐层训练
17.4.2有监督的微调
17.5利用TensorFlow实现Stacked Denoising AutoEncoders
17.5.1训练Stacked Denoising AutoEncoders模型
17.5.2训练的过程
参考文献
18 卷积神经网络
18.1传统神经网络模型存在的问题
18.2卷积神经网络
18.2.1卷积神经网络中的核心概念
18.2.2卷积神经网络模型
18.3卷积神经网络的求解
18.3.1卷积层(Convolution Layer)
18.3.2下采样层(Sub-Sampling Layer)
18.3.3全连接层(Fully-Connected Layer)
18.4利用TensorFlow实现CNN
18.4.1 CNN的实现
18.4.2训练CNN模型
18.4.3训练的过程
参考文献
第六部分 项目实践
19 微博精准推荐
19.1精准推荐
19.1.1精准推荐的项目背景
19.1.2精准推荐的技术架构
19.1.3离线数据挖掘
19.2基于用户行为的挖掘
19.2.1基于互动内容的兴趣挖掘
19.2.2基于与博主互动的兴趣挖掘
19.3基于相似用户的挖掘
19.3.1基于“@”人的相似用户挖掘
19.3.2基于社区的相似用户挖掘
19.3.3基于协同过滤的相似用户挖掘
19.4点击率预估
19.4.1点击率预估的概念
19.4.2点击率预估的方法
19.5各种数据技术的效果
参考文献
附录A
附录B