机器学习原理与Python编程实践

机器学习原理与Python编程实践"

作者:袁梅宇
ISBN:9787302570646
定价:¥79
字数:千字
页数:
出版时间:2021.03.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

《机器学习原理与Python编程实践》讲述机器学习的基本原理,使用Python和Numpy实现涉及的各种机器学习算法。通过理论学习和实践操作,使读者了解并掌握机器学习的基本原理和技能,拉近理论与实践的距离。全书共分为13章,主要内容包括:机器学习介绍、线性回归、逻辑回归、贝叶斯分类器、模型评估与选择、K-均值算法和EM算法、决策树、神经网络、隐马尔科夫模型、支持向量机、推荐系统、主成分分析、集成学习。全书源码全部在Python 3.7上调试成功,每章都附有习题和习题参考答案,供读者参考。

《机器学习原理与Python编程实践》系统讲解了机器学习的常用核心算法和Python编程实践,内容全面、实例丰富、可操作性强,做到理论与实践相结合。本书适合机器学习爱好者作为入门和提高的技术参考书,也适合用作计算机专业高年级本科生和研究生的教材或教学参考书。

前言

目录

第1章  机器学习介绍 1

1.1  机器学习简介 2

1.1.1  什么是机器学习 2

1.1.2  机器学习与日常生活 3

1.1.3  如何学习机器学习 4

1.1.4  Python的优势 5

1.2  基本概念 6

1.2.1  机器学习的种类 6

1.2.2  有监督学习 6

1.2.3  无监督学习 7

1.2.4  机器学习的术语 8

1.2.5  预处理 9

1.3  Numpy数据格式 10

1.3.1  标称数据 10

1.3.2  序数数据 11

1.3.3  分类数据 11

1.4  示例数据集 12

1.4.1  天气问题 12

1.4.2  鸢尾花 14

1.4.3  其他数据集 15

1.5  了解你的数据 16

习题 20

第2章  线性回归 21

2.1  从一个实际例子说起 22

2.1.1  模型定义 23

2.1.2  模型假设 23

2.1.3  模型评估 24

2.2  最小二乘法 25

2.2.1  最小二乘法求解参数 25

2.2.2  用最小二乘法来拟合奥运会数据 26

2.2.3  预测比赛结果 27

2.3  梯度下降 28

2.3.1  基本思路 28

2.3.2  梯度下降算法 29

2.3.3  梯度下降求解线性回归问题 31

2.4  多变量线性回归 33

2.4.1  多变量线性回归问题 33

2.4.2  多变量梯度下降 35

2.4.3  随机梯度下降 38

2.4.4  小批量梯度下降 41

2.4.5  正规方程 43

2.5  多项式回归 45

2.5.1  多项式回归算法 45

2.5.2  正则化 48

习题 51

第3章  逻辑回归 53

3.1  逻辑回归介绍 54

3.1.1  线性回归用于分类 54

3.1.2  假设函数 55

3.1.3  决策边界 56

3.2  逻辑回归算法 58

3.2.1  代价函数 58

3.2.2  梯度下降算法 59

3.2.3  SciPy优化函数 61

3.2.4  多项式逻辑回归 63

3.3  多元分类 65

3.3.1  一对多 65

3.3.2  一对一 68

3.3.3  Softmax回归 70

习题 73

第4章  贝叶斯分类器 75

4.1  简介 76

4.1.1  概述 76

4.1.2  判别模型和生成模型 76

4.1.3  极大似然估计 77

4.2  高斯判别分析 80

4.2.1  多元高斯分布 80

4.2.2  高斯判别模型 81

4.3  朴素贝叶斯 84

4.3.1  朴素贝叶斯算法 84

4.3.2  文本分类 89

习题 95

第5章  模型评估与选择 97

5.1  简介 98

5.1.1  训练误差与泛化误差 98

5.1.2  偏差和方差 99

5.2  评估方法 100

5.2.1  训练集、验证集和测试集划分 101

5.2.2  交叉验证 102

5.3   性能度量 105

5.3.1  常用性能度量 105

5.3.2  查准率和查全率 107

5.3.3  ROC和AUC 108

5.4  偏差与方差折中 110

5.4.1  偏差方差诊断 111

5.4.2  正则化与偏差和方差 112

5.4.3  学习曲线 113

习题 114

第6章  K-均值算法和EM算法 117

6.1  聚类分析 118

6.1.1  K-means算法 118

6.1.2  K-means算法的应用 121

6.1.3  注意事项 122

6.2  EM算法 124

6.2.1  基本EM算法 124

6.2.2  EM算法的一般形式 125

6.2.3  混合高斯模型 128

习题 134

第7章  决策树 137

7.1  决策树介绍 138

7.2  ID3算法 139

7.2.1  信息熵 139

7.2.2  信息增益计算示例 139

7.2.3  ID3算法描述 144

7.2.4  ID3算法实现 146

7.3  C4.5算法 147

7.3.1  基本概念 147

7.3.2   剪枝处理 151

7.3.3  C4.5算法描述 153

7.3.4  C4.5算法实现 155

7.4  CART算法 157

7.4.1  CART算法介绍 157

7.4.2  CART算法描述 160

7.4.3  CART算法实现 162

习题 163

第8章  神经网络 165

8.1  神经网络介绍 166

8.1.1  从一个实例说起 166

8.1.2  神经元 167

8.1.3  神经网络结构 169

8.1.4  简化的神经网络模型 171

8.1.5  细节说明 175

8.2  神经网络学习 176

8.2.1  代价函数 176

8.2.2  BP算法 177

8.2.3  BP算法实现 180

