周志华老师亲讲-西瓜书全网最详尽讲解-1080p高清原版《机器学习初步》
周志华机器学习(西瓜书)学习笔记(持续更新)
周志华《Machine Learning》学习笔记
绪论
基本术语
- 数据集(data set):一堆关于某种事物的 数据的集合
- 示例(instance)或样本(sample):每条记录是关于一个事件或对象的描述,称为一个示例或样本
- 属性(attribute)或特征(feature):反映事件或对象在某方面的表现或性质的事项,例如“颜值”
- 属性值(attribute value):属性上的取值,例如“美丽动人”
- 学习(learning)或训练(training):从数据中学得模型的过程
- 训练数据(training data):训练过程中使用的数据
- 训练样本(training sample):训练数据中的每一个样本
- 训练集(training set):训练样本组成的集合
- 假设(hypothesis):学得模型对应了关于数据的某种潜在的规律,也称假设
- 真相或真实(ground-truth):这种潜在规律自身
- 分类(classification):预测的是离散值的学习任务,例如‘0’、‘1’
- 分类中又分为二分类和多分类任务。
二分类顾名思义,只需分2类,一般分别称为“正类”与“反类”,且一般正类用“1”表示,反类用“0”表示。
- 分类中又分为二分类和多分类任务。
- 回归(regression):预测的是连续值的学习任务
- 测试(test):学得模型后,对其进行预测的过程
- 测试样本(test sample):被预测的样本
- 监督学习:训练数据有标记信息的学习过程,也叫有导师学习
- 无监督学习:训练数据木得标记信息的学习过程,也叫无导师学习
分类和回归属于典型的监督学习问题,聚类属于无监督学习问题。
- 分类:训练数据已经有人为标记信息,计算机通过学习这些训练数据,把未出现在训练样本中的陌生的数据 分到已有的类别中的过程
- 聚类:训练数据中没有任何标记信息,计算机需要自行寻找特征,将这些数据分为几个簇,然后把陌生的数据分到计算机自己划分的几个簇中的过程
- 聚类(clustering):把训练集中样本分为若干组,每一组称为一“簇”(cluster)
- 泛化:机器学习所学得模型适用于陌生数据的能力。
机器学习的目的:使学得的模型可以更好地适用于未知样本。
我们常说泛化性能优劣,即模型对于陌生数据的适用性的好坏。
一般我们假设全体数据在样本空间上满足一个未知的分布,那么学习的目的就可以认为寻找最契合这个分布的一个函数来把训练样本完美的分到各自的类中。一般情况下,训练样本越多,我们得到的关于该分布的信息就越多,这样就越有可能找到这个函数,也就越有可能通过学习活得具有强泛化能力的模型。
假设空间
归纳和演绎是科学推理的两大基本手段,前者是从特殊到一般的“泛化”过程,即从具体的事实归结出一般性规律;后者则是从一般到特殊的“特化”,即从基础原理推导出具体状况。
学习过程可以看作是一个在所有假设组成的空间中进行搜索的过程,目的是找到与训练集匹配的假设。而现实中,可能会有多个假设和训练集一致,即存在一个与训练集一致的“假设集合”,称之为“版本空间”
归纳偏好
机器学习算法在学习过程中对某种假设类型的偏好,称为归纳偏好
需要注意,任何一个机器学习算法都有其归纳偏好,否则将无法产生确定的学习结果
- NFL定理或者没有免费的午餐定理(No Free Lunch Theorem):算法A若在某问题上比另一个算法B好,比存在另一些问题算法B比算法A好。换言之,无论学习算法A多么聪明,学习算法B多么笨拙,它们的期望性能完全一样(总误差与学习算法无关)
但需要注意,NFL定理的前提是所有问题出现的机会相同或所有问题同等重要,但是实际情况并非如此.
NFL定理最重要的寓意是:具体问题具体分析!即脱离具体问题而空泛的谈论什么学习算法更好毫无意义.
最优方案:按需设计,度身定制 - 奥卡姆剃刀原则主张选择和经验观察一致的 最简单假设。若无必要,勿增实体!
习题
- 下列有关机器学习基本术语的说法错误的是
A、从数据中学得模型的过程称为“学习”或“训练”
B、训练过程中使用的数据称为“训练数据”,每一个样本称为一个“训练样本”,训练样本组成的集合称为“训练集”
C、学得模型对应了关于数据的某种潜在的规律,称为“假设”
D、学习过程就是为了找出数据的某种潜在规律,这个规律自身,一般称为“数据特征”
解析:学习过程是为了找出数据的某种潜在规律,这种规律自身一般称为假设;从数据中学得模型的过程称为学习,也可以称为训练;训练过程使用的数据称为训练数据,其中的样本称为训练样本。
- 以下关于机器学习预测任务的说法错误的是()
A、一般地,预测任务是希望通过对训练集进行学习,建立一个从输入空间 x xx 到输出空间 y yy 的映射
B、对于二分类任务,一般令 y = { − 1 , + 1 } y={-1,+1}y={−1,+1}或 { 0 , 1 } {0,1}{0,1}
C、对于回归问题,一般 y = R y=Ry=R
D、预测任务不需要训练样本的的标记信息
解析:监督学习需要训练样本的标记信息
- 学出来的模型适用于新样本的能力,称为 ____ 能力。该能力越强,说明学得的模型越能很好地适用于整个样本空间。
解析:泛化
泛化能力(generalization ability)是指机器学习算法对新样本的适应能力。 学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。这种能力也是学习到的模型对未知数据的预测能力,这个未见过的测试数据必须是和训练数据处于同一分布,不在同一分布的数据是不符合独立同分布假设的(对同一规律不同的数据集的预测能力)。通常通过测试误差来评价学习方法的泛化能力。 - 学得模型后,使用其进行预测的过程称为____。
解析:测试
学得模型后,使用其进行预测的过程称为"测试" (testing) ,被预测的样本称为测试样本" (testing sample)。 - 下列说法错误的是()
A、模型是通过学习算法得到的
B、机器学习通常解决高度不确定性和复杂性的问题
C、分类和回归是监督学习的代表
D、机器学习一定需要类别标记
解析:D 聚类等任务不需要类别标记
- 下列说法错误的是()
A、学得模型适用于新样本的能力称为“泛化”能力
B、机器学习一般有“独立同分布”假设
C、机器学习在只要见过的数据上做好就行了,未见过样本上的性能不重要
D、一般假设拿到的所有数据都来自一个潜在的分布
解析:C机器学习主要用于处理未来的新数据
- 把见过的汽车分成若干组,这是一个____(分类/回归/聚类)任务
解析:聚类
把见过的汽车分组这样一个任务中,任务本身并未要求按什么样的准则划分、划分为什么样的类别;这样我们很难对汽车加上合适的label并将其看作是一个监督学习来实现分类过程。故本题应为无监督学习中的聚类任务,本题应填聚类。
模型评估与选择
经验误差和过拟合
何为一个好的模型,错误率低、精确度高、召回率高等指标都可以,但视具体任务和使用者需求而异。在评价模型性能时,我们更希望它泛化能力强。
- 错误率E(error rate)=分类错误的样本数a/总样本数m
- 精度(accuracy)=1 - 错误率E
- 误差(error):更一般地,把学习器的实际预测输出和样本的真实输出之间的差异称为误差
- 训练误差(training error)或经验误差(empirical error):学习器(模型也称为学习器)在训练集上的误差。经验误差并非越小越好,因为会出现过拟合
- 泛化误差(generalization error)或测试误差:在新样本上的误差。泛化误差越小越好
实际希望的,是在新样本上能表现得很好的学习器。但可能出现的问题是:
- 欠拟合(underfitting):对训练样本的一般性质尚未学好。例如以为有四肢就是人类。
- 过拟合或过配(overfitting):对训练样本学得太“好”,已经把训练样本本身的一些特点作为所有潜在样本都会具有的一般性质。例如长得帅才是人类。

