机器学习正在迅速改变我们的世界。我们几乎每天都会读到机器学习如何改变日常的生活。如果你在淘宝或者*这样的电子商务网站购买商品,或者在爱奇艺或是腾讯视频这样的视频网站观看节目,甚至只是进行一次百度搜索,就已经触碰到了机器学习的应用。使用这些服务的用户会产生数据,这些数据会被收集,在进行预处理之后用来训练模型,而模型会通过这些数据来提供更好的用户体验。此外,目前还有很多使用机器学习技术的产品或服务即将在我们的生活当中普及,如能够解放双手的无人驾驶汽车、聪明伶俐的智能家居产品、善解人意的导购机器人等。可以说要想深入机器学习的应用开发当中,现在就是一个非常理想的时机。
本书内容涵盖了有监督学习、无监督学习、模型优化、自然语言处理等机器学习领域所必须掌握的知识,从内容结构上非常注重知识的实用性和可操作性。全书采用由浅入深、循序渐进的讲授方式,完全遵循和尊重初学者对机器学习知识的认知规律。本书适合有一定程序设计语言和算法基础的读者学习使用。
人工智能,火了!计算机是由程序驱动的,人工智能不过是一些特殊的算法。只要你有一些程序设计语言的基础,跟随本书,你也能进入人工智能的世界,成为一名人工智能应用的开发者。
本书特色
1. 内容实用实在、详略得当,讲授符合初学者的认知规律
本书内容涵盖了有监督学习、无监督学习、模型优化、自然语言处理等机器学习领域所必须掌握的知识,从内容结构上非常注重知识的实用性和可操作性。必须掌握的细节处绝不吝惜笔墨、手把手细致到每一次的鼠标点击;仅需要大致了解处绝不铺张浪费纸张、整体结构的描述提纲挈领。这样的安排注重了对初学阶段必备知识的深入了解,大致了解的知识也能够有所认识,这种由浅入深、循序渐进的讲授完全是遵循和尊重了初学者对机器学习知识的认知规律。
2. 行文幽默诙谐,以实例引导全程,特别适合初学者阅读
本书介绍的基本理论知识、用于分类的机器学习算法、用于回归的机器学习算法、数据预处理、数据表达与特征工程等,都是使用非常贴近生活场景的实例来引导的,这样就避免了知识讲述过于抽象,非常易于理解。同时,作者以幽默诙谐,贴近时代的语言对这些知识进行生动、通俗的一一讲解,犹如一位你的老朋友,帮助你缩短入门机器学习的时间。纵观全书,作者将大学生小 C 追求女神以及帮助他的朋友处理日常问题同机器学习的理论与操作进行对比介绍,这就使得整个学习过程变得简单、生动起来。
3. 配套的人才培养与引入计划,帮助读者将学习成果转化为真正的生产力
在笔者过去的工作当中,累积了数量可观的各大互联网公司招聘通道资源,以及诸多猎头资源,可以帮助学有所长的读者快速进入一个实际操作的场景中进一步提高自己的实操能力。除此之外,笔者和国内大部分相关的产业发展部门有着密切的联系,对于有志于在人工智能领域创业的创业者来说,也能够帮助其对接政策资源,帮助大家在创业过程中得到有关部门的支持,从而使得创业之路变得不那么坎坷。
段小手,君兮科技创始人,毕业于北京大学。具有10余年国内一线互联网/电子商务公司项目管理经验。其负责的跨境电子商务项目曾获得国家发改委电子商务示范项目中关村现代服务业试点项目北京市信息化基础设施提升项目北京市外贸综合公共平台等专项政策支持。目前重点研究领域为机器学习和深度学习等方面。
目
录
第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