猜你喜欢
深入浅出Python机器学习

深入浅出Python机器学习

书籍作者:段小手 ISBN:9787302503231
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1335
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

机器学习正在迅速改变我们的世界。我们几乎每天都会读到机器学习如何改变日常的生活。如果你在淘宝或者京东这样的电子商务网站购买商品,或者在爱奇艺或是腾讯视频这样的视频网站观看节目,甚至只是进行一次百度搜索,就已经触碰到了机器学习的应用。使用这些服务的用户会产生数据,这些数据会被收集,在进行预处理之后用来训练模型,而模型会通过这些数据来提供更好的用户体验。此外,目前还有很多使用机器学习技术的产品或服务即将在我们的生活当中普及,如能够解放双手的无人驾驶汽车、聪明伶俐的智能家居产品、善解人意的导购机器人等。可以说要想深入机器学习的应用开发当中,现在就是一个非常理想的时机。
本书内容涵盖了有监督学习、无监督学习、模型优化、自然语言处理等机器学习领域所必须掌握的知识,从内容结构上非常注重知识的实用性和可操作性。全书采用由浅入深、循序渐进的讲授方式,完全遵循和尊重初学者对机器学习知识的认知规律。本书适合有一定程序设计语言和算法基础的读者学习使用。

作者简介

段小手,君兮科技创始人,毕业于北京大学。具有10余年国内一线互联网/电子商务公司项目管理经验。其负责的跨境电子商务项目曾获得“国家发改委电子商务示范项目”“中关村现代服务业试点项目”“北京市信息化基础设施提升项目”“北京市外贸综合公共平台”等专项政策支持。目前重点研究领域为机器学习和深度学习等方面。

编辑推荐

人工智能,火了!
计算机是由程序驱动的,人工智能不过是一些特殊的算法。只要你有一些程序设计语言的基础,跟随本书,你也能进入人工智能的世界,成为一名人工智能应用的开发者。



本书特色

1. 内容实用实在、详略得当,讲授符合初学者的认知规律

本书内容涵盖了有监督学习、无监督学习、模型优化、自然语言处理等机器学习领域所必须掌握的知识,从内容结构上非常注重知识的实用性和可操作性。必须掌握的细节处绝不吝惜笔墨、手把手细致到每一次的鼠标点击;仅需要大致了解处绝不铺张浪费纸张、整体结构的描述提纲挈领。这样的安排注重了对初学阶段必备知识的深入了解,大致了解的知识也能够有所认识,这种由浅入深、循序渐进的讲授完全是遵循和尊重了初学者对机器学习知识的认知规律。

2. 行文幽默诙谐,以实例引导全程,特别适合初学者阅读

本书介绍的基本理论知识、用于分类的机器学习算法、用于回归的机器学习算法、数据预处理、数据表达与特征工程等,都是使用非常贴近生活场景的实例来引导的,这样就避免了知识讲述过于抽象,非常易于理解。同时,作者以幽默诙谐,贴近时代的语言对这些知识进行生动、通俗的一一讲解,犹如一位你的老朋友,帮助你缩短入门机器学习的时间。纵观全书,作者将大学生小 C 追求女神以及帮助他的朋友处理日常问题同机器学习的理论与操作进行对比介绍,这就使得整个学习过程变得简单、生动起来。

3. 配套的人才培养与引入计划,帮助读者将学习成果转化为真正的生产力

在笔者过去的工作当中,累积了数量可观的各大互联网公司招聘通道资源,以及诸多猎头资源,可以帮助学有所长的读者快速进入一个实际操作的场景中进一步提高自己的实操能力。除此之外,笔者和国内大部分相关的产业发展部门有着密切的联系,对于有志于在人工智能领域创业的创业者来说,也能够帮助其对接政策资源,帮助大家在创业过程中得到有关部门的支持,从而使得创业之路变得不那么坎坷。

前言

前 言

计算机是由程序驱动的,人工智能(AI)不过是一些特殊的算法。只要你有一些程
序设计语言的基础,跟随本书,你也能进入人工智能的世界,成为一个AI应用的开发者。

人工智能,火了

仿佛就在一夜之间,人工智能火了,一跃成为IT业内最受关注的热点话题。如果读
者关注互联网圈子的话,应该会听说在2017年12月乌镇举办的第四届互联网大会上,
一众互联网大咖张口闭口都在谈人工智能,使得AI成了毫无疑问的最大风口。

例如,网易公司的CEO丁磊就表示,人工智能会成为每一个行业的标配。他认为,
任何一个行业都可以用到人工智能,并且建议每个企业的领导者都不要忽略人工智能对
自己所在领域的影响。