进行模型评估和选择:

- 没有未来数据,如何知道模型的泛化能力=>涉及到评估方法的设计
- 对某个具体任务的需求把握,是性能度量要考虑的。
例如信用卡欺诈的检测,本身发生的概率就极低,那么认定所有的都不是欺诈准确率高达99%,但不能实现找出欺诈的目标并没有意义。 - 为了说明模型在统计意义上表现好,我们最需要考虑比较检验
评估方法
测试集应该与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。
通常,我们会得到一个含m个样例的数据集,如何通过适当处理,划分为训练集S和测试集T,有以下三种常见做法:
留出法(hold-out)
留出法即直接将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T,保证S∩T=∅且S∪T=D。

在划分训练集和测试集之后,根据在测试集上不同算法的表现选择最优的算法,然后再用该算法去在全部的数据M上训练的模型给用户。

交叉验证法(cross validation)
交叉验证法即将数据集D划分为k个大小相似的互斥子集,即D=D1∪D2∪…∪Dk,Di∩Dj=∅(i≠j)。每个子集Di都尽可能保持数据分布的一致性,即从D中分层采样得到。然后每次用k-1个子集的并集作为训练集,剩下的那个子集作为测试集,这样就可以得到k组训练/测试集,从而进行k次训练和测试,最终返回这k次测试的均值。

