方程式与函数,一元函数到多元函数,最小平方法,基础统计,概率与贝叶斯理论,指数与对数,logit函数与logistic函数,向量与矩阵,二次函数、三次函数与多項式函数,线性回归——波士顿房价,逻辑回归——/葡萄酒/糖尿病,决策树——葡萄酒/鐵達尼號/Telco/Retail,隨方程式与函数,一元函数到多元函数,最小平方法,基础统计,机率与贝式理论,指数与对数,logit函数与logistic函数,向量与矩阵,二次函数、三次函数与多项式函数,线性回归–波士顿房价,逻辑回归–/葡萄酒/糖尿病,判定树–葡萄酒/铁达尼号/Telco/Retail,随机森林树–波士顿房价/泰坦尼克号/Telco/收入分析,KNN算法–电影推荐/足球射门/鸢尾花/小行星撞地球,支援向量机–鸢尾花/乳癌/汽车燃料,单纯贝式分类–垃圾邮件/中英文的新闻分类/情感分析/电影评论,集成机器学习–蘑菇/医疗保险/玻璃/加州房价,K-means分群–购物中心消费/葡萄酒评价,PCA主成分分析–手写数字/人脸数据,阶层式分群–小麦数据/老实泉,DBSCAN算法–购物中心客户分析。
本书通过大量的程序实例,全面讲解了机器学习中的知识点。
前 言
AI时代来了,机器学习成了当今的显学。过去阅读机器学习的相关书籍,最常看到的是艰涩难懂的数学公式推导,因此对于许多读者而言可能是很好的催眠剂,对笔者而言也是如此。因此,笔者撰写本书的初衷是:
将机器学习的知识,用大白话讲述,让读者看得懂,学得会。
理论讲解搭配实际案例探讨,让读者彻底了解理论与实务。
笔者和许多机器学习领域的讨论过,大家一致认为,一本好的机器学习书籍应具备下列特色:
尽可能用大白话解释数学原理或算法,让读者以最简单的方式学会机器学习。
从机器学习有关基础数学说起,同时用图表与程序实例辅助讲解。
用图表与程序实例解说基础统计概念。
说明基础概率与简单贝叶斯理论,用程序将理论化为实c。
讲解机器学习有关的Scikit-learn方法,同时用简单数据理解此方法。
从简单的数据开始说明机器学习的算法。
理论知识与实际应用之间可能有巨大的差异,因此应提供一些程序代码范例,让读者能理解如何将这些理论知识转化为实际的程序代码。
针对问题的策略与技巧,除了基础理论和程序代码范例外,还应能提供一些针对特定问题的策略和技巧,如特征选择、模型选择、超参数调整等。
实际的案例能让读者理解如何在现实世界中应用机器学习,因此应包含一些真实世界的案例分析,来说明如何应用这些理论知识和技巧。
撰写本书时,笔者时时刻刻将上述特色放在内心,并呈现在本书中。本书应该是目前机器学习领域最完整的中文书籍。全书内容有35章,前面21章介绍了基础数学、统计、概率相关知识;第22 ~ 34章以Scikit-learn为基础,介绍了机器学习算法的概念,以及真实案例分析;第35章则以现成的模块,介绍了语音识别,读者可以从中学会如何读取语音输入,或是将文字转成语音。全书有416个Python程序实例。读者可以由本书内容,了解下列与机器学习有关的基础数学、统计知识:
方程式与函数。
一元函数到多元函数。
最小二乘法。
基础统计。
概率与单纯贝叶斯理论。
指数与对数。
logit函数与logistic函数。
向量与矩阵。
二次函数、三次函数与多项式函数。
此外,笔者从简单的实例开始介绍了下列机器学习的算法,每一种算法皆是从基础数据开始讲解,然后跨入真实数据,讲解应该如何将算法应用到真实案例环境:
线性回归 — 波士顿房价。
逻辑回归 — 、葡萄酒、糖尿病。
决策树 — 葡萄酒、泰坦尼克号、Telco/Retail。
随机森林 — 波士顿房价、泰坦尼克号、Telco、收入分析。
KNN算法 — 电影推荐、足球射门、鸢尾花、小行星撞地球。
支持向量机 — 鸢尾花、乳腺癌、汽车燃料。
单纯贝叶斯分类 — 垃圾邮件、中英文的新闻分类、情感分析、电影评论。
集成机器学习 — 蘑菇、医疗保险、玻璃、加州房价。
K均值聚类 — 购物中心消费、葡萄酒评价。
PCA主成分分析 — 手写数字、人脸数据。
阶层式聚类 — 小麦数据、老实泉。
DBSCAN算法 — 购物中心客户分析。
在讲解上述算法时,笔者同时介绍了下列应该知道的机器学习知识:
特征选择。
用直方图了解特征分布。
用箱型图了解异常值。
数据预处理。
残差图(residual plot)。
机器学习性能评估。
数据泄露(data leakage)。
绘制决策树图(decision tree map)。
可视化热力图(heat map)。
决策边界(decision boundary)。
增加数据维度与超平面。
交叉验证(cross-validation)。
泛化能力(generalization ability)。
过拟合(overfitting)。
欠拟合(underfitting)。
弱学习器(weaks learners)。
强学习器(strong learners)。
学习模型(base learner)。
本书最后一章,介绍了热门的AI主题—语音识别。通过本章内容读者可以学会下列知识:
语音转文字。
文字转语音。
本书虽然没有专门章节介绍机器学习必须掌握的绘图知识,如matplotlib、seaborn、数据预处理(如numpy、pandas),但是在解说每个程序时,已经用文字和程序实例讲解了这方面的相关知识,读者可以潜移默化地学会这方面的知识。
笔者写过许多计算机相关著作,本书沿袭了笔者著作的特色,程序实例丰富,相信读者只要遵循本书内容,必定可以在最短时间内,精通使用Python设计机器学习相关应用的知识。笔者编著本书虽力求优质,但是限于笔者学识经历不足,谬误难免,尚祈读者不吝指正。
洪锦魁2025-07-30
本书资源获取说明
本书中的程序实例可以扫描下方二维码获取。
洪锦魁,资深IT作家,具备30余年的IT从业及写作经历,为老中青三代程序员创作了上百本IT图书,其作品始终屹立于编程基础图书巅峰而口碑不辍。洪老师的书,不拼页数,不拼华而不实的所谓“增值品”,每节文字确保能看懂,每段代码确保能跑通,每个提醒确保能用上,每个篇章确保有收获。
目 录
第1章 机器学习基本概念1
1-1 人工智能、机器学习、深度学习
2
1-2 认识机器学习2
1-3 机器学习的种类2
1-3-1 监督学习3
1-3-2 无监督学习4
1-3-3 强化学习4
1-4 机器学习的应用范围4
1-5 深度学习5
第2章 机器学习的基础数学6
2-1 用数字描绘事物7
2-2 变量概念7
2-3 从变量到函数7
2-4 等式运算的规则8
2-5 代数运算的基本规则9
2-6 用数学抽象化开餐厅的生存条件9
2-6-1 数学模型 9
2-6-2 经营数字预估9
2-6-3 经营绩效的计算 10
2-7 基础数学的结论10
第3章 认识方程式、函数、坐标
图形11
3-1 认识方程式12
3-2 方程式文字描述方法12
3-3 一元一次方程式13
3-4 函数13
3-5 坐标图形分析14
3-5-1 坐标图形与线性关系14
3-5-2 斜率与截距的意义15
3-5-3 细看斜率16
3-5-4 细看y截距16
3-5-5 细看x截距16
3-6 将线性函数应用于机器学习17
3-6-1 再看直线函数与斜率17
3-6-2 机器学习与线性回归18
3-6-3 相同斜率平行移动18
3-6-4 不同斜率与相同截距19
3-6-5 不同斜率与不同截距19
3-7 二元函数到多元函数19
3-7-1 二元函数基本概念19
3-7-2 二元函数的图形20
3-7-3 等高线图20
3-7-4 多元函数21
3-8 Sympy模块22
3-8-1 定义符号22
3-8-2 name属性22
3-8-3 定义多个符号变量22
3-8-4 符号的运算23
3-8-5 将数值代入公式23
3-8-6 将字符串转为数学表
达式23
3-8-7 Sympy模块支持的数学
函数23
3-8-8 解一元一次方程式24
第4章 从联立方程式看机器学习的
数学模型25
4-1 数学概念建立连接两点的
直线26
4-1-1 基础概念26
4-1-2 联立方程式26
4-1-3 使用加减法解联立方
程式26
4-1-4 使用代入法解联立方
程式27
4-1-5 使用Sympy解联立方
程式27
4-2 机器学习使用联立方程式推估
数据28
4-2-1 基本概念28
4-2-2 数据推估30
4-3 从两条直线的交叉点推估科学
数据31
4-3-1 鸡兔同笼31
4-3-2 达成业绩目标33
4-4 两条直线垂直交叉34
4-4-1 基础概念34
4-4-2 求解坐标某一点至一条直线
的垂直线36
第5章 从勾股定理看机器学习38
5-1 验证勾股定理39
5-1-1 认识直角三角形39
5-1-2 验证勾股定理39
5-2 将勾股定理应用于性向测试40
5-2-1 问题核心分析40
5-2-2 数据运算40
5-3 将勾股定理应用于三维空间41
5-4 将勾股定理应用于更高维的
空间41
5-5 电影分类42
5-5-1 规划特征值42
5-5-2 项目程序实c42
5-5-3 电影分类结论43
5-6 计算两个向量的欧几里得距离43
第6章 联立不等式与机器学习44
6-1 联立不等式与机器学习的关系45
6-2 再看联立不等式的基本概念45
6-3 联立不等式的线性规划45
6-3-1 案例分析45
6-3-2 用联立不等式表达46
6-3-3 在坐标轴上绘不等式的
区域46
6-3-4 目标函数47
6-3-5 平行移动目标函数48
6-3-6 将交叉点坐标代入目标
函数48
6-4 Python计算48
第7章 机器学习需要知道的二次
函数50
7-1 二次函数的基础数学51
7-1-1 求一元二次方程式的根51
7-1-2 绘制一元二次方程式的
图形53
7-1-3 一元二次方程式的最小值
与最大值54
7-1-4 一元二次函数参数整理56
7-1-5 一元三次函数的图形
特征57
7-2 从一次到二次函数的实务58
7-2-1 呈现好的变化58
7-2-2 呈现不好的变化58
7-3 认识二次函数的系数59
7-4 使用3个点求解一元二次函数59
7-4-1 手动求解一元二次函数59
7-4-2 程序求解一元二次函数60
7-4-3 绘制一元二次函数60
7-4-4 使用业绩回推应有的拜访
次数61
7-5 二次函数的配方法62
7-5-1 基本概念62
7-5-2 配方法62
7-5-3 从标准式计算二次函数的
最大值63
7-5-4 从标准式计算二次函数的
最小值64
7-6 二次函数与解答区间64
7-6-1 营销问题分析64
7-6-2 二次函数分析增加业绩的
脸书营销次数65
7-6-3 将不等式应用在条件
区间66
7-6-4 非实数根67
第8章 机器学习的最小二乘法68
8-1 最小二乘法基本概念69
8-1-1 基本概念69
8-1-2 数学观点70
8-2 简单的企业实例70
8-3 机器学习建立含误差值的线性
方程式71
8-3-1 概念启发 71
8-3-2 三项和的平方71
8-3-3 公式推导72
8-3-4 使用配方法计算直线的
斜率和截距72
8-4 Numpy实c最小二乘法73
8-5 线性回归74
8-6 实务应用75
第9章 机器学习必须懂的集合77
9-1 使用Python建立集合78
9-1-1 使用{ }建立集合78
9-1-2 集合元素是优质的78
9-1-3 使用set( )建立集合78
9-1-4 集合的基数78
9-1-5 建立空集合要用set( )79
9-1-6 大数据与集合的应用79
9-2 集合的c作79
9-2-1 交集79
9-2-2 并集80
9-2-3 差集81
9-2-4 对称差集81
9-3 子集、超集与补集82
9-3-1 子集82
9-3-2 超集82
9-3-3 补集83
9-4 加入与删除集合元素83
9-5 幂集与Sympy模块84
9-5-1 Sympy模块与集合84
9-5-2 建立幂集84
9-5-3 幂集的元素个数84
9-6 笛卡儿积84
9-6-1 集合相乘84
9-6-2 集合的n次方85
第10章 机器学习必须懂的排列与
组合86
10-1 排列的基本概念87
10-1-1 试验与事件87
10-1-2 事件结果87
10-2 有多少条回家路88
10-3 排列组合89
10-4 阶乘的概念90
10-5 重复排列93
10-6 组合93
第11章 机器学习需要认识的概率95
11-1 概率的基本概念96
11-2 数学概率与统计概率98
11-3 事件概率名称98
11-4 事件概率规则99
11-4-1 不发生概率99
11-4-2 概率相加99
11-4-3 概率相乘99
11-4-4 常见的陷阱99
11-5 抽奖的概率—加法与乘法综合
应用99
11-6 余事件与乘法的综合应用101
11-7 条件概率101
11-7-1 基础概念101
11-7-2 再谈实例102
11-8 贝叶斯定理103
11-8-1 基本概念103
11-8-2 用实例验证贝叶斯
定理103
11-8-3 贝叶斯定理的运用—
COVID-19的全民普筛
准确性推估104
11-8-4 再看一个医学实例104
11-8-5 贝叶斯定理筛选垃圾
电子邮件的基础概念105
11-8-6 垃圾邮件分类项目
实c105
11-9 蒙特卡洛模拟109
11-10 Numpy的随机模块random110
11-10-1 np.random.rand( )110
11-10-2 np.random.randint( )110
11-10-3 np.random.seed( )111
11-10-4 np.random.shuffle( )112
11-10-5 np.random.choice( )113
11-10-6 使用随机数数组产生
图像114
第12章 二项式定理115
12-1 二项式的定义116
12-2 二项式的几何意义116
12-3 二项式展开与规律性分析116
12-4 找出xn-kyk项的系数117
12-4-1 基础概念 117
12-4-2 组合数学概念117
12-4-3 系数公式推导与验证118
12-5 二项式的通式119
12-5-1 验证头尾系数比较119
12-5-2 中间系数验证119
12-6 二项式到多项式119
12-7 二项分布实验119
12-8 将二项式概念应用于业务数据
分析120
12-8-1 每5次销售0张考卷的
概率120
12-8-2 每5次销售1张考卷的
概率120
12-8-3 每5次销售2张考卷的
概率121
12-8-4 每5次销售0~2张考卷的
概率121
12-8-5 列出拜访5次销售k张考
卷的概率通式121
12-9 二项式概率分布Python实c121
12-10 Numpy随机数模块的binomial( )
函数124
12-10-1 可视化模块Seaborn124
12-10-2 Numpy的二项式随机
函数binomial124
第13章 指数概念与指数函数126
13-1 认识指数函数127
13-1-1 基础概念127
13-1-2 复利计算实例127
13-1-3 病毒复制128
13-1-4 指数应用在价值衰减128
13-1-5 用指数概念看iPhone
容量129
13-2 指数运算的规则129
13-3 指数函数的图形131
13-3-1 底数是变量的图形131
13-3-2 指数是实数变量131
13-3-3 指数是实数变量但底数
小于1132
第14章 对数133
14-1 认识对数函数134
14-1-1 对数的由来134
14-1-2 从数学看指数的运作
概念134
14-1-3 再看对数函数134
14-1-4 天文数字的处理135
14-1-5 Python的对数函数应用135
14-2 对数表的功能136
14-2-1 对数表基础应用136
14-2-2 更精确的对数表136
14-3 对数运算可以解决指数运算的
问题137
14-3-1 用指数处理相当数值的
近似值137
14-3-2 使用对数简化运算138
14-4 认识对数的特性138
14-5 对数的运算规则与验证139
14-5-1 等号两边使用对数处理
结果不变139
14-5-2 对数的真数是1139
14-5-3 对数的底数等于真数139
14-5-4 对数内真数的指数可以
移到外面139
14-5-5 对数内真数是两数据相乘
结果是两数据各取对数后
再相加140
14-5-6 对数内真数是两数据相除
结果是两数据先取对数后
再相减140
14-5-7 底数变换140
第15章 欧拉数与逻辑函数141
15-1 认识欧拉数142
15-1-1 认识欧拉数142
15-1-2 欧拉数的缘由142
15-1-3 欧拉数使用公式做
定义143
15-1-4 计算与绘制欧拉数的函数
图形143
15-2 逻辑函数144
15-2-1 认识逻辑函数144
15-2-2 x是正无限大144
15-2-3 x是0145
15-2-4 x是负无限大145
15-2-5 绘制逻辑函数145
15-2-6 Sigmoid函数145
15-3 logit函数146
15-3-1 认识Odds146
15-3-2 从Odds到logit函数147
15-3-3 绘制logit函数147
15-4 逻辑函数的应用147
15-4-1 事件说明与分析147
15-4-2 从逻辑函数到logit
函数148
15-4-3 使用logit函数获得
系数149
第16章 三角函数150
16-1 直角三角形的边长与夹角151
16-2 三角函数的定义151
16-3 计算三角形的面积152
16-3-1 计算直角三角形面积152
16-3-2 计算非直角三角形
面积152
16-4 角度与弧度153
16-4-1 角度的定义153
16-4-2 弧度的由来153
16-4-3