
当前,人工智能正在改变世界,人工智能已经上升至国家战略高度,面对人工智能在教育界掀起的层层浪花,本书针对人工智能知识谱系庞杂的问题,聚集人工智能教育在阶段性教育中出现的断层现象,基于信息技术学科教育教学研究实践,以机器学习K近邻、决策树、随机森林、支持向量机、神经网络等18个经典的算法原理解析和具体应用为切入点,以Python编程IDE为操作工具,通过理论阐释、案例分析、编程实践,带领读者拨开迷雾,明晰路径,体验机器学习算法的奇妙,领略人工智能科学的精妙,获取人工智能“学什么、怎么学、怎么用”的方法。
本书内容包括概述、分类、回归、聚类、关联分析、数据预处理和人工神经网络等内容。算法原理解析中所涉及的教学等晦涩内容都以知识窗的形式一一讲解,表述通俗易懂;算法具体应用中的案例典型生动,编程代码具体详细,力求让人工智能思想落地,直观地展现于读者面前。
本书主要面向基础教育阶段信息技术学科教师、高中学生以及计算机相关专业的大中专学生和对人工智能领域感兴趣的大众读者,也可作为人工智能课程的学习材料。
2019年的一天,一位信息技术教师和我在办公室聊到人工智能的话题,他提出一个疑问:“我很想在学校给孩子们讲一些诸如机器学习、神经网络之类的人工智能算法知识,但是我找遍整个书店都没有找到合适的书籍,那些书不是一味地讲算法原理,就是直接列出代码,感觉很难入门。您有没有好的书推荐?”我踌躇了一会儿,说:“说实话,我最近也在找这方面的书,但总觉得与自己所期望的书有一些落差。我之前购买和阅读的人工智能算法方面的书籍中,大多使用非常深奥的数学公式,或者是书中语言表达枯燥,晦涩难懂……”之后,我也曾给这位老师推荐过一些人工智能方面的书目,他的反馈仍然是不太懂,很难深入学习。
这一点儿也不让人意外。人工智能技术是当今人类文明高度发展的产物,其背后深奥的算法原理、多如牛毛的数学公式,着实让人望而生畏,踌躇不前。我从事基础教育研究工作多年,也确实熟悉身处教学一线的信息技术教师的情况,他们大多缺乏扎实的数学功底以及深入的算法知识,要想快速切入人工智能学习与教学工作,难度是可想而知的。
如何才能让长期工作在教学一线的信息技术教师快速搭上这辆人工智能班车,或者让对人工智算法有兴趣的读者拥有一本完美的入门手册呢?带着这个疑惑,我邀请了几位志同道合的老友,试图通过大家的努力破解这个难题,这也是我们写这本书的初衷。
本书通过“原理解析”+“问题实例”+“程序源码”来介绍每一个算法。算法中涉及的数学公式和符号,我们都以知识窗的形式一一讲解,节省了读者临时去查阅相关数学书籍的时间。书中内容,力求人人能读得懂,也有兴趣去读懂,非常适合高中生、大中专计算机专业学生、基础教育阶段信息技术学科教师,或者是对人工智能算法感兴趣的读者阅读。
话又说回来,人人能读得懂,并不意味着书中内容简单,而无学习的必要。本书中,我们从算法实现的原理入手,娓娓道来,尽量用浅显幽默的语言来揭示机器学习算法背后的数学逻辑,并对每个算法进行了深入的剖析,力图使每位读者都能对每一个算法有较为深入的理解,而不只是简单地通过调用第三方类库去解决问题,成为一个“调包侠”。当你知道了每一个算法实现的真相之后,再用它们去解决问题就会更加从容不迫了。
当然,本书也不只是关注算法原理的解析。我们知道,计算机作为一门实践性较强的学科,更强调的是动手能力,若没有真正实现程序运行,很难真正理解算法的精髓。因此,在本书中,我们设计了大量的问题实例,并采用当前非常流行、很容易上手的 Python语言来编写每个实例代码,以期让每位读者能够尽快领略机器学习的精妙之处,体会算法之美。
众所周知,写书是一项极其琐碎、繁重的工作,尽管我们倾尽全力力争使本书接近完美,但由于自身水平有限,书中难免会有疏漏和瑕疵,还望读者们不吝赐教,提出宝贵的意见和建议。
宁可为
2022年 2月凌晨于乌鲁木齐
第一部分 概 述
第1 章 人工智能基础… …………………………………………………………………… 2
1. 1 人工智能 …………………………………………………………………………… 2
1. 1. 1 人工智能的由来 …………………………………………………………… 2
1. 1. 2 人工智能学科 ……………………………………………………………… 3
1. 2 机器学习 …………………………………………………………………………… 6
1. 2. 1 机器学习简介 ……………………………………………………………… 6
1. 2. 2 机器学习的类别 …………………………………………………………… 7
1. 2. 3 机器学习的应用 …………………………………………………………… 9
本章小结 ………………………………………………………………………………… 10
第2 章 Python 环境搭建……………………………………………………………………11
2. 1 软件的下载与安装 ………………………………………………………………… 11
2. 1. 1 平台一:海龟编辑器 ……………………………………………………… 11
2. 1. 2 平台二: PyCharm ………………………………………………………… 13
2. 2 必需库功能简介 …………………………………………………………………… 20
2. 2. 1 numpy——基础科学计算库 ……………………………………………… 20
2. 2. 2 SciPy——科学计算工具集 ……………………………………………… 22
2. 2. 3 Pandas——数据分析利器 ………………………………………………… 23
2. 2. 4 matplotlib——图形绘制法宝 ……………………………………………… 26
IV 走进人工智能——机器学习原理解析与应用
2. 2. 5 Sklearn——机器学习神器 ………………………………………………… 28
本章小结 ………………………………………………………………………………… 30
第二部分 分 类
第3 章 K 近邻算法………………………………………………………………………… 33
3. 1 K 近邻算法的原理 ………………………………………………………………… 33
3. 2 K 近邻算法的应用 ………………………………………………………………… 37
3. 2. 1 K 近邻算法的常用参数 …………………………………………………… 37
3. 2. 2 应用案例一:小说分类 …………………………………………………… 37
3. 2. 3 应用案例二:糖尿病诊断 ………………………………………………… 39
3. 3 K 近邻算法的特点 ………………………………………………………………… 40
本章小结 ………………………………………………………………………………… 41
第4 章 决策树… ………………………………………………………………………… 42
4. 1 决策树的原理 ……………………………………………………………………… 42
4. 1. 1 决策树的分类过程 ………………………………………………………… 42
4. 1. 2 决策树的具体组成 ………………………………………………………… 43
4. 1. 3 构建决策树的相关概念 …………………………………………………… 44
4. 2 决策树的构建 ……………………………………………………………………… 47
4. 2. 1 建树 ………………………………………………………………………… 47
4. 2. 2 剪枝 ………………………………………………………………………………… 49
4. 3 决策树的应用 ……………………………………………………………………… 50
4. 3. 1 环境补充搭建 ……………………………………………………………… 50
4. 3. 2 决策树的常用参数 ………………………………………………………… 50
4. 3. 3 应用案例:影院会员观影喜好分析 ……………………………………… 51
4. 4 决策树的特点 ……………………………………………………………………… 53
本章小结 ………………………………………………………………………………… 53
第5 章 随机森林… ……………………………………………………………………… 54
5. 1 随机森林的原理 …………………………………………………………………… 54
5. 1. 1 集成学习 …………………………………………………………………… 54
5. 1. 2 随机森林的分类过程 ……………………………………………………… 55
V
5. 2 随机森林的构建 …………………………………………………………………… 57
5. 2. 1 训练样本随机采样 ………………………………………………………… 58
5. 2. 2 样本特征随机选择 ………………………………………………………… 59
5. 3 随机森林的应用 …………………………………………………………………… 59
5. 3. 1 环境补充搭建 ……………………………………………………………… 59
5. 3. 2 RandomForestClassifier 类 ………………………………………………… 60
5. 3. 3 应用案例一:红酒分类——决策树与随机森林分类器效果对比 ……… 60
5. 3. 4 应用案例二:影院会员观影喜好分析 …………………………………… 61
5. 4 随机森林的特点 …………………………………………………………………… 67
本章小结 ………………………………………………………………………………… 68
第6 章 支持向量机… …………………………………………………………………… 69
6. 1 支持向量机的逻辑原理 …………………………………………………………… 69
6. 2 支持向量机的数学原理解析 ……………………………………………………… 71
6. 2. 1 线性可分的情况 …………………………………………………………… 71
6. 2. 2 近似线性可分的情况 ……………………………………………………… 73
6. 2. 3 线性不可分的情况 ………………………………………………………… 74
6. 3 支持向量机中的核函数 …………………………………………………………… 76
6. 3. 1 支持向量机中常用核函数介绍 …………………………………………… 77
6. 3. 2 支持向量机中核函数的应用 ……………………………………………… 78
6. 4 支持向量机的应用 ………………………………………………………………… 80
6. 4. 1 SVM 类的常用参数 ……………………………………………………… 80
6. 4. 2 应用案例:情绪分类 ……………………………………………………… 80
本章小结 ………………………………………………………………………………… 84
第7 章 贝叶斯算法… …………………………………………………………………… 85
7. 1 贝叶斯算法的原理 ………………………………………………………………… 85
7. 1. 1 贝叶斯公式 ………………………………………………………………… 85
7. 1. 2 贝叶斯算法的原理(以朴素贝叶斯算法为例) ………………………… 89
7. 1. 3 贝叶斯算法的类别 ………………………………………………………… 90
7. 2 贝叶斯算法的应用 ………………………………………………………………… 91
7. 2. 1 调用方法 …………………………………………………………………… 91
7. 2. 2 应用案例:识别毒蘑菇 …………………………………………………… 91
VI 走进人工智能——机器学习原理解析与应用
7. 3 贝叶斯算法的特点 ………………………………………………………………… 93
本章小结 ………………………………………………………………………………… 94
第三部分 回 归
第8 章 线性回归… ……………………………………………………………………… 97
8. 1 一元线性回归的原理 ……………………………………………………………… 98
8. 2 一元线性回归的应用 …………………………………………………………… 100
8. 2. 1 LinearRegression 类的常用参数 ………………………………………… 100
8. 2. 2 应用案例:房屋翻修成本预测 ………………………………………… 101
8. 3 多元线性回归的原理 …………………………………………………………… 103
8. 4 多元线性回归的应用 …………………………………………………………… 105
8. 5 线性回归算法的特点 …………………………………………………………… 107
本章小结 ……………………………………………………………………………… 108
第9 章 多项式回归… ………………………………………………………………… 109
9. 1 一元多项式回归的原理 ………………………………………………………… 110
9. 2 一元多项式回归的应用 ………………………………………………………… 114
9. 2. 1 PolynomialFeatures 类的常用参数 ……………………………………… 114
9. 2. 2 应用案例:红酒价值预测 ……………………………………………… 114
9. 3 多元多项式回归的原理 ………………………………………………………… 117
9. 4 多元多项式回归的应用 ………………………………………………………… 119
9. 5 多项式回归的特点 ……………………………………………………………… 120
本章小结 ……………………………………………………………………………… 120
第10 章 LASSO 回归与岭回归… …………………………………………………… 122
10. 1 L1 范数正则化——LASSO 回归 …………………………………………… 123
10. 1. 1 LASSO 回归中的alpha 参数调节 …………………………………… 125
10. 1. 2 LASSO 类的常用参数 ……………………………………………… 125
10. 1. 3 应用案例:对糖尿病数据集进行拟合 …………………………… 126
10. 2 L2 范数正则化——岭回归 …………………………………………………… 130
10. 2. 1 岭回归中的alpha 参数调节 ………………………………………… 131
10. 2. 2 Ridge 类的常用参数 ………………………………………………… 132
VII
10. 2. 3 应用案例:对糖尿病数据集进行拟合 …………………………… 132
10. 3 LASSO 回归与岭回归的异同 ………………………………………………… 137
10. 3. 1 LASSO 回归与岭回归的共同点 …………………………………… 137
10. 3. 2 LASSO 回归与岭回归的区别 ……………………………………… 137
本章小结 ……………………………………………………………………………… 137
第11 章 逻辑回归……………………………………………………………………… 138
11. 1 逻辑回归的原理 ……………………………………………………………… 139
11. 2 逻辑回归的应用 ……………………………………………………………… 143
11. 2. 1 逻辑回归算法的常用参数 ………………………………………… 143
11. 2. 2 应用案例:鸢尾花分类 …………………………………………… 144
11. 3 逻辑回归实现多分类的原理 ………………………………………………… 145
11. 3. 1 OVR/A(One Vs Rest/All) ………………………………………… 146
11. 3. 2 OVO(One Vs One) ………………………………………………… 147
11. 4 多分类逻辑回归的应用 ……………………………………………………… 148
11. 5 逻辑回归的特点 ……………………………………………………………… 150
本章小结 ……………………………………………………………………………… 150
第12 章 模型评估与优化……………………………………………………………… 152
12. 1 交叉验证 ……………………………………………………………………… 152
12. 1. 1 K 折交叉验证的原理 ………………………………………………… 154
12. 1. 2 交叉验证法的具体应用 ……………………………………………… 155
12. 1. 3 留一交叉验证法 ……………………………………………………… 157
12. 2 分类模型的可信度评估 ………………………………………………………… 158
12. 2. 1 混淆矩阵 ……………………………………………………………… 159
12. 2. 2 分类系统的评价指标 ………………………………………………… 160
12. 2. 3 应用案例:识别乳腺癌 ……………………………………………… 162
12. 3 回归模型的可信度评估 ……………………………………………………… 163
12. 3. 1 平均绝对误差 ………………………………………………………… 164
12. 3. 2 均方误差 ……………………………………………………………… 164
12. 3. 3 均方根误差 …………………………………………………………… 165
12. 3. 4 R2 ……………………………………………………………………… 166
12. 3. 5 应用案例:波士顿房价预测 ………………………………………… 166
12. 4 超参数调优 …………………………………………………………………… 168
VIII 走进人工智能——机器学习原理解析与应用
12. 4. 1 简单网格搜索来寻找超参数 ……………………………………… 168
12. 4. 2 与交叉验证结合的网格搜索 ……………………………………… 170
本章小结 ……………………………………………………………………………… 172
第四部分 聚 类
第13 章 物以类聚:K 均值聚类… …………………………………………………… 175
13. 1 K 均值算法的原理 …………………………………………………………… 175
13. 1. 1 K 均值算法的基本思想 …………………………………………… 176
13. 1. 2 算法基本过程 ……………………………………………………… 177
13. 2 K 均值算法的应用 …………………………………………………………… 178
13. 2. 1 KMeans 类的常用参数 ……………………………………………… 178
13. 2. 2 应用案例一:鸢尾花的聚类 ……………………………………… 179
13. 2. 3 应用案例二:甜西瓜的由来(一) ………………………………… 181
13. 3 K 均值算法的特点 …………………………………………………………… 184
本章小结 ……………………………………………………………………………… 184
第14 章 DBSCAN 聚类……………………………………………………………… 185
14. 1 DBSCAN 算法的原理 ………………………………………………………… 186
14. 1. 1 DBSCAN 算法的核心概念 ………………………………………… 186
14. 1. 2 DBSCAN 算法的基本过程 ………………………………………… 187
14. 2 DBSCAN 算法的应用 ………………………………………………………… 189
14. 2. 1 DBSCAN 类的常用参数 ……………………………………………… 189
14. 2. 2 应用案例一:小涛的问题 …………………………………………… 190
14. 2. 3 应用案例二:甜西瓜的由来(二) ………………………………… 191
14. 3 DBSCAN 算法的特点 ………………………………………………………… 193
本章小结 ……………………………………………………………………………… 193
第五部分 关 联 分 析
第15 章 Apriori 算法…………………………………………………………………… 196
15. 1 Apriori 算法的原理 …………………………………………………………… 196
15. 1. 1 关联分析中的相关概念 ……………………………………………… 196
IX
15. 1. 2 Apriori 算法的原理 …………………………………………………… 197
15. 2 Apriori 算法的应用 …………………………………………………………… 201
15. 2. 1 Apriori 类的常用参数 ………………………………………………… 201
15. 2. 2 应用案例一:货架调整 ……………………………………………… 201
15. 2. 3 应用案例二:餐厅菜品 ……………………………………………… 203
15. 3 Apriori 算法的特点 …………………………………………………………… 206
本章小结 ……………………………………………………………………………… 206
第六部分 数据预处理
第16 章 数据归一与标准化…………………………………………………………… 209
16. 1 数据归一化与标准化的必要性 ……………………………………………… 209
16. 2 数据归一化 …………………………………………………………………… 210
16. 2. 1 离差法过程 …………………………………………………………… 210
16. 2. 2 均值归一化过程 ……………………………………………………… 211
16. 2. 3 数据归一化的应用 …………………………………………………… 211
16. 3 数据标准化 …………………………………………………………………… 213
16. 3. 1 数据标准化过程 ……………………………………………………… 214
16. 3. 2 数据标准化的应用 …………………………………………………… 214
16. 4 数据预处理实例 ……………………………………………………………… 216
本章小结 …………………………………………………………………………… 219
第17 章 神奇的工具PCA……………………………………………………………… 220
17. 1 PCA 算法的基本原理 ………………………………………………………… 221
17. 1. 1 PCA 的简单理解 ……………………………………………………… 221
17. 1. 2 向量投影与内积 ……………………………………………………… 222
17. 1. 3 PCA——选择最优的基 ……………………………………………… 224
17. 1. 4 PCA 的基本过程 ……………………………………………………… 227
17. 2 PCA 算法的应用 ……………………………………………………………… 229
17. 2. 1 PCA 类的常用参数 …………………………………………………… 229
17. 2. 2 应用案例一:对鸢尾花进行PCA 降维 …………………………… 229
17. 3 PCA 算法的特点 ……………………………………………………………… 231
本章小结 ……………………………………………………………………………… 231
X 走进人工智能——机器学习原理解析与应用
第七部分 人工神经网络
第18 章 自主学习—— MLP 算法… …………………………………………………… 234
18. 1 人工神经网络的发展简史 …………………………………………………… 234
18. 2 单层感知机 …………………………………………………………………… 236
18. 3 多层感知机 …………………………………………………………………… 240
18. 3. 1 MLP 的基本原理 ……………………………………………………… 240
18. 3. 2 MLP 前向传播 ………………………………………………………… 242
18. 3. 3 MLP 后向传播 ………………………………………………………… 245
18. 3. 4 梯度下降 ……………………………………………………………… 248
18. 4 MLP 算法的应用 ……………………………………………………………… 253
18. 4. 1 MLPClassifier 类的常用参数 ………………………………………… 253
18. 4. 2 应用案例一:一起去游乐场 ………………………………………… 254
18. 4. 3 应用案例二:图片文字识别 ………………………………………… 256
18. 5 MLP 算法的特点 ……………………………………………………………… 259
本章小结 ……………………………………………………………………………… 259
本书从机器学习经典算法原理解析和应用阐释人工智能,表述通俗易懂,案例极具代表性和针对性,分18章来详细介绍机器学习中诸如:K近邻、决策树,随机森林、支持向量机,神经网络等18个最经典的算法。每个算法都通过“原理解析”+“问题实例”+“实例源码”的形式来讲解与展现。算法中所涉及到的数学公式、符号都以知识窗的形式一一讲解,节省了读者临时去查阅相关数学书籍的时间。在本书中,设计了大量的问题实例,并采用当前***,最容易上手的python语言来编写每个实例代码,以期让每位读者能尽快领略到机器学习的精妙之处,体会算法之美。
宁可为,中共党员,博士,硕士研究生导师。现担任乌鲁木齐市教育研究中心信息技术教研员、乌鲁木齐市信息技术名师工作室主持人。主要研究方向为:中小学信息技术教育、计算机支持的协作学习(CSCL)。近年来国内核心期刊发表论文多篇,主持并参与省部级科研项目多项。精通C、C#、Java等多种高级程序设计语言,在软件开发方面有丰富的产品开发经验。