8.3  神经网络实现 186

8.3.1  MNIST神经网络实现 186

8.3.2  逻辑异或的神经网络实现 188

习题 189

第9章  隐马尔科夫模型 191

9.1  隐马尔科夫模型基本概念 192

9.1.1  离散马尔科夫过程 192

9.1.2  扩展至隐马尔科夫模型 194

9.1.3  HMM的组成和序列生成 197

9.1.4  三个基本问题 199

9.2  求解HMM三个基本问题 200

9.2.1  评估问题 200

9.2.2  解码问题 205

9.2.3  学习问题 208

习题 214

第10章  支持向量机 215

10.1  支持向量机介绍 216

10.2  最大间隔超平面 216

10.2.1  SVM问题的形式化描述 217

10.2.2  函数间隔和几何间隔 218

10.2.3  最优间隔分类器 219

10.2.4  使用优化软件求解SVM 221

10.3  对偶算法 222

10.3.1  SVM对偶问题 222

10.3.2  使用优化软件求解对偶SVM 225

10.4  非线性支持向量机 226

10.4.1  核技巧 227

10.4.2  常用核函数 228

10.5  软间隔支持向量机 231

10.5.1  动机及原问题 231

10.5.2  对偶问题 232

10.5.3  使用优化软件求解软间隔对偶SVM 234

10.6  SMO算法 236

10.6.1  SMO算法描述 236

10.6.2  简化SMO算法实现 239

10.7   LibSVM 244

10.7.1  LibSVM的安装 245

10.7.2  LibSVM函数 246

10.7.3  LibSVM实践指南 248

习题 251

第11章  推荐系统 253

11.1  推荐系统介绍 254

11.1.1  什么是推荐系统 254

11.1.2  数据集描述 255

11.1.3  推荐系统符号 256

11.2  基于用户的协同过滤 256

11.2.1  相似性度量 257

11.2.2  算法描述 259

11.2.3  算法实现 260

11.3  基于物品的协同过滤 261

11.3.1  调整余弦相似度和预测 261

11.3.2  Slope One算法描述 与实现 263

11.4  基于内容的协同过滤算法与实现 267

11.4.1  算法描述 267

11.4.2  算法实现 270

习题 271

第12章  主成分分析 273

12.1  主成分分析介绍 274

12.2  本征值与奇异值分解 275

12.2.1  本征值分解 275

12.2.2  奇异值分解 276

12.3  PCA算法描述 276

12.3.1  PCA算法 276

12.3.2  从压缩表示中重建 278

12.3.3  确定主成分数量 278

12.4  PCA实现 279

12.4.1  假想实例 279

12.4.2  MNIST实例 284

习题 286

第13章  集成学习 289

13.1  集成学习介绍 290

13.1.1  集成学习简介 290

13.1.2  个体学习器 291

13.1.3  集成学习的基本原理 291

13.1.4  融合个体学习器的方法 293

13.2  装袋 294

13.2.1  装袋算法描述 295

13.2.2  装袋算法实现 296

13.3  提升 297

13.3.1  提升算法描述 297

13.3.2  AdaBoost算法实现 300

13.4  随机森林 301

13.4.1  随机森林算法描述 302

13.4.2  随机森林算法实现 303

习题 305

附录1  符号表 306

附录2  习题参考答案 307

参考文献 334

作者简介

编辑推荐

初学者学习机器学习课程一般都会面临两大障碍。第一大障碍是数学基础。机器学习要求有数学基础,书中大量的公式是初学者的噩梦,尤其是对于已经离开大学走向工作岗位的爱好者来说,从头开始去学习和理解数据分布和模型背后的数学原理需要花费很多的时间和精力,学习周期非常漫长。第二大障碍是编程实践。并不是所有人都擅长编代码,而只有亲手用代码实现机器学习的各种算法,亲眼见到算法解决了实际问题,才能更深入理解算法。除非想做高精尖的前沿研究,理论研究和公式推导并非大多数人的专长,如果只是想更合理地应用机器学习来解决实际问题,掌握必需的数学知识就可以理解问题该如何解决,使用Python编程实现机器学习算法也比使用C++或Java等语言容易得多。

本书就是为了让初学者顺利入门而设计的。首先,本书只讲述机器学习常用算法的基本原理,并不追求各种算法大而全地简略罗列,学习并深入理解这些精挑细选的算法后,能够了解基本的机器学习算法,使用适合的算法来解决实际问题。其次,本书使用Python 3.7+Numpy来实现常用的机器学习算法,读者能亲眼看见算法的工作过程和结果,可加深对抽象公式和算法的理解,逐步掌握机器学习的基本原理和编程技能,拉近理论与实践的距离。再次,每章都附有习题和习题参考答案,其中,一部分习题是为了帮助读者理解正文内容而设置的,另一部分习题是为了降低正文中的数学要求,将一些必要但枯燥的公式推导放在习题中,供读者有选择性地学习。

作者寄语

袁梅宇,北航工学博士,硕士导师,现在昆明理工大学计算机系任教。为本科生和研究生主讲Java程序设计、Java EE技术、数据库原理、人工智能、Dot Net技术等核心课程,参加过863 CIMS Net建设、中欧合作项目DRAGON和多项国家基金和省基金项目,第一作者公开发表论文十余篇,软件著作权(颁证)六项。第一作者专著有《Java EE企业级编程开发实例详解》、《数据挖掘与机器学习——WEKA应用技术与实践》(第一版、第二版)、《求精要诀——Java EE编程开发案例精讲》、《机器学习基础原理、算法与实践》。

电子资料

www.luweidong.cn

下一个