图书简介:
目 录
第1章 机器学习概述 1
1.1 机器学习的发展:人工智能中的机器学习 1
1.1.1 符号主义人工智能 2
1.1.2 基于机器学习的人工智能 2
1.2 机器学习的核心:数据和数据建模 4
1.2.1 机器学习的对象:数据集 4
1.2.2 机器学习的任务:数据建模 6
1.3 机器学习的典型应用 11
1.3.1 机器学习的典型行业应用 11
1.3.2 机器学习在客户细分中的应用 12
1.3.3 机器学习在客户流失分析中的应用 13
1.3.4 机器学习在营销响应分析中的应用 14
1.3.5 机器学习在交叉销售中的应用 15
1.3.6 机器学习在欺诈甄别中的应用 16
本章总结 16
本章习题 16
第2章 Python机器学习基础 17
2.1 Python:机器学习的首选工具 17
2.2 Python的集成开发环境:Anaconda 18
2.2.1 Anaconda的简介 19
2.2.2 Anaconda Prompt的使用 19
2.2.3 Spyder的使用 20
2.2.4 Jupyter Notebook的使用 22
2.3 Python第三方包的引用 23
2.4 NumPy使用示例 23
2.4.1 NumPy数组的创建和访问 24
2.4.2 NumPy的计算功能 26
2.5 Pandas使用示例 28
2.5.1 Pandas的序列和索引 28
2.5.2 Pandas的数据框 29
2.5.3 Pandas的数据加工处理 30
2.6 NumPy和Pandas的综合应用:空气质量监测数据的预处理和基本分析 32
2.6.1 空气质量监测数据的预处理 32
2.6.2 空气质量监测数据的基本分析 34
2.7 Matplotlib的综合应用:空气质量监测数据的图形化展示 37
2.7.1 AQI的时间序列变化特点 37
2.7.2 AQI的分布特征及相关性分析 38
本章总结 40
本章相关函数列表 40
本章习题 47
第3章 数据预测与预测建模 48
3.1 从线性回归模型说起 49
3.1.1 线性回归模型的含义 49
3.1.2 线性回归模型的几何理解 50
3.1.3 线性回归模型的评价 50
3.1.4 Python应用实践:PM2.5浓度预测 51
3.2 认识线性分类模型 56
3.2.1 线性分类模型的含义 56
3.2.2 线性分类模型的几何理解 58
3.2.3 线性分类模型的评价 60
3.2.4 Python应用实践:空气质量等级预测 62
3.3 从线性预测模型到非线性预测模型 67
3.4 预测模型的参数估计 68
3.4.1 损失函数与有监督学习 68
3.4.2 参数搜索策略 70
3.5 预测模型的选择 72
3.5.1 泛化误差的估计 72
3.5.2 Python模拟和启示:理解泛化误差 75
3.5.3 预测模型过拟合问题 78
3.5.4 模型选择:偏差和方差 79
本章总结 82
本章相关函数列表 83
本章习题 83
第4章 数据预测建模:贝叶斯分类器 84
4.1 贝叶斯概率和贝叶斯法则 84
4.1.1 贝叶斯概率 84
4.1.2 贝叶斯法则 85
4.2 朴素贝叶斯分类器 85
4.2.1 从顾客行为分析角度看朴素贝叶斯分类器 85
4.2.2 Python模拟和启示:认识朴素贝叶斯分类器的分类边界 88
4.2.3 Python应用实践:空气质量等级预测 91
4.3 朴素贝叶斯分类器在文本分类中的应用 93
4.3.1 Python文本数据预处理:文本分词和量化计算 94
4.3.2 Python文本描述性分析:词云图和文本相似性 97
4.3.3 Python文本分析综合应用:裁判文书的要素提取 99
4.4 贝叶斯参数估计简介* 102
4.4.1 从科比投篮分析角度看贝叶斯参数估计的基本思想 102
4.4.2 共轭先验分布 103
4.4.3 Python应用实践:科比投篮命中率的研究 106
本章总结 108
本章相关函数列表 108
本章习题 109
第5章 数据预测建模:近邻分析 110
5.1 近邻分析:K-近邻法 110
5.1.1 距离:K-近邻法的近邻度量 111
5.1.2 参数K:1-近邻法和K-近邻法 112
5.2 回归预测中的K-近邻法 113
5.2.1 Python模拟和启示:认识K-近邻回归线 113
5.2.2 Python模拟和启示:认识K-近邻回归面 115
5.3 分类预测中的K-近邻法 117
5.3.1 基于1-近邻法和K-近邻法的分类 117
5.3.2 Python模拟和启示:参数K和分类边界 118
5.4 基于观测相似性的加权K-近邻法 120
5.4.1 加权K-近邻法的权重 121
5.4.2 Python模拟和启示:认识加权K-近邻分类边界 123
5.5 K-近邻法的Python应用实践 124
5.5.1 空气质量等级的预测 124
5.5.2 国产电视剧大众评分的预测 126
5.6 K-近邻法的适用性探讨* 127
本章总结 129
本章相关函数列表 130
本章习题 130
第6章 数据预测建模:决策树 131
6.1 决策树的基本概念 131
6.1.1 什么是决策树 131
6.1.2 决策树的深层含义 133
6.2 回归预测中的决策树 134
6.2.1 决策树的回归面 134
6.2.2 Python模拟和启示:树深度对回归面的影响 135
6.3 分类预测中的决策树 136
6.3.1 决策树的分类边界 137
6.3.2 Python模拟和启示:树深度对分类边界的影响 137
6.4 决策树的生长和剪枝 139
6.4.1 决策树的生长 140
6.4.2 决策树的剪枝 141
6.5 经典决策树算法:CART 142
6.5.1 CART的生长 142
6.5.2 CART的后剪枝 145
6.6 决策树的Python应用实践 148
6.6.1 PM2.5浓度的预测 148
6.6.2 空气质量等级的预测 149
6.6.3 药物适用性研究 151
6.7 决策树的高方差性* 153
本章总结 154
本章相关函数列表 154
本章习题 155
第7章 数据预测建模:集成学习 156
7.1 集成学习概述 156
7.1.1 高方差性问题的解决途径 157
7.1.2 从弱模型到强模型的构建 157
7.2 基于重抽样自举法的集成学习 158
7.2.1 重抽样自举法 158
7.2.2 袋装法的基本思想 158
7.2.3 随机森林的基本思想 160
7.2.4 Python应用实践:基于袋装法和随机森林预测PM2.5浓度 162
7.3 从弱模型到强模型的构建:提升法 165
7.3.1 提升法的基本思路 165
7.3.2 Python模拟和启示:弱模型联合成为强模型 166
7.3.3 分类预测中的提升法:AdaBoost.M1算法 168
7.3.4 Python模拟和启示:认识AdaBoost.M1算法中高权重的样本观测 171
7.3.5 回归预测中的提升法 173
7.3.6 Python应用实践:基于AdaBoost预测PM2.5浓度 174
7.3.7 提升法的推广算法* 176
7.4 梯度提升决策树 179
7.4.1 梯度提升算法 179
7.4.2 梯度提升回归树 183
7.4.3 Python模拟和启示:认识梯度提升回归树 184
7.4.4 梯度提升分类树 185
7.4.5 Python模拟和启示:认识梯度提升分类树 186
7.5 XGBoost算法 188
7.5.1 XGBoost算法的目标函数 188
7.5.2 目标函数的近似表达 189
7.5.3 决策树的求解 190
7.5.4 Python应用实践:基于XGBoost算法预测空气质量等级 191
本章总结 194
本章相关函数列表 194
本章习题 195
第8章 数据预测建模:人工神经网络 197
8.1 人工神经网络的基本概念 198
8.1.1 人工神经网络的基本构成 198
8.1.2 人工神经网络节点的功能 199
8.2 感知机网络 200
8.2.1 感知机网络中的节点 200
8.2.2 感知机网络节点中的加法器 201
8.2.3 感知机网络节点中的激活函数 202
8.2.4 Python模拟和启示:认识激活函数 203
8.2.5 感知机网络的权重训练 206
8.3 多层感知机网络 211
8.3.1 多层感知机网络的结构 211
8.3.2 多层感知机网络中的隐藏节点 213
8.3.3 Python模拟和启示:认识隐藏节点 215
8.4 反向传播算法 218
8.4.1 反向传播算法的基本思想 218
8.4.2 局部梯度和连接权重更新 218
8.5 多层神经网络的其他问题* 220
8.6 人工神经网络的Python应用实践 221
8.6.1 手写体邮政编码的识别 221
8.6.2 PM2.5浓度的回归预测 224
本章总结 225
本章相关函数列表 225
本章习题 226
第9章 数据预测建模:支持向量机 227
9.1 支持向量分类概述 228
9.1.1 支持向量分类的基本思路 228
9.1.2 支持向量分类的三种情况 230
9.2 完全线性可分下的支持向量分类 231
9.2.1 完全线性可分下的超平面 231
9.2.2 参数求解和分类预测 233
9.2.3 Python模拟和启示:认识支持向量 236
9.3 广义线性可分下的支持向量分类 238
9.3.1 广义线性可分下的超平面 238
9.3.2 广义线性可分下的误差惩罚和目标函数 239
9.3.3 Python模拟和启示:认识惩罚参数C 240
9.3.4 参数求解和分类预测 242
9.4 线性不可分下的支持向量分类 243
9.4.1 线性不可分问题的一般解决方式 243
9.4.2 支持向量分类克服维灾难的途径 244
9.4.3 Python模拟和启示:认识核函数 246
9.5 支持向量回归概述* 249
9.5.1 支持向量回归的基本思路 249
9.5.2 支持向量回归的目标函数和约束条件 251
9.5.3 Python模拟和启示:认识参数? 253
9.6 支持向量机的Python应用实践:老人风险体位预警 254
9.6.1 示例背景和数据说明 255
9.6.2 Python实现 255
本章总结 260
本章相关函数列表 260
本章习题 260
第10章 特征选择:过滤、包裹和嵌入策略 261
10.1 过滤策略下的特征选择 262
10.1.1 低方差过滤法 263
10.1.2 高相关过滤法中的方差分析 264
10.1.3 高相关过滤法中的卡方检验 268
10.1.4 Python应用实践:过滤策略下手写体邮政编码数字的特征选择 270
10.1.5 其他高相关过滤法* 272
10.2 包裹策略下的特征选择 274
10.2.1 包裹策略的基本思路 274
10.2.2 递归式特征剔除算法 275
10.2.3 基于交叉验证的递归式特征剔除算法 276
10.2.4 Python应用实践:包裹策略下手写体邮政编码数字的特征选择 276
10.3 嵌入策略下的特征选择 278
10.3.1 岭回归和Lasso回归 278
10.3.2 弹性网回归 282
10.3.3 Python应用实践:嵌入策略下手写体邮政编码数字的特征选择 283
本章总结 289
本章相关函数列表 289
本章习题 289
第11章 特征提取:空间变换策略 290
11.1 主成分分析 291
11.1.1 主成分分析的基本出发点 291
11.1.2 主成分分析的基本原理 292
11.1.3 确定主成分 295
11.1.4 Python模拟与启示:认识主成分 296
11.2 矩阵的奇异值分解 298
11.2.1 奇异值分解的基本思路 298
11.2.2 奇异值分解的Python应用实践:脸部数据特征提取 299
11.3 核主成分分析* 301
11.3.1 核主成分分析的出发点 301
11.3.2 核主成分分析的基本原理 303
11.3.3 Python模拟和启示:认识核主成分 305
11.4 因子分析 307
11.4.1 因子分析的基本出发点 308
11.4.2 因子分析的基本原理 309
11.4.3 Python模拟和启示:认识因子分析的计算过程 312
11.4.4 因子分析的其他问题 316
11.4.5 因子分析的Python应用实践:空气质量综合评测 318
本章总结 320
本章相关函数列表 321
本章习题 321
第12章 揭示数据内在结构:聚类分析 322
12.1 聚类分析概述 322
12.1.1 聚类分析的目的 322
12.1.2 聚类算法概述 324
12.1.3 聚类解的评价 325
12.1.4 聚类解的可视化 328
12.2 基于质心的聚类模型:K-均值聚类 329
12.2.1 K-均值聚类基本过程 329
12.2.2 基于K-均值聚类的类别预测 331
12.2.3 Python模拟和启示:认识K-均值聚类中的聚类数目K 331
12.3 基于连通性的聚类模型:系统聚类 335
12.3.1 系统聚类的基本过程 335
12.3.2 系统聚类中距离的连通性度量 335
12.3.3 Python模拟和启示:认识系统聚类中的聚类数目K 336
12.4 基于高斯分布的聚类模型:EM聚类* 340
12.4.1 出发点:有限混合分布 341
12.4.2 EM聚类算法 342
12.4.3 Python模拟和启示:认识EM聚类 345
12.5 聚类分析的Python应用实践:环境污染的区域特征分析 348
本章总结 351
本章相关函数列表 351
本章习题 352
第13章 揭示数据内在结构:特色聚类 353
13.1 基于密度的聚类:DBSCAN 353
13.1.1 DBSCAN中的相关概念 353
13.1.2 DBSCAN过程 355
13.1.3 Python模拟和启示:认识DBSCAN的异形聚类特点 355
13.2 Mean-Shift聚类* 358
13.2.1 什么是核密度估计 359
13.2.2 核密度估计在Mean-Shift聚类中的意义 361
13.2.3 Mean-Shift聚类过程 362
13.2.4 Python模拟与启示:认识Mean-Shift聚类中的核宽 363
13.3 BIRCH 365
13.3.1 BIRCH的特点 365
13.3.2 BIRCH算法中的聚类特征树 365
13.3.3 BIRCH的基本思路 368
13.3.4 Python模拟和启示:认识BIRCH的特点 370
13.4 特色聚类的Python应用实践:批发商的市场细分 374
13.4.1 数据说明 374
13.4.2 Python实现 375
本章总结 377
本章相关函数列表 377
本章习题 378
展开
前 言
机器学习是数据科学中数据建模与分析的重要方法,既是当前大数据分析的基础和主流工具,也是迈向深度学习和通往人工智能的必经之路。Python是数据科学实践中最常用的计算机语言,是当前最流行的机器学习实现工具,并且因在理论和应用中的不断发展完善而拥有长期竞争优势。因此,学好机器学习的理论方法,掌握Python这个实用工具,是成长为数据科学人才所必需的。
“实施科教兴国战略,强化现代化建设人才支撑”的论述中强调,教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。近年来,人工智能及机器学习已经成为推动全球科技发展的强大引擎之一,因此相关人才培养和配套教材体系建设显得尤为重要。
作者将多年来在机器学习、数据挖掘、统计学、计算机语言和统计应用软件等课程中的教学经验与科研实践经验进行归纳总结,精心编写了这本实用的优质图书,希望将经验和心得分享给广大从事数据科学领域工作的同人,以及从事Python机器学习教与学的高校师生们。
本书的特点如下。
1.对原理部分进行清晰的讲解
机器学习是一门交叉性很强的学科,涉及统计学、数据科学、计算机科学等多个领域的知识。作者认为,读者要掌握每个模型或算法的精髓和实践,需要由浅入深地关注其直观含义、方法原理、公式推导、算法实现和适用场景等多个递进层面。本书正是基于这样的层面展开论述的。
2.对实践部分进行全面的实现
机器学习又是一门实操性很强的学科。作者认为,读者需要边学边做才能获得更加深刻的认知。正因如此,本书在各章中设置了Python编程示例。一方面,通过Python代码和可再现的各种图形,帮助读者理解抽象理论背后的直观含义和方法原理。另一方面,通过Python代码,帮助读者掌握和拓展机器学习的算法实现与应用实践。全书所有模型和算法都有相应的Python代码,每章结尾还给出了本章总结、本章相关函数列表及本章习题。
3.本书适合作为机器学习或相关课程的教学及自学用书
本书将引领读者进入Python机器学习领域,理论上突出可读性并兼具知识深度和广度,实践上强调可操作性并兼具应用广泛性。本书采用一种有效而独特的方式讲解机器学习:首先,以数据建模与分析中的问题为导向,依知识点的难度由浅入深地讨论众多主流机器学习算法的核心原理;其次,通过Python编程和可视化图形,直观展示抽象理论背后的精髓和朴素道理;最后,通过应用实践示例强化算法的应用实践。
在章节安排上,本书共分为13章。在第1章以机器学习概述开篇和第2章对Python机器学习基础知识进行必要的提炼与总结后,第3章集中对数据预测与预测建模的各个方面进行了总览性论述,旨在帮助读者把握机器学习的整体知识框架。第4~9章按照由易到难的内在逻辑,顺序展开数据预测建模方法的讨论,涉及贝叶斯分类器、近邻分析、决策树、集成学习、人工神经网络、支持向量机等经典机器学习算法。第10、11章聚焦数据建模中不可或缺的重要环节,即特征工程,分别论述了特征选择和特征提取。第12、13章关注机器学习中的聚类算法。
在内容设计上,各章均由基本原理、Python模拟和启示、Python应用实践、本章总结、本章相关函数列表及本章习题等部分组成。基本原理部分,详细论述机器学习算法,旨在使读者能够知其然更知其所以然;Python模拟和启示部分,通过数据模拟直观展示抽象理论背后的精髓和朴素道理,从而帮助读者进一步加深对理论精髓的理解;Python应用实践部分,展现机器学习在环境污染、法律裁决、大众娱乐、医药健康、人工智能和商业分析等众多领域的应用价值,旨在提升读者的算法实践水平;本章总结、本章相关函数列表及本章习题部分,简要重述本章理论,归纳本章所涉及的Python函数,并通过习题强化知识要点和丰富Python应用实践内容。
本书第1版自问世以来受到了广大读者的欢迎和喜爱。在广泛听取高校老师和学生,以及其他读者的意见和建议的基础上,我们修订出版了第2版,修订说明如下。
1.对第1版的章节顺序进行了较大调整
为更好地借助Python编程加深读者对机器学习理论的直观理解,我们将第1版集中编排的Python编程章节进行了拆解,分别将其调整到相应理论讲解的后面,以便于读者阅读和理解。同时,调整了部分章节理论讲解的逻辑顺序,使得理论论述更加有层次、更加清晰。
2.每章分别设置了Python模拟和启示、Python应用实践等部分
设置Python模拟和启示部分的目的是通过对较为理想的模拟数据的建模分析,更好地突显数据建模方法的理论精髓和特色,以便于读者理解。设置Python应用实践部分的目的是展示理论方法的实际应用价值,以便于读者举一反三地应用。为此,我们将第1版集中编排的Python代码分门别类地分章节重新编排。
3.对关键Python代码进行了解释说明
增加对关键Python代码的解释说明,一方面便于读者了解Python函数中核心参数的含义,另一方面可帮助读者厘清编程思路,以便更好地了解相关理论的深层内涵。为此,我们以注释的形式对第1版中的Python代码增加了说明。同时为节约篇幅,第2版中略去了部分重复出现的代码,完整Python代码参见本书的配套电子资源,读者可登录华信教育资源网(www.hxedu.com.cn)免费下载。
4.设置了选讲章节
我们希望以每周3或4课时共计约17周的课时数安排本书体量,但第1版的体量偏大。为此,我们在第2版中设置了选讲章节(目录中带星号的为选讲章节),以便于任课教师依不同专业学生的先修课内容或知识点难度,有参考地删减课程内容。
5.优化了部分Python代码
第2版对Python代码进行了重新梳理,从全书角度统一了Python代码的书写风格,优化了部分Python代码的写法,并对第1版中的Python代码进行了适当删减和压缩。
总之,本书无论从内容设计上还是从体量安排上,都更贴近数据科学与大数据技术的专业课程设置,也可满足人工智能、统计学及计算机应用等相关专业课程的要求。此外,本书也可作为Python机器学习研究应用人员的参考用书。
在本书编写过程中,陈欢歌老师参与了部分章节的编写和文献资料与数据的整理,电子工业出版社高等教育分社的秦淑灵老师从选题策划到章节安排都提出了宝贵建议,在此一并表示感谢。
在以大数据与人工智能技术为代表的新一轮科技浪潮的推动下,Python编程与机器学习也迅猛发展并快速迭代,形成了方法丰富、分支多样、应用广泛的整体态势。因此,想要全面而深入地掌握其全貌,需要不断学习与完善、不断跟进与提高。希望各位读者不吝赐教,对本书中的疏漏之处提出宝贵意见。
作者
中国人民大学应用统计研究中心
中国人民大学统计学院
展开