苹果公司的CEO蒂姆·库克也谈到人工智能可以让世界变得更美好。同时,他表示
并不担心机器会像人一样思考,但强调必须为技术注入人性,赋予技术应有的价值。

把“All in AI”作为口号的百度,其CEO李彦宏更是极为推崇人工智能。他的观点是,
人工智能不可能超越人类的能力,但是随着它的能力逐步逼近人类,就会开始一个行业
一个行业地去颠覆了。

还有一位不能不提的人,就是阿里巴巴集团董事局主席马云。在他的演讲中提到,
与其担心人工智能会带走很多就业机会,不如拥抱技术,解决新的问题。人工智能只会
让人的工作更有价值,更有尊严。

当然,小米的CEO雷军更是不忘在大会上直接做了个硬广告。他告诉与会嘉宾,小
米正在拥抱人工智能,在2018年小米手机将深度利用AI技术。



深入浅出Python 机器学习

II

此外,大名鼎鼎的斯坦福大学计算机系教授、Coursera创始人吴恩达,更是人工智
能的坚定拥护者。他直言未来政府和企业会在人工智能领域扮演着越来越重要的角色,
监管得力才能使AI发展得更好,企业领导者更应该将AI技术融入企业文化中,创造一
个AI支持下的未来。

国内的顶级学者也高度重视AI的发展,中国工程院院士倪光南老先生强调,AI是
未来非常重要的一个发展方向,会产生什么我们很难预料,但一定会产生重大的影响;
同时他指出,未来人和机器应该和谐相处,我们可以把重复性的劳动交给人工智能,人
类去做更多有创造力的工作。

诸如此类,我们这里不一一列举了,但从上述这些大咖们的言论之中,人工智能的
火爆程度,已然是可见一斑了。

置身事外,还是投身其中

既然各路大咖都如此看好人工智能的前景,那么我们应该怎样面对这一波浪潮呢?

前不久,我们的朋友圈几乎被同一种情绪刷屏,那就是对人工智能即将取代人类的
强烈担忧。各路自媒体不惜笔墨地渲染人工智能将逐步蚕食人类的就业机会,并且最终
取代人类统治世界,以此来博得大众的眼球,吸引粉丝的关注。

对于此,笔者的观点是:这简直是“咸吃萝卜淡操心”!这种通过夸大其词误导大
众换取关注的方法是不可取的。纵观人类历史,发生过三次大的工业革命,而在这三次
革命当中,确实发生过短暂的对于人类就业的冲击。但是人类自起源以来,依靠强大的
适应能力一直存活到今天,并没有被任何机器或者别的物种所取代。相反地,我们的生
活质量还在不断提高,享受着新兴技术给我们带来的高效与便捷。

不过,尽管我们不必担心新的技术取代人类,但还是要面对一个现实,那就是每次
大的技术革命带来的阶层转换与固化。比如距离我们最近的这一次信息技术蓬勃发展,
制造了一大批顶级富豪,如微软的比尔·盖茨、亚马逊的贝索斯,国内的李彦宏、马云、
马化腾、张朝阳、丁磊等。

如果说,在上一次互联网带来巨大机遇的时候,咱们年龄还小——有可能还在上中
学甚至小学,没能抓住这一波浪潮,那么这一波AI带来的机会就真的是“生逢其时”,
估计本书的读者朋友年龄段会相对集中在“80后”“90后”这一代,正是青春好年华,
体力和脑力都处在一个非常出色的阶段,可以说是完美地“遭遇”了这一千载难逢的好
时机。

目录

目 录

第1章 概 述

1.1 什么是机器学习——从一个小故事开始 / 002

1.2 机器学习的一些应用场景——蝙蝠公司的业务单元 / 003

1.3 机器学习应该如何入门——世上无难事 / 005

1.4 有监督学习与无监督学习 / 007

1.5 机器学习中的分类与回归 / 008

1.6 模型的泛化、过拟合与欠拟合 / 008

1.7 小结 / 009

第2章 基于Python语言的环境配置

2.1 Python的下载和安装 / 012

2.2 Jupyter Notebook的安装与使用方法 / 013

2.2.1 使用pip进行Jupyter Notebook的下载和安装 / 013

2.2.2 运行Jupyter Notebook / 014

2.2.3 Jupyter Notebook的使用方法 / 015

2.3 一些必需库的安装及功能简介 / 017

2.3.1 Numpy——基础科学计算库 / 017

2.3.2 Scipy——强大的科学计算工具集 / 018

2.3.3 pandas——数据分析的利器 / 019

2.3.4 matplotlib——画出优美的图形 / 020



深入浅出Python 机器学习

VIII

2.4 scikit-learn——非常流行的Python机器学习库 / 021

2.5 小结 / 022

第3章 K最近邻算法——近朱者赤,近墨者黑