留一法(Leave-One-Out,简称LOO):假定数据集D中有m个样本,令k=m,则会发现,m个样本只有唯一的划分方法来划分为m个子集——每个子集一个样本,所以留一法的训练集与数据集D相比只差一个样本,故留一法中被实际评测的模型与期望评估的用D训练出的模型很相似,因此,留一法的评估结果往往被认为较准确。
但是未必永远适用,记住NFL“没有免费的午餐”定理在机器学习各个环节都是适用的。
自助法(bootstrap sampling)
在留出法和交叉验证法中,由于保留了一部分样本作为测试,所以实际评估的模型中所使用的训练集比D小,而我们希望评估的是D训练出的模型,所以这必然会引入一些因训练样本规模不同而导致的估计偏差。留一法受训练样本规模变化的影响较小,但计算复杂度又太高了。
自助法是种较好的解决方案。自助法以自助采样(bootstrap sampling)为基础(自助采样也叫“可重复采样”与“有放回采样”):
给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次从D中随机选一个样本,将其拷贝如D’中,再将其放回D中,重复m次,那么就可以得到包含m个样本的数据集D’。显然D中一部分样本会在D’中多次出现,而另一部分不出现,由一个简单的估计可以得到样本在m次采样中不被采到的概率约为
把D’当做训练集,D-D’作为测试集,则实际评估模型与期望评估模型都有m个训练样本,而我们仍然有数据总量1/3的样本用于测试,这样的测试结果,称为“包外估计”。

- 小结:
- 自助法在数据量较少,难以有效划分训练集和测试集的时候很有用,然而自助法改变了初始数据分布,引入了估计偏差
- 故在初始数据量足够的时候,留出法和交叉验证法更常用一些。
调参和最终模型
- 调参(parameter tuning):在进行模型评估和选择时,除了要对使用学习算法进行选择,还需要对算法参数进行设定,即“参数调节”或“调参”(其中模型选择指的是确定变量,将使用的算法是变量,将确定的算法参数也是变量,对其的确定都是模型选择的过程)。
我们通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,
- 验证集(validation set):模型评估与选择中用于评估测试的数据集。

注意调参数的过程也是训练过程的一部分,则调参数的数据集不能来自测试集。
例如,在研究对比不同算法的泛化性能时,我们用测试集上的判别效果来估计泛化性能,而把训练数据另外划分为测试集和验证集,基于验证集上的性能来进行模型选择和调参。

性能度量(performance measure)
对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,即性能度量。性能度量反映了任务需求。
要评估学习器f的性能,就要把学习器预测结果f(x)和真实标记y进行比较。
本文已提到过的错误率和精度,是分类任务种最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务

但是我们通常会有更复杂的需求,引入查准率和查全率与F1.
对于二分类任务,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)与假反例(false negative)四种情形。分别对应为TP、FP、TN、FN。
TP:被模型预测为正类的正样本(实际为正,预测也为正)。
TN:被模型预测为负类的负样本(实际为负,预测也为负)。
FP:被模型预测为正类的负样本(实际为负,预测为正)。
FN:被模型预测为负类的正样本(实际为正,预测为负)。

查准率和查全率是一对矛盾的度量。一般,查准率高时,查全率往往偏低;而查全率高时,查准率偏低。考虑如何均衡两者,一种办法是F1度量

