【机器学习123】模型评估与选择 (上)

  第2章 模型评估与选择

2.1 经验误差与过拟合

先引出几个基本概念:

  • 误差(error):学习器的实际预测输出与样本的真实输出之间的差异。
  • 训练误差(training error):学习器在训练集上的误差,也称“经验误差”。
  • 测试误差(testing error):学习器在测试集上的误差。
  • 泛化误差(generalization error):学习器在新样本上的误差。
  • 错误率(error rate):分类错误的样本数占样本总数的比例。
  • 精度(accuracy) = 1 – 错误率。

显然,我们希望得到的是在新样本上能表现得很好的学习器,即泛化误差小的学习器。为达到这个目标,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判别。

然而,当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样会导致泛化性能下降;同样也存在一些学习器对训练样本的一般性质尚未学好。

  • 过拟合(overfitting):由于学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了。
  • 欠拟合(underfitting):由于学习能力低下造成的,对训练样本的一般性质尚未学好。

  在过拟合问题中,训练误差十分小,但测试误差较大;而在欠拟合问题中,训练误差和测试误差都比较大。

  目前,欠拟合问题比较容易克服,例如增加迭代次数等。

  但针对过拟合问题还没有十分好的解决方案,过拟合是机器学习面临的关键障碍,各类学习算法都必须带有一些针对过拟合的措施;且要认识到,过拟合是无法彻底避免的(可采用反证法借助NP!=P论证),所能做的只是“缓解”,或者说减小其风险。

2.2. 评估方法

面对“模型选择”问题,理想的解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的模型。但现实中通常无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为标准。

通常,通过实验测试来对学习器的泛化误差进行评估,并进而做出选择。为此,需要一个“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为泛化误差的近似估计。

测试样本应该也是从样本真实分布中独立同分布采集而得,且测试集应该尽可能与训练集互斥。

  若给定一个数据样本集合,既要训练,又要测试。如何对数据集样例进行适当的处理,从产生出训练集和测试集?

  介绍以下几种常见的方法。

2.2.1 留出法(hold-out)

将数据集D划分为两个互斥的集合,一个作为训练集S,一个作为测试集T,满足D=S∪T且S∩T=?。

首先确定训练集和测试集的样本比例。常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。对模型评估而言,从“偏差-方差”(见2.5)角度理解:测试集小时,评估结果的方差较大;训练集小时,评估结果的偏差较大。

其次划分时要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。通常采用“分层采样”来保留类别比例。

最后由于存在多种划分采样方法,从而得到不同的训练/测试集,对应模型评估的结果也有所差异。因此,单次使用留出法得到的评估结果往往不可靠,一般要采用若干次随即划分、重复进行实验评估后取平均值作为留出法的评估结果。

2.2.2 交叉验证发(或K折交叉验证,k-fold cross validation)

将数据集D划分为k个大小相同的互斥子集,满足D=D1∪D2∪…∪Dk,Di∩Dj=?(i≠j),同样地尽可能保持数据分布的一致性,即采用分层抽样的方法获得这些子集。

交叉验证法的思想是:每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就有K种训练集/测试集划分的情况,从而可进行k次训练和测试,最终返回k次测试结果的均值。K最常用的取值是10,此时称10折交叉验证;其他常用k值有5、20等。

与留出法类似,将数据集D划分为K个子集的过程具有随机性,因此K折交叉验证通常也要重复p次,称为p次k折交叉验证。常见的是10次10折交叉验证,即进行了100次训练/测试。

特殊地当划分的k个子集的每个子集中只有一个样本时,称为“留一法”(Leave-One-Out, LOO)。留一法不受随机样本划分方式的影响,且其训练集与初始数据集相比只少了一个样本。因此,留一法的评估结果往往被认为比较准确。但也有其缺陷,在数据集比较大时,训练模型的计算开销也是巨大的,即使不考虑算法调参的情况下。此外,“没有免费的午餐”定理的存在,留一法的评估结果也未必永远比其他评估方法准确。

