python算法详解pdf-Python机器学习算法 PDF 原书扫描版

给大家带来的一篇关于机器学习相关的电子书资源,介绍了关于Python机器学习算法方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小30.1 MB,赵志勇编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.4。

内容介绍

读者评价

书还可以,对机器学习的解释比较到位,速度也很快

这本书采用python3对决策树、集成学习、SVM和神经网络做了一个i详细的讲解和编程的实现。我觉得这本书比较好的一点在于对每一种算法都有了一个比较详细的解释

探索数据的内在价值,洞悉人工智能背后的技术!

精彩书评

在人工智能时代,机器学习已经成了互联网从业人员和在校学生的一门必修课。市场上不乏机器学习相关的书籍,但大都晦涩难懂而缺乏应用场景。本书是作者在新浪微博广告业务上一手的实践经验和心得体会,具有实用性,非常适合于对机器学习感兴趣但没有经验的开发人员,和渴望了解“理论知识如何在业务中应用”的在校学生,相信你们一定可以从中找到想要的答案。——新浪微博高级技术经理 姜贵彬

本书没有使用高深复杂的数学逻辑来解释机器学习,而是从直观简洁的介绍入手,通俗易懂,再辅助于代码实现帮助读者理解算法细节,是机器学习入门一本不可多得的好书,推荐。——百度资深技术专家 毛钦

本书从具体的代码开始去理解抽象的算法,给读者一种脚踏实地的感觉,推荐给所有工程出身有志于算法的工程师。——阿里妈妈算法工程技术专家 易慧民

本书对常用的机器学习算法进行了深入和全面的介绍,书中大量的代码清单令人印象尤为深刻,确实是一本实用易懂、快速入门的好书。——美团·大众点评资深技术专家 潘文彬

内容简介

《Python机器学习算法》是一本机器学习入门读物,注重理论与实践的结合。全书主要包括6个部分,每个部分均以典型的机器学习算法为例,从算法原理出发,由浅入深,详细介绍算法的理论,并配合目前流行的Python语言,从零开始,实现每一个算法,以加强对机器学习算法理论的理解、增强实际的算法实践能力,最终达到熟练掌握每一个算法的目的。与其他机器学习类图书相比,《Python机器学习算法》同时包含算法理论的介绍和算法的实践,以理论支撑实践,同时,又将复杂、枯燥的理论用简单易懂的形式表达出来,促进对理论的理解。

写作历程

机器学习的黄金时间

近年来,人工智能AI技术的快速发展,得益于越来越多的人工智能人才的涌入和计算机硬件以及软件技术的不断发展。机器学习是人工智能AI的中一个重要的方向,在机器学习的发展过程中,越来越多的人投身于机器学习的研究中,同时,越来越多的互联网公司加入到人工智能的行列,“人工智能”一词也成为妇孺皆知的名词,这正是人工智能发展的黄金时间,同样,机器学习算法作为人工智能中的核心方法,也是发展的一个黄金时间。

机器学习中的常用算法

在机器学习的发展过程中出现了很多优秀的机器学习算法,主要可以从监督学习,无监督学习以及半监督学习的角度对其进行划分。

监督学习(Supervised Learning)是指利用训练样本,包括数据特征和数据标签,训练出一个模型,并利用训练好的模型,对未知数据进行预测。常用的监督学习问题包括分类和回归,其中,分类问题的标签是离散的值,而回归问题的标签是一系列连续的值。常见的监督学习有:Logistic Regression算法,支持向量机SVM算法,BP神经网络算法,线性回归,Lasso,GBDT,随机森林等。

无监督学习(Unsupervised Learning)是指事先没有训练样本,我们需要直接对数据进行建模。常见的无监督问题包括聚类。常见的无监督学习有:KMeans算法,Mean Shift算法,DBSCAN算法等。

在发展的过程中,人们不断提出一些新的算法和模型,深度学习(Deep Learning)的概念便是在这个过程中被提出,深度学习通过构建深层神经网络模型,学习到输入数据的更抽象的表示,以此达到特征学习的功能,更大程度上提高了模型的学习能力。深度学习的成功成为机器学习乃至人工智能发展史上光辉的一笔。常见的深度学习模型包括:自编码器Auto-encoder,深度信念网DBN,卷积神经网络CNN,递归神经网络RNN以及LSTM等。

机器学习的常用框架

现在是机器学习发展的一个黄金时间,越来越多的研究人员和越来越多的公司参与到机器学习的研究和算法的开发过程中,因此,出现了很多开源的机器学习算法实现以及机器学习的算法框架,下面我们罗列一些常见的框架以及开源实现:

TensorFlow。TensorFlow当属现在最火的深度学习框架。TensorFlow最初由Google Brain小组(该小组隶属于Google’s Machine Intelligence研究机构)的研究员和工程师开发出来的,开发目的是用于进行机器学习和深度神经网络的研究。