比较检验
假设检验
交叉验证t检验
McNemar检验
习题
- 为了说明模型在统计意义上表现好,我们最需要考虑
A、评估方法
B、性能度量
C、比较检验
D、以上三个选项都不需要考虑
解析:C
比较检验主要是用于判断模型是否在统计意义上表现良好;其余A选项的评估方法,主要用于衡量模型在未来的表现好坏;B选项性能度量是针对具体问题给定的度量标准,对不同问题不太一样(如欺诈问题,10次欺诈99990次非欺诈,如果全分类为非欺诈,虽然精度很大,但是对该问题没有意义)。 - 下列什么方法可以用来获得从原始数据集中划分出“测试集”?
A、留出法
B、交叉验证法
C、自助法
D、以上三个选项都可以
解析:D - 调参以什么集合上的性能作为评价标准?
A、训练集
B、测试集
C、验证集
D、以上选项都可以
解析:C - 当我们使用一个多项式函数去逼近数据集时,下面哪一个说法是正确的?
A、多项式的次数是超参数
B、多项式的系数是超参数
C、多项式的次数必须通过数据去学习
D、以上说法都是正确的
解析:A
在使用多项式逼近数据集时,会人工赋予多项式次数(x的多少次方),然后通过训练数据学习多项式的系数(y=wx+b的w和b);因此多项式的次数是超参数,而多项式的系数不是超参数。超参数虽然可以通过学习得到,但一般由人工决定,C选项太过绝对。 - 在训练集上的误差被称作
A、泛化误差
B、经验误差
C、测试误差
D、以上三个选项都不对
解析:B
训练误差(training error)或经验误差(empirical error):学习器(模型也称为学习器)在训练集上的误差。经验误差并非越小越好,因为会出现过拟合
泛化误差(generalization error)或测试误差:在新样本上的误差。泛化误差越小越好 - 当学习任务对数据分布的轻微变化比较鲁棒且数据量较少时,适合使用什么样的数据集划分方式?
A、留出法
B、交叉验证法
C、自助法
D、以上三个选项都可以
解析:C
本题关键是考虑“数据量较少”,此时无论是使用留出法还是交叉验证法,都会使得训练集数据量进一步变少,而使用自助法则不会有这样的问题(不改变样本数量);其次考虑“对数据分布轻微变化比较鲁棒”,说明使用自助法时带来的训练数据分布变化不会有太多负面影响。 - 考虑一个三分类数据集,其由30个西瓜,30个苹果,30个香蕉构成。先有一个学习策略为预测新样本为训练集中样本数目最多类别的分类器(存在多个类别样本数量一样多时则随机选择一个类别预测),请问通过什么评估方式会导致其平均准确率为0。____(留出法/交叉验证,每一折样本数大于1/留一法)
解析:留一法
线性模型
基本形式
给定由d个属性描述的示例x=(x1; x2; ……;xd),其中xi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的的线性组合来进行预测的函数,即

一般用向量形式写为

其中
线性模型形式简单、易于建模、有很好的可解释性。
线性回归
- 对离散属性
- 若属性值间存在“序”(order)关系,
可通过连续化将其转化为连续值。
例如属性“身高”的取值“高”“矮”可转化为{1.0,0.0},三值属性“高度”的取值“高”“中”“低”可转化为{1.0,0.5,0.0} - 若属性值间不存在序关系,
假定有k个属性值,则通常转化为k维向量
例如属性“瓜类”的取值“西瓜”“南瓜”“黄瓜”可转化为(0,0,1),(0,1,0),(1,0,0)
- 若属性值间存在“序”(order)关系,

给定数据集D = {(x1,y1),(x2,y2),…,(xm,ym)},其中xi = (xi1;xi1;…;xid),yi ∈R。线性回归(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。线性回归试图学得:

确定w和b 关键在于如何衡量f(x)和y之间的差别。均方误差是回归任务中最常用的性能度量,则可试图把均分误差最小化,即

均方误差具有很好的几何意义,它对应了常用的欧几里得距离或简称“欧氏距离”(Euclidean distance)。基于均方误差最小化来进行模型求解的方法称为最小二乘法(least square method)。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。

求解w和b使均方误差最小化的过程,称为线性回归模型的最小二乘“参数估计”(parameter estimation)。可对E(w,b)分别对w和b求导,并令导数为0解得闭式(closed-form)解。
多元线性回归

更一般的情形是如同先前提到的数据集D,样本由d个属性描述。此时我们试图学得:
称为“多元线性回归”(multivariate linear regression)。
类似的,可利用最小二乘法对w和b进行估计。为便于讨论,我们把w和b吸收入向量形式 w ^ \widehat{w} w

最低0.47元/天 解锁文章
2809

被折叠的 条评论
为什么被折叠?