3.1 K最近邻算法的原理 / 024

3.2 K最近邻算法的用法 / 025

3.2.1 K最近邻算法在分类任务中的应用 / 025

3.2.2 K最近邻算法处理多元分类任务 / 029

3.2.3 K最近邻算法用于回归分析 / 031

3.3 K最近邻算法项目实战——酒的分类 / 034

3.3.1 对数据集进行分析 / 034

3.3.2 生成训练数据集和测试数据集 / 036

3.3.3 使用K最近邻算法进行建模 / 038

3.3.4 使用模型对新样本的分类进行预测 / 039

3.4 小结 / 041

第4章 广义线性模型——“耿直”的算法模型

4.1 线性模型的基本概念 / 044

4.1.1 线性模型的一般公式 / 044

4.1.2 线性模型的图形表示 / 045

4.1.3 线性模型的特点 / 049

4.2 最基本的线性模型——线性回归 / 050

4.2.1 线性回归的基本原理 / 050

4.2.2 线性回归的性能表现 / 051

4.3 使用L2正则化的线性模型——岭回归 / 053

4.3.1 岭回归的原理 / 053

4.3.2 岭回归的参数调节 / 054

4.4 使用L1正则化的线性模型——套索回归 / 058

4.4.1 套索回归的原理 / 058

4.4.2 套索回归的参数调节 / 059

4.4.3 套索回归与岭回归的对比 / 060






IX

4.5 小结 / 062

第5章 朴素贝叶斯——打雷啦,收衣服啊

5.1 朴素贝叶斯基本概念 / 064

5.1.1 贝叶斯定理 / 064

5.1.2 朴素贝叶斯的简单应用 / 064

5.2 朴素贝叶斯算法的不同方法 / 068

5.2.1 贝努利朴素贝叶斯 / 068

5.2.2 高斯朴素贝叶斯 / 071

5.2.3 多项式朴素贝叶斯 / 072

5.3 朴素贝叶斯实战——判断肿瘤是良性还是恶性 / 075

5.3.1 对数据集进行分析 / 076

5.3.2 使用高斯朴素贝叶斯进行建模 / 077

5.3.3 高斯朴素贝叶斯的学习曲线 / 078

5.4 小结 / 080

第6章 决策树与随机森林——会玩读心术的算法

6.1 决策树 / 082

6.1.1 决策树基本原理 / 082

6.1.2 决策树的构建 / 082

6.1.3 决策树的优势和不足 / 088

6.2 随机森林 / 088

6.2.1 随机森林的基本概念 / 089

6.2.2 随机森林的构建 / 089

6.2.3 随机森林的优势和不足 / 092

6.3 随机森林实例——要不要和相亲对象进一步发展 / 093

6.3.1 数据集的准备 / 093

6.3.2 用get_dummies处理数据 / 094

6.3.3 用决策树建模并做出预测 / 096

6.4 小结 / 098



第7章 支持向量机SVM——专治线性不可分

7.1 支持向量机SVM基本概念 / 100

7.1.1 支持向量机SVM的原理 / 100

7.1.2 支持向量机SVM的核函数 / 102

7.2 SVM的核函数与参数选择 / 104

7.2.1 不同核函数的SVM对比 / 104

7.2.2 支持向量机的gamma参数调节 / 106

7.2.3 SVM算法的优势与不足 / 108

7.3 SVM实例——波士顿房价回归分析 / 108

7.3.1 初步了解数据集 / 109

7.3.2 使用SVR进行建模 / 110

7.4 小结 / 114

第8章 神经网络——曾入“冷宫”,如今得宠

8.1 神经网络的前世今生 / 116

8.1.1 神经网络的起源 / 116

8.1.2 第一个感知器学习法则 / 116

8.1.3 神经网络之父——杰弗瑞·欣顿 / 117

8.2 神经网络的原理及使用 / 118

8.2.1 神经网络的原理 / 118

8.2.2 神经网络中的非线性矫正 / 119

8.2.3 神经网络的参数设置 / 121

8.3 神经网络实例——手写识别 / 127

8.3.1 使用MNIST数据集 / 128

8.3.2 训练MLP神经网络 / 129

8.3.3 使用模型进行数字识别 / 130

8.4 小结 / 131



第9章 数据预处理、降维、特征提取及聚类——快
刀斩乱麻

9.1 数据预处理 / 134

9.1.1 使用StandardScaler进行数据预处理 / 134

9.1.2 使用MinMaxScaler进行数据预处理 / 135

9.1.3 使用RobustScaler进行数据预处理 / 136

9.1.4 使用Normalizer进行数据预处理 / 137

9.1.5 通过数据预处理提高模型准确率 / 138

9.2 数据降维 / 140

9.2.1 PCA主成分分析原理 / 140