Scikit-Learn。Scikit-Learn是用于机器学习的Python 模块,它建立在SciPy之上。该项目由David Cournapeau 于2007年创立,当时项目名为Google Summer of Code,自此之后,众多志愿者都为此做出了贡献。

Caffe。Caffe 是由神经网络中的表达式、速度、及模块化产生的深度学习框架,是一个基于C++/CUDA架构框架,开发者能够利用它自由的组织网络,目前支持卷积神经网络和全连接神经网络(人工神经网络)。

Keras。Keras是极其精简并高度模块化的神经网络库,在TensorFlow 或 Theano 上都能够运行,是一个高度模块化的神经网络库,支持GPU和CPU运算。

ConvNetJS。ConvNetJS是利用Javascript实现的神经网络,同时还具有非常不错的基于浏览器的Demo。它最重要的用途是帮助深度学习初学者更快、更直观的理解算法。

Theano。Theano是一个Python库,它允许使用者有效地定义、优化和评估涉及多维数组的数学表达式,同时支持GPUs和高效符号分化操作。

MXNet。MXNet是一个兼具效率和灵活性的深度学习框架。它允许使用者将符号编程和命令式编程相结合,以追求效率和生产力的最大化。

Vowpal Wabbit。Vowpal Wabbit是一个机器学习系统,该系统推动了如在线、散列、Allreduce、Learning2search、等方面机器学习前沿技术的发展。

XGBoot。XGBoot是设计为高效、灵活、可移植的优化分布式梯度 Boosting库。它实现了 Gradient Boosting 框架下的机器学习算法。XGBoost通过提供并行树Boosting(也被称为GBDT、GBM),以一种快速且准确的方式解决了许多数据科学问题。

除了上述的各种框架,还有一些开源的代码,如libSVM,libFM等等。

开始写博客

互联网技术的发展为我们的学习和生活提供了很多的便利,我们可以在互联网获取到大量的学习材料,可以和技术达人,学术牛人探讨各种技术问题。

在读研究生的时候,我有幸接触机器学习。刚开始接触机器学习时,抱着对各种机器学习算法的敬畏以及对知识的渴求,我努力去学习各种算法,包括聚类算法,分类算法等。在学习的过程中,我翻阅了机器学习领域的一些书,包括《pattern recognition and machine learning》(即PRML),《Machine Learning》,《集体智慧编程》,周志华老师的《机器学习》(即俗称的西瓜书),《机器学习实战》,李航老师的《统计机器学习》以及《推荐系统实战》等等。从这些书中,我学到了很多机器学习方面的知识,通过学习,我也渐渐对机器学习领域有了较为清晰的认识。

计算机学科是一门实践性较强的学科,任何一门语言或者任何一个算法,通过对算法的实现,能够加深对算法的理解,同时,算法的设计是为了解决实际的问题,只有在实践的过程中,才能更好的解决实际的问题。

因此,在学习的过程中,一方面学习机器学习的理论知识,另一方面通过具体的数据集,实践每一个算法。俗话说:独学而无友,则孤陋而寡闻。在掌握了部分算法后,我打算把我的学习过程分享出来,比较好的方式就是组织学习的小组,但是一些现实因素的限制,我决定通过写博客的方式将我的笔记写出来,一开始写博客,我打算能够记录出学习机器学习算法的具体过程,因此,我给自己的文章建了一个响亮的标题《简单易学的机器学习算法》(写着写着,发现想要说明白也不是那么简单)。

在此过程中,微博上也出现了很多大牛在分享各种学习资料,我也不断转发这些材料,并在事后不断学习,还为此做了一个话题:

开始写《Python机器学习算法》

能够写出一本书是很多人的理想,我也不例外,在此,我得感谢博文视点的符隆美编辑,多次鼓励我写书,才有我开始动手写这本书。

正如上面所说,我积累了大量的算法,以及自己对算法的实现,期间编辑与我联系,希望我能够将自己的稿子整理出来出一本书,刚开始的时候,我是拒绝的,我总觉得自己的能力还不足以将一个算法解释清楚,更别说出一本书,同时,市场上机器学习方面的书实在是多,如:1、《机器学习实战》。这真是一本好书,让很多初学者可以入门,同时提供了很多实践的机会,真是一本实战的好书。2、李航老师的《统计机器学习》。这是一本理论上很全的书。3、周志华老师的西瓜书《机器学习》。周老师是机器学习方面的专家,这本书得到了很多人的认可,无论是知识的全面性,还是对机器学习理论的解释,都体现出了周老师学识的渊博。4、还有一些经典的专注,如《PRML》等等还有很多。以上说的这些书是大家谈论比较多的,同时,还有一些其他的课程,如斯坦福的教程等等,无一不是学习的好材料。那究竟写些什么呢,在博客中的文章还是浅显,而且过于零散。

