新書推薦:
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
273.7
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
55.2
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
82.8
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
89.7
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
67.9
《
周易
》
售價:HK$
45.8
《
东南亚的传统与发展
》
售價:HK$
69.0
《
乾隆制造
》
售價:HK$
87.4
|
編輯推薦: |
初学者学习机器学习课程一般都会面临两大障碍。最大障碍是数学基础。机器学习要求有数学基础,书中大量的公式是初学者的噩梦,尤其是对于已经离开大学走向工作岗位的爱好者来说,从头开始去学习和理解数据分布和模型背后的数学原理需要花费很多的时间和精力,学习周期非常漫长。第二大障碍是编程实践。并不是所有人都擅长编代码,而只有亲手用代码实现机器学习的各种算法,亲眼见到算法解决了实际问题,才能更深入理解算法。除非想做高精尖的前沿研究,理论研究和公式推导并非大多数人的专长,如果只是想更合理地应用机器学习来解决实际问题,掌握必需的数学知识就可以理解问题该如何解决,使用Python编程实现机器学习算法也比使用C或Java等语言容易得多。
本书就是为了让初学者顺利入门而设计的。首先,本书只讲述机器学习常用算法的基本原理,并不追求各种算法大而全地简略罗列,学习并深入理解这些精挑细选的算法后,能够了解基本的机器学习算法,使用适合的算法来解决实际问题。其次,本书使用Python 3.7 Numpy来实现常用的机器学习算法,读者能亲眼看见算法的工作过程和结果,可加深对抽象公式和算法的理解,逐步掌握机器学习的基本原理和
|
內容簡介: |
《机器学习原理与Python编程实践》讲述机器学习的基本原理,使用Python和Numpy实现涉及的各种机器学习算法。通过理论学习和实践操作,使读者了解并掌握机器学习的基本原理和技能,拉近理论与实践的距离。全书共分为13章,主要内容包括:机器学习介绍、线性回归、逻辑回归、贝叶斯分类器、模型评估与选择、K-均值算法和EM算法、决策树、神经网络、隐马尔科夫模型、支持向量机、推荐系统、主成分分析、集成学习。全书源码全部在Python 3.7上调试成功,每章都附有习题和习题参考答案,供读者参考。 《机器学习原理与Python编程实践》系统讲解了机器学习的常用核心算法和Python编程实践,内容全面、实例丰富、可操作性强,做到理论与实践相结合。本书适合机器学习爱好者作为入门和提高的技术参考书,也适合用作计算机专业高年级本科生和研究生的教材或教学参考书。
|
關於作者: |
袁梅宇,北航工学博士,硕士导师,现在昆明理工大学计算机系任教。为本科生和研究生主讲Java程序设计、Java EE技术、数据库原理、人工智能、Dot Net技术等核心课程,参加过863 CIMS Net建设、中欧合作项目DRAGON和多项国家基金和省基金项目,第一作者公开发表论文十余篇,软件著作权(颁证)六项。第一作者专著有《Java EE企业级编程开发实例详解》、《数据挖掘与机器学习WEKA应用技术与实践》(第一版、第二版)、《求精要诀Java EE编程开发案例精讲》、《机器学习基础原理、算法与实践》。
|
目錄:
|
第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.7LibSVM 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
|
內容試閱:
|
机器学习无疑是当今最热门的领域之一,机器学习工程师、数据科学家和大数据工程师逐渐成为一些最具吸引力的新兴人才,各行各业的公司都在寻求具备这些技能的人才,技术职位的爆炸式增长吸引了更多在校大学生、社会IT人员将机器学习职位纳入自己的职业规划。由于具备机器学习相关技能才更有可能在上述新兴职业中获得成功,所以一本容易上手的入门书肯定会对初学者有着莫大的帮助,本书就是为初学者精心编写的。
初学者学习机器学习课程一般都会面临两大障碍。第一大障碍是数学基础。机器学习要求有数学基础,书中大量的公式是初学者的噩梦,尤其是对于已经离开大学走向工作岗位的爱好者来说,从头开始去学习和理解数据分布和模型背后的数学原理需要花费很多的时间和精力,学习周期非常漫长。第二大障碍是编程实践。并不是所有人都擅长编代码,而只有亲手用代码实现机器学习的各种算法,亲眼见到算法解决了实际问题,才能更深入理解算法。除非想做高精尖的前沿研究,理论研究和公式推导并非大多数人的专长,如果只是想更合理地应用机器学习来解决实际问题,掌握必需的数学知识就可以理解问题该如何解决,使用Python编程实现机器学习算法也比使用C或Java等语言容易得多。
本书就是为了让初学者顺利入门而设计的。首先,本书只讲述机器学习常用算法的基本原理,并不追求各种算法大而全地简略罗列,学习并深入理解这些精挑细选的算法后,能够了解基本的机器学习算法,使用适合的算法来解决实际问题。其次,本书使用Python 3.7 Numpy来实现常用的机器学习算法,读者能亲眼看见算法的工作过程和结果,可加深对抽象公式和算法的理解,逐步掌握机器学习的基本原理和编程技能,拉近理论与实践的距离。再次,每章都附有习题和习题参考答案,其中,一部分习题是为了帮助读者理解正文内容而设置的,另一部分习题是为了降低正文中的数学要求,将一些必要但枯燥的公式推导放在习题中,供读者有选择性地学习。
本书共分为13章。第1章介绍机器学习的基本概念、Numpy数据格式和示例数据集;第2章介绍线性回归,主要内容包括线性回归的模型定义假设和评估、最小二乘法、梯度下降、多变量线性回归、随机梯度下降、正规方程、多项式回归和正则化;第3章介绍逻辑回归,主要内容包括逻辑回归的假设函数、决策边界、梯度下降、SciPy优化函数、多项式逻辑回归、多元分类、Softmax回归;第4章介绍贝叶斯分类,主要内容包括判别模型和生成模型的概念、极大似然估计、高斯判别分析、朴素贝叶斯和文本分类;第5章介绍模型评估与选择,主要内容包括训练集、验证集、测试集划分、交叉验证、性能度量,以及偏差与方差折中;第6章介绍K-均值算法和EM算法,主要内容包括聚类分析的基本概念、K-means算法应用、EM算法以及混合高斯模型;第7章介绍决策树,主要内容包括决策树的基本概念、ID3算法、C4.5算法,以及CART算法的原理与实现;第8章介绍神经网络,主要内容包括神经元、神经网络结构、反向传播算法原理与实现;第9章介绍隐马尔科夫模型,主要内容包括HMM的基本概念、HMM的组成和序列生成、求解HMM三个基本问题的算法以及Python代码实现;第10章介绍支持向量机,主要内容包括支持向量机的基本概念、最大间隔超平面、对偶算法、非线性支持向量机、软间隔支持向量机、SMO算法和LibSVM库的使用;第11章介绍推荐系统,主要内容包括推荐系统的基本概念、基于用户的协同过滤算法、基于物品的协同过滤算法和基于内容的协同过滤算法;第12章介绍主成分分析,主要内容包括主成分分析的基本概念、本征值分解和奇异值分解、PCA算法的计算步骤、如何从压缩表示中重建、如何选取主成分的数量以及PCA实现;第13章介绍集成学习,主要内容包括集成学习的基本概念、装袋、提升、随机森林的算法描述和Python代码实现。
作者感谢提供宝贵建议的贡献者,昆明理工大学计算机系吴霖老师经常与作者讨论机器学习问题,并在本书的内容选取方面提出了很多建设性建议,感谢吴霖老师做出的贡献。感谢清华大学出版社的编辑老师在出版方面提出的建设性意见和给予的无私帮助,感谢QQ群里的各位群友,他们中有老师、学生,还有已经参加工作的机器学习爱好者,他们的建议和帮助使得本书在内容上更加合理和完整。
作者在写作本书的过程中付出了艰辛的劳动,但限于学识、能力和精力,书中难免会存在一些缺陷。感谢读者购买本书,欢迎批评指正,你们的批评建议都会受到重视,并在将来的再版中改进。
袁梅宇
于昆明理工大学
|
|