2.2.3 自助法(bootstrapping)

  我们希望评估的是用整个D训练出的模型。但在留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这必然会引入一些因训练样本规模不同而导致的估计偏差。留一法受训练样本规模变化的影响较小,但计算复杂度又太高了。“自助法”是一个比较好的解决方案。

  自助法直接以自助采样法(bootstrapping sampling, 亦称“可重复采样”/“有放回采样”)为基础。给定包含m个样本的数据集D,每次随机从D 中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D 中,使得该样本在下次采样时仍有可能被采到。重复执行m 次,就可以得到了包含m个样本的数据集D’。

  可以得知在m次采样中,样本始终不被采到的概率取极限约为自然常数e(约0.368)。这样,通过自助采样,初始样本集D中大约有36.8%的样本没有出现在D’中,于是可以将D’作为训练集,D-D’作为测试集。这样,使得实际评估的模型与期望评估的模型都使用m个训练样本,而仍有约1/3的没在训练集中出现的样本用于测试,亦称“包外估计”(out-of-bag-estimate)。

  自助法在数据集较小,难以有效划分训练集/测试集时很有用。此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习(见第8章)等方法有很大的好处。但由于自助法产生的数据集(随机抽样)改变了初始数据集的分布,因此引入了估计偏差。在初始数据集足够时,留出法和交叉验证法更加常用。

2.2.4 调参与最终模型

大多数学习算法都有些参数需要设定,参数配置不同,学得模型的性能往往有显著差别。因此,在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,即“调参”。

机器学习通常涉及两类参数:一类是算法参数,亦称“超参数”,数目常在10个以内;另一个是模型参数,数目可能很多,例如大型“深度学习”模型甚至有上百亿个参数,两者调参方法相似,均是产生多个模型之后基于某种评估方法来进行选择;不同之处在于前者通常是由人工设定多个参数候选值后产生模型,后者则是通过学习来产生多个候选模型。

  理论上说,调参可对每种参数配置都训练出模型,然后把对应最好模型的参数作为结果。但很多参数是在实数范围内取值,因此,对每种参数配置都训练出模型来是不可行的。

现实中往往要在计算开销和性能估计之间进行折中。常用的做法,是对每个参数选定一个范围和变化步长,对有限个划分所得的数值所对应的模型进行训练和选择,使得学习过程变得可行。事实上,即使折中后的调参往往仍很困难,计算量为指数级递增。

此外,在使用一部分数据训练得到模型并选择完成之后,学习算法和参数配置已选定,此时应该用数据集D重新训练模型,使用所有的样本,最终得到的模型提交给用户。

另外,引入“验证集”(validation set),指模型评估与选择中用于评估测试的数据集,通常由训练数据划分为训练集和验证集,区别于测试集。基于验证集上的性能来进行模型选择和调参。



  各种采样方法的运用,目的是得到符合具体任务需求的模型数据训练集/验证集/测试集。

  在计算开销和性能保真这对矛盾体中,选择合适的折中方案来解决采样的各种缺陷,使得具体学习任务得到最大限度的满足。

  针对分层采样,在现实中面对的往往不只是一分为二这么简单的数据,对于分层/分类的粒度把控也是一门学问。例如,图像处理中较为复杂的多尺度/多模板分层采样再加权平均。

原文地址:https://www.cnblogs.com/cathygx/p/10079625.html

时间: 2024-10-10 18:59:20

【机器学习123】模型评估与选择 (上)的相关文章

机器学习之模型评估与选择

2.1 经验误差与过拟合 基本概念: 错误率:分类错误数/总样本数 训练误差/经验误差:学习器在训练集上所产生的误差 泛化误差:学习器在测试集上产生的误差 2.2 评估方法 在实际应用中会有多种不同的算法进行选择,对于不同的问题,我们该选择用哪种学习算法和参数配置,是机器学习中的模型选择.无法直接获得泛化误差,训练误差由于过拟合现象的存在也不适合作为标准,我们如何对模型进行评估和选择. 从训练集中随机获取测试集,测试集和训练集互斥.通过对D进行适当的处理,从中产生出训练集S和测试集T,下面介绍几

机器学习:模型评估和选择

2.1 经验误差与拟合 精度(accuracy)和错误率(error rate):精度=1-错误率 训练误差(training error)或经验误差(empirical error) 泛化误差(generalization error) 过拟合(overfitting)和欠拟合(underfitting) 过拟合:小明脸上一个伤口,机器人为没上伤口才是小明,过分在意无关细节,导致该筛的没筛到 欠拟合:身高170就是小明,结果小明好几个 2.2 评估方法 2.2.1 留出法(hold-out)