9.2.2 对数据降维以便于进行可视化 / 142

9.2.3 原始特征与PCA主成分之间的关系 / 143

9.3 特征提取 / 144

9.3.1 PCA主成分分析法用于特征提取 / 145

9.3.2 非负矩阵分解用于特征提取 / 148

9.4 聚类算法 / 149

9.4.1 K均值聚类算法 / 150

9.4.2 凝聚聚类算法 / 153

9.4.3 DBSCAN算法 / 154

9.5 小结 / 157

第10章 数据表达与特征工程——锦上再添花

10.1 数据表达 / 160

10.1.1 使用哑变量转化类型特征 / 160

10.1.2 对数据进行装箱处理 / 162

10.2 数据“升维” / 166

10.2.1 向数据集添加交互式特征 / 166

10.2.2 向数据集添加多项式特征 / 170

10.3 自动特征选择 / 173

10.3.1 使用单一变量法进行特征选择 / 173



10.3.2 基于模型的特征选择 / 178

10.3.3 迭代式特征选择 / 180

10.4 小结 / 182

第11章 模型评估与优化——只有更好,没有最好

11.1 使用交叉验证进行模型评估 / 184

11.1.1 scikit-learn中的交叉验证法 / 184

11.1.2 随机拆分和“挨个儿试试” / 186

11.1.3 为什么要使用交叉验证法 / 188

11.2 使用网格搜索优化模型参数 / 188

11.2.1 简单网格搜索 / 189

11.2.2 与交叉验证结合的网格搜索 / 191

11.3 分类模型的可信度评估 / 193

11.3.1 分类模型中的预测准确率 / 194

11.3.2 分类模型中的决定系数 / 197

11.4 小结 / 198

第12章 建立算法的管道模型——团结就是力量

12.1 管道模型的概念及用法 / 202

12.1.1 管道模型的基本概念 / 202

12.1.2 使用管道模型进行网格搜索 / 206

12.2 使用管道模型对股票涨幅进行回归分析 / 209

12.2.1 数据集准备 / 209

12.2.2 建立包含预处理和MLP模型的管道模型 / 213

12.2.3 向管道模型添加特征选择步骤 / 214

12.3 使用管道模型进行模型选择和参数调优 / 216

12.3.1 使用管道模型进行模型选择 / 216

12.3.2 使用管道模型寻找更优参数 / 217

12.4 小结 / 220



第13章 文本数据处理——亲,见字如“数”

13.1 文本数据的特征提取、中文分词及词袋模型 / 222

13.1.1 使用CountVectorizer对文本进行特征提取 / 222

13.1.2 使用分词工具对中文文本进行分词 / 223

13.1.3 使用词袋模型将文本数据转为数组 / 224

13.2 对文本数据进一步进行优化处理 / 226

13.2.1 使用n-Gram改善词袋模型 / 226

13.2.2 使用tf-idf模型对文本数据进行处理 / 228

13.2.3 删除文本中的停用词 / 234

13.3 小结 / 236

第14章 从数据获取到话题提取——从“研究员”
到“段子手”

14.1 简单页面的爬取 / 238

14.1.1 准备Requests库和User Agent / 238

14.1.2 确定一个目标网站并分析其结构 / 240

14.1.3 进行爬取并保存为本地文件 / 241

14.2 稍微复杂一点的爬取 / 244

14.2.1 确定目标页面并进行分析 / 245

14.2.2 Python中的正则表达式 / 247

14.2.3 使用BeautifulSoup进行HTML解析 / 251

14.2.4 对目标页面进行爬取并保存到本地 / 256

14.3 对文本数据进行话题提取 / 258

14.3.1 寻找目标网站并分析结构 / 259

14.3.2 编写爬虫进行内容爬取 / 261

14.3.3 使用潜在狄利克雷分布进行话题提取 / 263

14.4 小结 / 265



第15章 人才需求现状与未来学习方向——你是不
是下一个“大牛”

15.1 人才需求现状 / 268

15.1.1 全球AI从业者达190万,人才需求3年翻8倍 / 268

15.1.2 AI人才需求集中于一线城市,七成从业者月薪过万 / 269

15.1.3 人才困境仍难缓解,政策支援亟不可待 / 269

15.2 未来学习方向 / 270

15.2.1 用于大数据分析的计算引擎 / 270

15.2.2 深度学习开源框架 / 271

15.2.3 使用概率模型进行推理 / 272

15.3 技能磨炼与实际应用 / 272

15.3.1 Kaggle算法大赛平台和OpenML平台 / 272

15.3.2 在工业级场景中的应用 / 273

15.3.3 对算法模型进行A/B测试 / 273

15.4 小结 / 274

参考文献 / 275

产品特色