书籍作者:莫凡 | ISBN:9787111642602 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:9988 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书以机器学习的算法为主线,深入剖析算法的概念和数学原理,以通俗形象的语言进行讲解,让读者无须了解太多前置数学知识,就能看懂数学公式所表达的意思,从而快速掌握机器学习的思想和原理。本书首先介绍机器学习基本概念及工具,然后从概念、原理、Python实现、应用场景几个方面,详细剖析机器学习中主要的算法,如线性回归算法、Logistic回归算法、KNN算法、朴素贝叶斯算法、决策树算法、支持向量机算法、K-means聚类算法、神经网络、集成学习方法等。
莫凡,新技术深度爱好者,曾经从事信息安全前沿技术跟踪研究和数据分析工作,在各类信息安全类技术期刊发表文章五十余篇,现转为投身高端知识“白菜化”项目,希望能让将更多听起来高大上的名词沾一沾“人间烟火”,成为日常生活中真正用得上的知识。
·生动——语言生动幽默,通过分析大量生活案例,帮助读者理解机器学习的算法。
·简单——让很多听起来高大上的名词更实用。
·实用——精选了主要的机器学习算法,如线性回归算法、Logistic回归算法、KNN算法、朴素贝叶斯算法、决策树算法、支持向量机算法、K-means聚类算法、神经网络、集成学习方法等。
·系统——从概念、原理、Python实现、应用场景几个方面,详细剖析机器学习中主要的算法。
这是一本介绍机器学习的书,按常理来说,我应该首先介绍学习机器学习的重要性。可是,有必要吗?我记得约五年前,机器学习还是一个很有科幻色彩的术语,而现在技术学习圈几乎整版都换成了机器学习的各种模型,国内很多大学已经开始设立人工智能专业,机器学习当仁不让地成为核心课程。据说相关学者已经将该知识编制成课本,即将走入中学课堂。机器学习的火热,连带着让长年不温不火的Python语言也借机异军突起,甚至掀起一阵Python语言的学习热潮。机器学习已经成为“技术宅”的一种必备技能,因此,实在没必要再占篇幅介绍它的重要性。
但是,学习机器学习的路途是坎坷和颠簸的,唯一不缺的就是让你半途而废的借口。机器学习今日的成就是站在巨人的肩膀上取得的,因此,当你终于下定决心学习机器学习时,很多人会给你开出一串长长的学习清单:机器学习涉及大量向量和矩阵运算,所以线性代数是肯定要学的;机器学习的很多模型算法都以统计知识作为背景,所以统计学和概率论也是必修的;许多重要环节依赖微分运算,那本好久不看的《高等数学》是不是到了重出江湖的时候了?
想想看,如果告诉你学习机器学习,首先得把《线性代数》《概率统计》《高等数学》统统翻一遍,然后你才只是刚刚摸到学习机器学习的起跑线,如果不擅长数学,你得需要多大的毅力才能坚持下来,把机器学习学明白?
真的很难,如果开始学习机器学习时我就知道后面会承受这么多“痛苦”,也许我根本就不会开始。特别是如果你也是利用业余时间来自学机器学习,那么真的称得上煎熬:当你已经为别的事情绞尽脑汁,好不容易有了那么一点属于自己的时间,想要学习充电时,结果鼓起勇气翻开书本,扑面而来的全是各种难以理解的数学公式和闻所未闻的专业术语,你就能立即体会到什么是无力感。
那时我总是在想,能不能有一本教机器学习的书对读者友好一点。首先不要假设读者擅长数学,认为读者一上来就可以看懂各种高深的数学公式,在介绍机器学习具体模型算法时要能按照从宏观到微观的顺序介绍。刚接触新的知识领域,先把模型算法的主要原理和基本结构讲清楚,让读者在脑海里勾勒出基本的轮廓,明确各种概念之间的关系,然后才深入各个细枝末节展开介绍,这样读者才不至于觉得自己一直在各种陌生的公式里转来转去,最后看得晕头转向。最后我还想再贪心一点,希望这本书的文字能够稍微有趣一点,最好能像弹幕评论那样在不经意间引人会心一笑,毕竟我是利用睡前的时间来学习机器学习,辛苦了一天,身体和精神都很疲惫,文字太生硬的话恐怕是啃不动的。
我找了很久,可惜直到最后也未能找到这样的一本书。现在,我决定自己动手来写一本。不过,这本书也并不能让你在短期内就全面掌握机器学习的各种知识。机器学习不但自成体系,自身就拥有枝繁叶茂的知识结构,而且也从多门大学科里汲取养分,又带有交叉学科的一些特点,可能将一个子问题深入研究下去就能发展成一门新学科—从神经网络发展到深度学习就是一个很好的例子。弱水三千,一本书哪怕写得再凝练透彻,也只能取一瓢饮。学习机器学习犹如建造大厦,总是需要从最基础的开始学,筑牢根基,然后一本一本地往上堆叠各有侧重的书本,才可能最终构建出完整的知识体系。
每一本书都有自己的使命。初学机器学习时,遇到的最大问题是迷茫,我深有体会。面对机器学习领域数量繁多又互有交叉的知识点,就像身处一大片繁茂的森林,没有指南设备很难不迷失方向,而大量好不容易挤出来的宝贵时间就浪费在辨别方向上了。在本书中,我负责为你踹开机器学习世界的大门,绘制出这个庞大而陌生的世界中的“山河湖海”,总体是怎样的,哪里是重点,哪里是难点,哪些点用到了哪些学科知识,点和点之间的关系又是怎样的,我都迫不及待想要一一清楚地告诉你。为了完成这个使命,我会竭尽全力,但也请原谅我无法“送佛到西”,正如前面所述,每个知识点深入下去,可能又是一片茂密的森林,机器学习涉及的知识点众多,我希望通过本书能让你清楚地看到兴趣所在,不过知识点背后仍然有很长很长的路,还请加倍努力。
最后,我想谈一谈“要不要亲手实现一遍机器学习算法”这个争议很大的问题。我推崇学以致用,用机器学习算法解决实际问题才是本书的最终目的,所以本书将会涉及如何在实际中使用书中提及的机器学习算法的问题。对于这个问题,一般会有两种选择,一种是让读者亲手从头实现一遍算法,另一种则是直接使用现成的算法库。对于这个问题,如何选择争议很大,本书中选择的是后者。
学习机器学习的动机很多,可能是实际工作需要,可能是兴趣爱好,也可能是学业要求,从每种动机的角度看,这个问题都可能有不同的答案。我认同许多人所说的求知不能太功利这一观点,不过大家的时间和精力毕竟有限,就算不去追求投入产出比,至少也应该有一个学这门知识想要达到的目的。机器学习是更偏重于应用的学问,在当下的发展也确实使得机器学习越来越像一门技能,而不仅仅是技术。初学算法时我最想学的是里面的“最强算法”,不过在第1章我将介绍,机器学习算法没有最强的,只有最合适的,对于不同的问题,对应会有不同的最合适算法。所以,我们更需要关注的应该是问题,而不是算法本身。在本书中我选择介绍市面上成熟的机器学习算法包,通过现成的算法包,就能够根据实际要解决的问题直接选择所需要的机器学习算法,从而把注意力集中在对不同算法的选择上。
本书的目标读者是想要学习机器学习的学生、程序员、研究人员或者爱好者,以及想要知道机器学习是什么、为什么和怎么用的所有读者。本书第1章介绍机器学习总体背景,第2章介绍配置环境,第3章到第10章彼此独立,每一章介绍一种具体的机器学习算法,读者可以直接阅读想要了解的算法,第11章介绍了集成学习方法,这是一种组合机器学习算法的方法,也是当前在实际使用中常见又十分有效的提升性能的做法。
各章详细内容如下:
第1章首先介绍机器学习究竟是什么,特别是与“人工智能”“深度学习”这些经常在一起出现的术语究竟有什么关系,又有什么区别。本章也将对机器学习知识体系里的一些常用术语进行简要说明,如果读者此前并不了解机器学习,则可以通过本章了解相关背景知识。
第2章对当前机器学习算法常用的Python编程语言以及相关的Python库进行介绍,同时列举一些常用的功能。
第3章开始正式介绍机器学习算法,要介绍的第一款机器学习算法是线性回归,本章将对回归问题、线性模型和如何用线性模型解决回归问题,以及对机器学习解决问题的主要模式进行介绍。
从第4章开始,介绍当下机器学习应用最广的分类问题,第一款解决分类问题的算法是Logistic回归分类算法,即用线性模型结合Logistic函数解决分类问题。
第5章介绍KNN分类算法,这款算法不依赖太复杂的数学原理,因此一般被认为是最直观好懂的分类算法之一。
第6章介绍朴素贝叶斯分类算法,它基于贝叶斯公式设计,理论清晰、逻辑易懂,是一款典型的基于概率统计理论解决分类问题的机器学习算法。
第7章介绍决策树分类算法,这是一款很重要的算法,从思想到结构都对程序员非常友好,当前XGBoost等主流机器学习算法就是在决策树算法的基础上,结合集成学习方法设计而成的。
第8章介绍支持向量机分类算法,这是一款在学术界和工业界都有口皆碑的机器学习模型。在深度学习出现之前,支持向量机被视作最被看好的机器学习算法,能力强、理论美,也是本书中最为复杂的机器模型。
第9章介绍无监督学习的聚类问题,以及简单好懂的聚类算法—K-means聚类算法。
第10章介绍神经网络分类算法,当前大热的深度学习就是从神经网络算法这一支发展而来的,而且大量继承了神经网络的思想和结构,可以作为了解深度学习的预备。
第11章介绍集成学习方法,以及如何通过组合两个以上的机器学习模型来提升预测效果。
我自己也经常阅读各类书籍,常常看到不少作者提到写书不易,待自己写作了一本书之后,才真正体会到写书真是一段漫长的“马拉松”,只有真正经历了才能明白其中所需要的决心和毅力。本书能顺利写作完成,首先要感谢我的妻子,她的一句“真想看你写完的这本书”是我克服白天工作的疲惫,坚持写下来的最大动力;我还要感谢我的父母,他们培养了我学习新知识的兴趣,更让我懂得了学习新知识的最大乐趣在于分享,继而深深地埋下了写作本书的梦想种子;最后我需要特别正式地感谢本书的策划编辑吴怡女士,这个世界上大大小小的进程都需要一个第一推动力——吴怡女士促使了我写作本书的梦想变成现实。
前言
第1章 机器学习概述 1
1.1 什么是机器学习 1
1.2 机器学习的几个需求层次 3
1.3 机器学习的基本原理 5
1.4 机器学习的基本概念 7
1.4.1 书中用到的术语介绍 7
1.4.2 机器学习的基本模式 11
1.4.3 优化方法 12
1.5 机器学习问题分类 14
1.6 常用的机器学习算法 15
1.7 机器学习算法的性能衡量指标 16
1.8 数据对算法结果的影响 18
第2章 机器学习所需的环境 20
2.1 常用环境 20
2.2 Python简介 21
2.2.1 Python的安装 23
2.2.2 Python的基本用法 24
2.3 Numpy简介 25
2.3.1 Numpy的安装 26
2.3.2 Numpy的基本用法 26
2.4 Scikit-Learn简介 27
2.4.1 Scikit-Learn的安装 28
2.4.2 Scikit-Learn的基本用法 28
2.5 Pandas简介 29
2.5.1 Pandas的安装 30
2.5.2 Pandas的基本用法 31
第3章 线性回归算法 33
3.1 线性回归:“钢铁直男”解决回归问题的正确方法 33
3.1.1 用于预测未来的回归问题 35
3.1.2 怎样预测未来 38
3.1.3 线性方程的“直男”本性 40
3.1.4 最简单的回归问题—线性回归问题 44
3.2 线性回归的算法原理 46
3.2.1 线性回归算法的基本思路 46
3.2.2 线性回归算法的数学解析 48
3.2.3 线性回归算法的具体步骤 53
3.3 在Python中使用线性回归算法 54
3.4 线性回归算法的使用场景 60
第4章 Logistic回归分类算法 61
4.1 Logistic回归:换上“S型曲线马甲”的线性回归 61
4.1.1 分类问题:选择困难症患者的自我救赎 63
4.1.2 Logistic函数介绍 66
4.1.3 此回归非彼回归:“LR”辨析 70
4.2 Logistic回归的算法原理 71
4.2.1 Logistic回归算法的基本思路 71
4.2.2 Logistic回归算法的数学解析 74
4.2.3 Logistic回归算法的具体步骤 78
4.3 在Python中使用Logistic回归算法 78
4.4 Logistic回归算法的使用场景 81
第5章 KNN分类算法 82
5.1 KNN分类算法:用多数表决进行分类 82
5.1.1 用“同类相吸”的办法解决分类问题 84
5.1.2 KNN分类算法的基本方法:多数表决 86
5.1.3 表决权问题 89
5.1.4 KNN的具体含义 89
5.2 KNN分类的算法原理 90
5.2.1 KNN分类算法的基本思路 90
5.2.2 KNN分类算法的数学解析 93
5.2.3 KNN分类算法的具体步骤 94
5.3 在Python中使用KNN分类算法 95
5.4 KNN分类算法的使用场景 96
第6章 朴素贝叶斯分类算法 98
6.1 朴素贝叶斯:用骰子选择 98
6.1.1 从统计角度看分类问题 99
6.1.2 贝叶斯公式的基本思想 102
6.1.3 用贝叶斯公式进行选择 104
6.2 朴素贝叶斯分类的算法原理 106
6.2.1 朴素贝叶斯分类算法的基本思路 106
6.2.2 朴素贝叶斯分类算法的数学解析 108
6.2.3 朴素贝叶斯分类算法的具体步骤 111
6.3 在Python中使用朴素贝叶斯分类算法 111
6.4 朴素贝叶斯分类算法的使用场景 112
第7章 决策树分类算法 114
7.1 决策树分类:用“老朋友”if-else进行选择 114
7.1.1 程序员的选择观:if-else 116
7.1.2 如何种植一棵有灵魂的“树” 118
7.1.3 决策条件的选择艺术 119
7.1.4 决策树的剪枝问题 122
7.2 决策树分类的算法原理 125
7.2.1 决策树分类算法的基本思路 125
7.2.2 决策树分类算法的数学解析 127
7.2.3 决策树分类算法的具体步骤 133
7.3 在Python中使用决策树分类算法 134
7.4 决策树分类算法的使用场景 135
第8章 支持向量机分类算法 137
8.1 支持向量机:线性分类器的“王者” 137
8.1.1 距离是不同类别的天然间隔 139
8.1.2 何为“支持向量” 140
8.1.3 从更高维度看“线性不可分” 142
8.2 支持向量机分类的算法原理 146
8.2.1 支持向量机分类算法的基本思路 146
8.2.2 支持向量机分类算法的数学解析 150
8.2.3 支持向量机分类算法的具体步骤 153
8.3 在Python中使用支持向量机分类算法 154
8.4 支持向量机分类算法的使用场景 156
第9章 K-means聚类算法 157
9.1 用投票表决实现“物以类聚” 157
9.1.1 聚类问题就是“物以类聚”的实施问题 159
9.1.2 用“K”来决定归属类别 162
9.1.3 度量“相似”的距离 164
9.1.4 聚类问题中的多数表决 165
9.2 K-means聚类的算法原理 168
9.2.1 K-means聚类算法的基本思路 168
9.2.2 K-means聚类算法的数学解析 169
9.2.3 K-means聚类算法的具体步骤 170
9.3 在Python中使用K-means聚类算法 171
9.4 K-means聚类算法的使用场景 172
第10章 神经网络分类算法 174
10.1 用神经网络解决分类问题 174
10.1.1 神经元的“内心世界” 177
10.1.2 从神经元看分类问题 180
10.1.3 神经网络的“细胞”:人工神经元 181
10.1.4 构成网络的魔力 184
10.1.5 神经网络与深度学习 188
10.2 神经网络分类的算法原理 188
10.2.1 神经网络分类算法的基本思路 188
10.2.2 神经网络分类算法的数学解析 190
10.2.3 神经网络分类算法的具体步骤 193
10.3 在Python中使用神经网络分类算法 194
10.4 神经网络分类算法的使用场景 195
第11章 集成学习方法 197
11.1 集成学习方法:三个臭皮匠赛过诸葛亮 197
11.1.1 集成学习方法与经典机器学习算法的关系 198
11.1.2 集成学习的主要思想 199
11.1.3 几种集成结构 200
11.2 集成学习方法的具体实现方式 202
11.2.1 Bagging算法 202
11.2.2 Boosting算法 202
11.2.3 Stacking算法 202
11.3 在Python中使用集成学习方法 203
11.4 集成学习方法的使用场景 205
作者文笔是不错的,作为入门书,里面没太多的数学推导,每个算法都用了不少作者自己理解的例子通俗去说,比如SVM就说的不错,不过有的时候感觉废话太多了,比较适合快速了解入门AI的产品经理或者程序员看
2020-02-13