描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302500148
初学者学习机器学习课程通常会碰到两大障碍,*大障碍——数学基础,机器学习需要学习者具备数学基础,对于那些已经走向工作岗位的学习者来说,困难更大一些,从头开始学习和理解数据分布和模型背后的数学原理需要花费很长的时间和精力,学习周期非常漫长。第二大障碍——编程实践,并不是所有人都擅长编代码,只有亲手用代码实现机器学习的各种算法,亲眼见到算法解决了实际问题,才能更深入地理解算法。
《机器学习基础——原理、算法与实践》就是为了让初学者顺利入门而精心设计的。通过学习帮助读者扫除机器学习的两大学习障碍。书中讲述了机器学习常用算法的基本原理,读者在学习并深入理解这些精挑细选的算法后,能够理解并学会使用适合的算法来解决实际问题。此外,《机器学习基础——原理、算法与实践》使用MATLAB R2015b实现了常用的机器学习算法,读者能够亲眼看见算法的工作过程和结果,加深对抽象公式和算法的理解,进而逐步掌握机器学习的原理和技能,拉近理论与实践的距离。
《机器学习基础——原理、算法与实践》讲述机器学习的基本原理,使用MATLAB实现涉及的各种机器学习算法。通过理论学习和实践操作,使读者了解并掌握机器学习的原理和技能,拉近理论与实践的距离。《机器学习基础——原理、算法与实践》共分12章,主要内容包括:机器学习介绍、线性回归、逻辑回归、贝叶斯分类器、模型评估与选择、K-均值和EM算法、决策树、神经网络、HMM、支持向量机、推荐系统、主成分分析。全书源码全部在MATLAB R2015b上调试通过,每章都附有习题和习题参考答案,供读者参考。
《机器学习基础——原理、算法与实践》系统讲解了机器学习的原理、算法和应用,内容全面、实例丰富、可操作性强,做到理论与实践相结合。《机器学习基础——原理、算法与实践》适合机器学习爱好者作为入门和提高的技术参考书使用,也适合用作计算机专业高年级本科生和研究生的教材或教学参考书。
目录
第1章 机器学习介绍 1
1.1 机器学习简介 2
1.1.1
什么是机器学习 2
1.1.2
机器学习与日常生活 3
1.1.3
如何学习机器学习 4
1.1.4
MATLAB优势 5
1.2 基本概念 5
1.2.1
机器学习的种类 6
1.2.2
有监督学习 6
1.2.3
无监督学习 7
1.2.4
机器学习术语 7
1.2.5
预处理 9
1.3
MATLAB数据格式 10
1.3.1
标称数据 10
1.3.2
序数数据 11
1.3.3
分类数据 11
1.4 示例数据集 12
1.4.1
天气问题 12
1.4.2
鸢尾花 15
1.4.3
其他数据集 16
1.5 了解你的数据 16
习题 20
第2章 线性回归 21
2.1 从一个实际例子说起 22
2.1.1
模型定义 23
2.1.2
模型假设 23
2.1.3
模型评估 24
2.2 小二乘法 24
2.2.1
小二乘法求解参数 25
2.2.2
用小二乘法来拟合奥运会数据 26
2.2.3
预测比赛结果 27
2.3 梯度下降 27
2.3.1
基本思路 28
2.3.2
梯度下降算法 29
2.3.3
梯度下降求解线性回归问题 30
2.4 多变量线性回归 32
2.4.1
多变量线性回归问题 33
2.4.2
多变量梯度下降 34
2.4.3
随机梯度下降 38
2.4.4
正规方程 40
2.5 多项式回归 42
2.5.1
多项式回归算法 42
2.5.2
正则化 45
习题 47
第3章 逻辑回归 49
3.1 逻辑回归介绍 50
3.1.1
线性回归用于分类 50
3.1.2
假设函数 51
3.1.3
决策边界 52
3.2 逻辑回归算法 53
3.2.1
代价函数 53
3.2.2
梯度下降算法 54
3.2.3
MATLAB优化函数 56
3.2.4
多项式逻辑回归 58
3.3 多元分类 60
3.3.1
一对多 60
3.3.2
一对一 62
3.3.3
Softmax回归 64
习题 66
第4章 贝叶斯分类器 67
4.1 简介 68
4.1.1
概述 68
4.1.2
判别模型和生成模型 68
4.1.3
极大似然估计 69
4.2 高斯判别分析 72
4.2.1
多元高斯分布 72
4.2.2
高斯判别模型 73
4.3 朴素贝叶斯 75
4.3.1
朴素贝叶斯算法 76
4.3.2
文本分类 81
习题 86
第5章 模型评估与选择 87
5.1 简介 88
5.1.1
训练误差与泛化误差 88
5.1.2
偏差和方差 89
5.2 评估方法 90
5.2.1
训练集、验证集和测试集的划分 91
5.2.2
交叉验证 92
5.3 性能度量 95
5.3.1
常用性能度量 95
5.3.2
查准率和查全率 96
5.3.3
ROC和AUC 98
5.4 偏差与方差折中 100
5.4.1
偏差与方差诊断 101
5.4.2
正则化与偏差方差 102
5.4.3
学习曲线 103
习题 104
第6章 K-均值算法和EM算法 107
6.1 聚类分析 108
6.1.1
K-means算法描述 108
6.1.2
K-means算法应用 112
6.1.3
注意事项 113
6.2
EM算法 114
6.2.1
基本EM算法 114
6.2.2
EM算法的一般形式 115
6.2.3
混合高斯模型 118
习题 123
第7章 决策树 125
7.1 决策树介绍 126
7.2
ID3算法 127
7.2.1
信息熵 127
7.2.2
信息增益计算示例 127
7.2.3
ID3算法描述 132
7.2.4
ID3算法实现 134
7.3
C4.5算法 134
7.3.1
基本概念 135
7.3.2
剪枝处理 139
7.3.3
C4.5算法描述 140
7.3.4
C4.5算法实现 142
7.4
CART算法 144
7.4.1
CART算法介绍 144
7.4.2
CART算法描述 147
7.4.3
CART算法实现 149
习题 150
第8章 神经网络 151
8.1 神经网络介绍 152
8.1.1
从一个实例说起 152
8.1.2
神经元 153
8.1.3
神经网络结构 154
8.1.4
简化的神经网络模型 157
8.1.5
细节说明 160
8.2 神经网络学习 161
8.2.1
代价函数 161
8.2.2
BP算法 162
8.2.3
BP算法实现 166
8.2.4
平方代价函数的情形 171
习题 171
第9章 隐马尔科夫模型 173
9.1 隐马尔科夫模型基本概念 174
9.1.1
离散马尔科夫过程 174
9.1.2
扩展至隐马尔科夫模型 176
9.1.3
HMM的组成和序列生成 179
9.1.4
三个基本问题 181
9.2 求解HMM三个基本问题 182
9.2.1
评估问题 183
9.2.2
解码问题 187
9.2.3
学习问题 190
习题 196
第10章 支持向量机 197
10.1
支持向量机介绍 198
10.2
间隔超平面 198
10.2.1
SVM问题的形式化描述 199
10.2.2
函数间隔和几何间隔 199
10.2.3
间隔分类器 201
10.2.4
使用优化软件求解SVM 203
10.3
对偶算法 204
10.3.1
SVM对偶问题 204
10.3.2
使用优化软件求解对偶 SVM 206
10.4
非线性支持向量机 208
10.4.1
核技巧 208
10.4.2
常用核函数 210
10.5
软间隔支持向量机 213
10.5.1
动机及原问题 213
10.5.2
对偶问题 214
10.5.3
使用优化软件求解软间隔 对偶SVM 215
10.6
SMO算法 218
10.6.1
SMO算法描述 218
10.6.2
简化SMO算法实现 221
10.7
LibSVM 226
10.7.1
LibSVM的安装 226
10.7.2
LibSVM函数 228
10.7.3
LibSVM实践指南 230
习题 232
第11章 推荐系统 233
11.1
推荐系统介绍 234
11.1.1
什么是推荐系统 234
11.1.2
数据集描述 235
11.1.3 推荐系统符号 236
11.2
基于用户的协同过滤 236
11.2.1
相似性度量 237
11.2.2
算法描述 239
11.2.3
算法实现 240
11.3
基于物品的协同过滤 241
11.3.1
调整余弦相似度和预测 241
11.3.2
Slope One算法描述 与实现 243
11.4
基于内容的协同过滤算法与实现 247
11.4.1
算法描述 247
11.4.2
算法实现 250
习题 251
第12章 主成分分析 253
12.1
主成分分析介绍 254
12.2
本征值与奇异值分解 255
12.2.1
本征值分解 255
12.2.2
奇异值分解 256
12.3
PCA算法描述 256
12.3.1
PCA算法 257
12.3.2
从压缩表示中重建 258
12.3.3
确定主成分数量 258
12.4
PCA实现 260
12.4.1
假想实例 260
12.4.2
MNIST实例 264
习题 265
习题参考答案 267
符号表 294
参考文献 295
前言
机器学习无疑是当今炙手可热的领域,机器学习工程师、数据科学家和大数据工程师逐渐成为为热门的新兴职业,各行各业的公司都在寻求具备这些技能的人才。技术职位的爆炸式增长吸引了很多在校大学生、社会IT人员将机器学习职位纳入自己的职业规划中。由于具备机器学习相关技能才更有可能在上述新兴职业中获得成功,因此一本容易上手的入门书籍肯定会对初学者有着莫大的帮助,本书就是为初学者精心编写的。
初学者学习机器学习课程一般会面临两大障碍:大障碍是数学基础,机器学习要求学习者具备数学基础,书籍中大量的公式是初学者的噩梦,尤其是对于已经离开大学走向工作岗位的爱好者,要从头开始去学习和理解数据分布及模型背后的数学原理需要花费很长的时间和精力,学习周期非常漫长;第二大障碍是编程实践,并不是所有人都擅长编代码,学习者只有自己亲手用代码实现机器学习的各种算法,亲眼见到算法解决了实际问题,才能更深入地理解算法。除非想做高精尖的前沿研究,理论研究和公式推导并非是大多数人的专长,如果只是想更合理地应用机器学习来解决实际问题,必需的数学知识就可以降低到大多数人都可以理解的程度,使用MATLAB编程实现机器学习算法也比使用C 或Java等语言容易得多。
本书就是为了让初学者顺利入门而设计的。首先,本书只讲述机器学习常用算法的基本原理,并不追求各种算法大而全但简略的罗列,学习并深入理解这些精挑细选的算法后,能够了解基本的机器学习算法,使用适合的算法来解决实际问题。其次,本书使用MATLAB R2015b实现了常用的机器学习算法,读者能亲眼看见算法的工作过程和结果,加深对抽象公式和算法的理解,逐步掌握机器学习的原理和技能,拉近理论与实践的距离。再次,每章都附有习题和习题参考答案,其中,一部分习题是为了理解正文内容而设置的,另一部分习题是为了降低正文中的数学要求,将一些必要但枯燥的公式推导放在习题中,供读者有选择性地学习。后,本书专门设有读者QQ群,群号为278724996,欢迎读者加群,下载书中源代码,与作者直接对话探讨书中技术问题。
本书共分12章。第1章介绍机器学习的基本概念、MATLAB的数据格式和示例数据集;第2章介绍线性回归,主要内容包括线性回归的模型定义及模型假设和评估、小二乘法、梯度下降、多变量线性回归、随机梯度下降、正规方程、多项式回归和正则化;第3章介绍逻辑回归,主要内容包括逻辑回归的假设函数、决策边界、梯度下降算法、MATLAB优化函数、多项式逻辑回归、多元分类、Softmax回归;第4章介绍贝叶斯分类器,主要内容包括判别模型和生成模型的概念、极大似然估计、高斯判别分析、朴素贝叶斯和文本分类;第5章介绍模型评估与选择,主要内容包括训练集验证集测试集划分、交叉验证、性能度量,以及偏差与方差折中;第6章介绍K-均值和EM算法,主要内容包括聚类分析的基本概念、K-means算法应用、EM算法,以及混合高斯模型;第7章介绍决策树,主要内容包括决策树的基本概念、ID3算法、C4.5算法,以及CART算法的原理与实现;第8章介绍神经网络,主要内容包括神经元、神经网络结构、反向传播算法原理与实现;第9章介绍隐马尔科夫模型,主要内容包括HMM的基本概念、HMM的组成和序列生成、求解HMM三个基本问题的算法,以及MATLAB代码实现;第10章介绍支持向量机,主要内容包括支持向量机的基本概念、间隔超平面、对偶算法、非线性支持向量机、软间隔支持向量机、SMO算法和LibSVM库的使用;第11章介绍推荐系统,主要内容包括推荐系统的基本概念、基于用户的协同过滤算法、基于物品的协同过滤算法和基于内容的协同过滤算法;第12章介绍主成分分析,主要内容包括主成分分析的基本概念、本征值分解和奇异值分解、PCA算法的计算步骤、如何从压缩表示中重建、如何选取主成分的数量以及PCA实现。
本书的编写异常艰难,从选题到付梓花费约两年时间。和大多数人一样,笔者的脑袋也是单任务处理系统,不善于同时处理多个任务,因此经常迷失在算法、代码、习题、绘图和文字的沼泽中不能自拔,多亏朋友和家人的支持才能坚持到后。尽管在写作中付出很多艰辛的劳动,限于笔者的学识、能力和精力,书中难免会存在一些缺陷,甚至错误,敬请各位读者批评指正。感谢提供宝贵建议的贡献者,昆明理工大学计算机系吴霖老师经常与笔者讨论机器学习问题,并为本书的内容选取提出了很多建设性建议,感谢吴霖老师的贡献。另外,还要感谢昆明理工大学提供的宽松的研究环境。感谢清华大学出版社的编辑老师在出版方面提出的建设性意见和给予的无私帮助。感谢购买本书的朋友,欢迎批评指正,你们的批评建议都会受到重视,并在将来再版中改进。
袁梅宇
于昆明理工大学
第1章 机器学习介绍
机器学习试图让机器像人类那样去理解数据,从大量的数据中发现规律和提取知识,不断地完善自我。机器学习是人工智能的一个重要研究方向,研究如何从数据中提取一些潜在的有用模式的算法。
本章首先介绍机器学习的基本概念,然后介绍MATLAB的数据格式和示例数据集,后介绍如何使用各种统计度量来描述数据分布特征。
1.1
机器学习简介
机器学习是人工智能研究领域中极其重要的研究方向,也是发展快的分支。每过一段时间,我们都能听到一些新的应用在各个领域大展宏图的消息,如谷歌DeepMind团队研发的人工智能程序AlphaGo战胜世界围棋名将李世石、强AlphaGo Zero的横空出世、无人驾驶公交客车正式上路,等等。相比这些新闻,我们也许更关心其背后的支撑技术,机器学习就是AlphaGo和无人驾驶等背后的重要技术。
1.1.1
什么是机器学习
机器学习是一门多领域交叉学科,其涉及概率论、统计学、优化理论、算法复杂度理论等多门学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构并使之不断改善自身的性能。
至今,还没有统一的机器学习定义,而且也很难给出一个公认和准确的定义。一种经常引用的英文定义来自Tom Mitchell的《机器学习》一书,原文是:A computer program is said to learn from experience E with respect
to some class of tasks T and performance measure P, if its’performance
at tasks in T, as measured by P, improves with experience E. 对应的中文译文是:如果用P来衡量计算机程序在任务T上的性能,根据经验E在任务T上获得性能改善,那么我们称该程序从经验E中学习。
不同于通过编程告诉计算机如何计算来完成特定任务,机器学习是一种数据驱动方法(data-driven approach),意味着方法的核心是数据。也许读者对此有疑问,让我们举例进行说明。
普通意义上的学习是通过观察获得技能的过程,学习过程如图1-1所示。例如,某天大人告诉小孩子前面那只深棕色的小动物是猫,小孩子通过观察认识猫的颜色和形态。另一天大人告诉小孩子前面那只白色的小动物也是猫,小孩子观察到尽管毛色不同,但猫的形态一样,学习到辨识猫的技能是不管毛色,只重形态。因此,下次如果遇到一只黑猫,小孩子也能准确地叫出猫。
图1-1 普通学习过程
机器学习是通过数据来获取模式的过程,模式可以视为对象的组成成分或影响因素间存在的规律性关系,简单地说,模式相当于事物的规律,机器学习过程如图1-2所示。机器学习能够自动识别数据中的模式,然后使用已发现的模式去预测未来的数据,或者在不确定条件下进行某种决策。
图1-2 机器学习过程
我们已经知道,使用计算机语言编程能够做很多事情,但是,如果要求编程实现在一堆照片中识别并标记出猫或狗,我们却不知道该怎样做。技术难点在于我们不知道该怎样对猫和狗的照片进行建模,也就是说,一些模式我们无法通过数据直接进行归纳总结。机器学习恰好能解决这类问题,我们将一些标记为猫和狗的照片让某个分类器(如神经网络)进行学习,分类器自动识别照片中猫和狗的模式,经过训练后,分类器分别得到猫和狗的模型,然后使用模型来识别未标记照片中是否有猫或狗。
机器学习的主要内容是研究如何从数据中构建模型的学习算法。有了学习算法之后,将已有数据(称为训练数据集)提供给它,算法就能根据这些数据构建模型,从而使用模型进行预测。因此,机器学习的一个核心内容就是研究学习算法。
评论
还没有评论。