(以上分割线表示经过了一段时间的思考)

经过半个月时间的思考,决定写一些典型的算法,因为有些算法在我实际的工作中也经常被用到。在讲解算法的基本原理的同时,配上实验的代码,从聚类算法,分类算法,回归算法,推荐算法到深度学习,希望尽可能涉及到机器学习的大部分算法,同时,介绍了在实际中使用这其中某些算法的一个例子。

最终决定写一本机器学习入门读物,注重理论与实践的结合。在最终定稿时,全书一共包括6个部分,每个部分均以典型的机器学习算法为例,从算法原理出发,由浅入深,详细介绍算法的理论,并配合目前流行的Python语言,从零开始,实现每一个算法,以加强对机器学习算法理论的理解、增强实际的算法实践能力。

目录

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.5Python和机器学习算法实践6

参考文献7

第一部分分类算法

1Logistic Regression10

1.1Logistic Regression模型10

1.1.1线性可分VS线性不可分10

1.1.2Logistic 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.4Logistic Regression算法实践20

1.4.1利用训练样本训练Logistic Regression模型20

1.4.2最终的训练效果22

1.4.3对新数据进行预测23

参考文献26

2Softmax Regression27

2.1多分类问题27

2.2Softmax Regression算法模型28

2.2.1Softmax Regression模型28

2.2.2Softmax Regression算法的代价函数28

2.3Softmax Regression算法的求解29

2.4Softmax Regression与Logistic Regression的关系31

2.4.1Softmax Regression中的参数特点31

2.4.2由Softmax Regression到Logistic Regression31

2.5Softmax Regression算法实践32

2.5.1对Softmax Regression算法的模型进行训练33

2.5.2最终的模型34

2.5.3对新的数据的预测35

参考文献39

3Factorization Machine40

3.1Logistic Regression算法的不足40

3.2因子分解机FM的模型42

3.2.1因子分解机FM模型42

3.2.2因子分解机FM可以处理的问题43

3.2.3二分类因子分解机FM算法的损失函数43

3.3FM算法中交叉项的处理43

3.3.1交叉项系数43

3.3.2模型的求解44

3.4FM算法的求解45

3.4.1随机梯度下降(Stochastic Gradient Descent)45

3.4.2基于随机梯度的方式求解45

3.4.3FM算法流程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序列最小最优化算法SMO69

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.2CART分类树算法95

5.2.1CART分类树算法的基本原理95

5.2.2CART分类树的构建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

6BP神经网络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.3BP神经网络的学习过程120

6.4BP神经网络中参数的设置126

6.4.1非线性变换126

6.4.2权重向量的初始化126

6.4.3学习率127

6.4.4隐含层节点的个数127

6.5BP神经网络算法实践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.4Armijo搜索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.3Lasso回归模型157

8.4拟牛顿法158

8.4.1拟牛顿法158

8.4.2BFGS校正公式的推导158

8.4.3BFGS校正的算法流程159

8.5L-BFGS求解岭回归模型162

8.5.1BGFS算法存在的问题162

8.5.2L-BFGS算法思路162

8.6岭回归对数据的预测165

8.6.1训练岭回归模型166

8.6.2最终的训练结果168

8.6.3利用岭回归模型预测新的数据168

参考文献171

9CART树回归172

9.1复杂的回归问题172

9.1.1线性回归模型172

9.1.2局部加权线性回归173

9.1.3CART算法174

9.2CART回归树生成175

9.2.1CART回归树的划分175

9.2.2CART回归树的构建177

9.3CART回归树剪枝179

9.3.1前剪枝179

9.3.2后剪枝180

9.4CART回归树对数据预测180

9.4.1利用训练数据训练CART回归树模型180

9.4.2最终的训练结果182

9.4.3利用训练好的CART回归树模型对新的数据预测185

参考文献187

第三部分聚类算法

10K-Means190

10.1相似性的度量190

10.1.1闵可夫斯基距离191

10.1.2曼哈顿距离191

10.1.3欧氏距离191

10.2K-Means算法原理192

10.2.1K-Means算法的基本原理192

10.2.2K-Means算法步骤193

10.2.3K-Means算法与矩阵分解193

10.3K-Means算法实践195

10.3.1导入数据196

10.3.2初始化聚类中心197

10.3.3聚类过程198

10.3.4最终的聚类结果199

10.4K-Means++算法200

10.4.1K-Means算法存在的问题200

10.4.2K-Means++算法的基本思路202

10.4.3K-Means++算法的过程和最终效果204

参考文献205

11Mean Shift206

11.1Mean Shift向量206

11.2核函数207

11.3Mean Shift算法原理209

11.3.1引入核函数的Mean Shift向量209