机器学习笔记(二)模型评估与选择

2.模型评估与选择 2.1经验误差和过拟合 不同学习算法及其不同参数产生的不同模型,涉及到模型选择的问题,关系到两个指标性,就是经验误差和过拟合. 1)经验误差 错误率(errorrate):分类错误的样本数占样本总数的比例.如果在m个样本中有a个样本分类错误,则错误率E=a/m,相应的,1-a/m称为精度(accuracy),即精度=1-错误率. 误差(error):学习器的实际预测输出和样本的真实输出之间的差异.训练误差或经验误差:学习器在训练集上的误差:泛化误差:学习器在新样本上的误差.

【机器学习 第2章 学习笔记】模型评估与选择

1.训练误差:学习器在训练集上的误差,也称“经验误差” 2.泛化误差:学习器在新样本上的误差 显然,我们的目标是得到在新样本上表现更好的学习器,即泛化误差要小 3.过拟合:学习器把训练样本学的太好了,导致泛化性能下降(学过头了...让我联想到有些人死读书,读死书,僵化,不懂得变通和举一反三) 原因:学习能力过于强大,把一些不太一般的特性也学了进来 针对措施:不好解决,是机器学习面临的关键障碍 4.欠拟合:就是连训练集都没学好,更别说泛化了(有点管中窥豹,盲人摸象的意思). 原因: 学习能力低下

机器学习之模型评估与模型选择(学习笔记)

时间:2014.06.26 地点:基地 -------------------------------------------------------------------------------------- 一.训练误差和测试误差 机器学习或者说统计学习的目的就是使学习到的模型不仅对已知数据而且对未知数据都都很好的预测能力.不同的学习方法会得出不同的模型.在评判学习方法的好坏时,常用的是: 1.基于损失函数的模型的训练误差                          2.模型的测试误

机器学习总结之第二章模型评估与选择

机器学习总结之第二章模型评估与选择 2.1经验误差与过拟合 错误率 = a个样本分类错误/m个样本 精度 = 1 - 错误率 误差:学习器实际预测输出与样本的真是输出之间的差异. 训练误差:即经验误差.学习器在训练集上的误差. 泛化误差:学习器在新样本上的误差. 过拟合:学习器把训练样本学的"太好",把不太一般的特性学到了,泛化能力下降,对新样本的判别能力差.必然存在,无法彻底避免,只能够减小过拟合风险. 欠拟合:对训练样本的一半性质尚未学好. 2.2评估方法 (在现实任务中,还需考虑

第二章 模型评估与选择

2.1  经验误差与过拟合 错误率和精度:通常我们把分类错误的样本占样本总数的比例称为“错误率”(error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m:相应的,1-a/m称为“精度”.(accuracy).即“精度=1-错误率”. 误差:学习期的实际预测误差和样本的真实输出之间的差异称为“误差”(error) 训练误差/经验误差:学习器在训练集上的误差称为“训练误差”(training error)或 “经验误差”(expircial error) 泛化误差(gene

模型评估与选择(1)

模型评估与选择 经验误差与过拟合 (1)错误率:分类错误的样本数占样本总数的比例 精度:1\(-\)错误率 (2)误差:学习器的实际输出与样本真实值之间的差异 误差有训练误差和泛化误差两种.训练误差指的是学习器在训练集上的误差,也称为经验误差:泛化误差指的是在新样本上的误差. (但是,对于训练样本,其分类精度即使是100%,也并不一定代表这个学习器就很好.我们希望得到的是泛化误差小的学习器) (3)过拟合:承接第2点括号内的内容,我们希望得到的学习器,是在新样本上表现很好的学习器,也就是泛化误差

机器学习基础——模型参数评估与选择

当看过一些简单的机器学习算法或者模型后,对于具体问题该如何评估不同模型对具体问题的效果选择最优模型呢. 1. 经验误差.泛化误差 假如m个样本中有a个样本分类错误 错误率:E = a / m; 精度:  1 - E 训练误差: 又叫经验误差,是指算法/模型在训练样本上的误差 泛化误差:算法/模型在新样本上的误差 显然我们希望得到泛化误差小的机器学习算法. 2.欠拟合. 过拟合 欠拟合:欠拟合是指讯息能力低下,本来一些有的特征没有学习到. 解决方法:欠拟合一般比较容易克服,例如在决策树学习中扩展分