11.3.2Mean Shift算法的基本原理210

11.4Mean Shift算法的解释212

11.4.1概率密度梯度212

11.4.2Mean Shift向量的修正213

11.4.3Mean Shift算法流程213

11.5Mean Shift算法实践217

11.5.1Mean Shift的主过程218

11.5.2Mean Shift的最终聚类结果219

参考文献221

12DBSCAN222

12.1基于密度的聚类222

12.1.1基于距离的聚类算法存在的问题222

12.1.2基于密度的聚类算法225

12.2DBSCAN算法原理225

12.2.1DBSCAN算法的基本概念225

12.2.2DBSCAN算法原理227

12.2.3DBSCAN算法流程228

12.3DBSCAN算法实践231

12.3.1DBSCAN算法的主要过程232

12.3.2Mean Shift的最终聚类结果234

参考文献236

13Label Propagation237

13.1社区划分237

13.1.1社区以及社区划分237

13.1.2社区划分的算法238

13.1.3社区划分的评价标准239

13.2Label Propagation算法原理239

13.2.1Label Propagation算法的基本原理239

13.2.2标签传播240

13.2.3迭代的终止条件242

13.3Label Propagation算法过程244

13.4Label 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

14.5.3利用基于项的协同过滤算法进行推荐262

参考文献264

15基于矩阵分解的推荐算法265

15.1矩阵分解265

15.2基于矩阵分解的推荐算法266

15.2.1损失函数266

15.2.2损失函数的求解266

15.2.3加入正则项的损失函数即求解方法267

15.2.4预测269

15.3利用矩阵分解进行推荐270

15.3.1利用梯度下降对用户商品矩阵分解和预测270

15.3.2最终的结果272

15.4非负矩阵分解273

15.4.1非负矩阵分解的形式化定义274

15.4.2损失函数274

15.4.3优化问题的求解274

15.5利用非负矩阵分解进行推荐277

15.5.1利用乘法规则进行分解和预测277

15.5.2最终的结果278

参考文献279

16基于图的推荐算法280

16.1二部图与推荐算法280

16.1.1二部图280

16.1.2由用户商品矩阵到二部图281

16.2PageRank算法282

16.2.1PageRank算法的概念282

16.2.2PageRank的两个假设283

16.2.3PageRank的计算方法283

16.3PersonalRank算法285

16.3.1PersonalRank算法原理285

16.3.2PersonalRank算法的流程286

16.4利用PersonalRank算法进行推荐288

16.4.1利用PersonalRank算法进行推荐288

16.4.2最终的结果291

参考文献291

第五部分深度学习

17AutoEncoder294

17.1多层神经网络294

17.1.1三层神经网络模型294

17.1.2由三层神经网络到多层神经网络295

17.2AutoEncoder模型296

17.2.1AutoEncoder模型结构296

17.2.2AutoEncoder的损失函数297

17.3降噪自编码器Denoising AutoEncoder298

17.3.1Denoising AutoEncoder原理298

17.3.2Denoising AutoEncoder实现299

17.4利用Denoising AutoEncoders构建深度网络302

17.4.1无监督的逐层训练302

17.4.2有监督的微调303

17.5利用TensorFlow实现Stacked Denoising AutoEncoders306

17.5.1训练Stacked Denoising AutoEncoders模型306

17.5.2训练的过程307

参考文献308

18卷积神经网络309

18.1传统神经网络模型存在的问题309

18.2卷积神经网络311

18.2.1卷积神经网络中的核心概念311

18.2.2卷积神经网络模型312

18.3卷积神经网络的求解313

18.3.1卷积层(Convolution Layer)313

18.3.2下采样层(Sub-Sampling Layer)316

18.3.3全连接层(Fully-Connected Layer)316

18.4利用TensorFlow实现CNN316

18.4.1CNN的实现316

18.4.2训练CNN模型320

18.4.3训练的过程321

参考文献321

第六部分项目实践

19微博精准推荐324

19.1精准推荐324

19.1.1精准推荐的项目背景324

19.1.2精准推荐的技术架构325

19.1.3离线数据挖掘326

19.2基于用户行为的挖掘327

19.2.1基于互动内容的兴趣挖掘327

19.2.2基于与博主互动的兴趣挖掘328

19.3基于相似用户的挖掘329

19.3.1基于“@”人的相似用户挖掘329

19.3.2基于社区的相似用户挖掘329

19.3.3基于协同过滤的相似用户挖掘331

19.4点击率预估332

19.4.1点击率预估的概念332

19.4.2点击率预估的方法332

19.5各种数据技术的效果334

参考文献335

附录A336

附录B341

以上就是本次介绍的机器学习电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

展开 +

收起 -

你可能感兴趣的:(python算法详解pdf-Python机器学习算法 PDF 原书扫描版)