2.1 经验误差与过拟合

分类错误的样本数占样本总数的比例称为错误率(error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m;

1 - a/m称为精度(accuracy),即精度=1-错误率

学习器的实际预测输出与样本的真实输出之间的差异称为误差(error)

学习器在训练集上的误差称为训练误差(training error)经验误差(empirical error)。在新样本上的误差称为 泛化误差(generalization error)

当学习器把训练样本学得太好,即很有可能将训练样本自身的一些特点当做了潜在样本会具有的一般性质,这样就会导致泛化性能下降,这种现象在机器学习中称为过拟合(overfitting)。当学习器对训练样本的一般性质都未学好时,称为欠拟合(underfitting)

过拟合是机器学习面临的关键障碍,对于各类学习算法来说,过拟合是无法彻底避免的,只能缓解。

 

2.2 评估方法

模型选择问题:选用哪个学习算法?选用哪种参数配置?

通过实验测试来对学习器的泛化误差进行评估进而选择模型。为此,需要一个测试集(testing set)来测试学习器对新样本的判别能力,然后以测试集上的测试误差(testing error)作为泛化误差的近似

测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现,未在训练过程中使用过。

训练样本相当于“习题”,测试样本相当于“考试题”,测试过程相当于“考试”。

划分训练集S和测试集T的几种方法:

1. 留出法

留出法(hold-out)直接将数据集D划分为两个互斥的集合,其中一个作为训练集S, 另一个作为测试集T,即机器学习西瓜书—第二章 模型评估与选择(学习笔记 1),机器学习西瓜书—第二章 模型评估与选择(学习笔记 1).在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。

不同的划分将导致不同的训练集和测试集,相应的,模型评估的结果也会有差异。在使用留出法时,一般要采用若干次的随机划分,重复进行实验评估后取平均值作为留出法的评估结果。

留出法,通常将数据集D的大约2/3~4/5的样本用于训练,剩余样本用于测试。

2. 交叉验证法

交叉验证法(cross validation)先将数据集D划分为K个大小相似的互斥子集,即机器学习西瓜书—第二章 模型评估与选择(学习笔记 1)机器学习西瓜书—第二章 模型评估与选择(学习笔记 1) .然后,每次用K-1个子集的并集作为训练集,剩余的那个子集作为测试集;这样就可以获得K组训练集/测试集,从而可进行K次训练和测试,最终返回的是这K个测试结果的均值

显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于K的取值,故通常把交叉验证法称为K折交叉验证(K-fold cross validation)。K最常用的取值是10,此时称为10折交叉验证,如下图所示:

                                             机器学习西瓜书—第二章 模型评估与选择(学习笔记 1)

为减少因样本划分不同而引入的差异,K折交叉验证通常要随机使用不同的划分重复P次,最终的评估结果是这P次K折交叉验证的均值,常见的有10次10折交叉验证.

假定数据集D中包含m个样本,若令k=m,则得到了交叉验证法的一个特例:留一法(Leave-One-Out).

留一法优缺点:

优点:留一法使用的训练集与原始训练集相比只少了一个样本,这就使得在绝大多数情况下,留一法中实际被评估的模型与期望评估的用D训练出来的模型很相似。因此,留一法的评估结果往往被认为比较准确。

缺点:在数据集比较大时,训练m个模型的计算开销可能是难以忍受的;另外,留一法的估计结果也未必永远比其他评估方法准确。

3. 自助法

自助法(bootstrapping)以自助采样(bootstrapping sampling)为基础,即:

给定包含m个样本的数据集D,对它进行采样产生数据集D':每次随机从D中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到,这个过程重复执行m次后,我们就得到了包含m个样本的数据集D'。显然,D中有一部分样本会在D'中多次出现,而另一部分样本不出现。

我们可将D'用作训练集,D \ D'用作测试集;这样,实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有数据总量约1/3的,没在训练集中出现的样本用于测试。这样的测试结果,亦称为包外估计(out-of-bag, estimate)。

自助法优缺点

优点:自助法在数据集较小、难以有效划分训练集/测试集时很有用;此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。

缺点:自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。因此,在初始数据量足够时,留出法和交叉验证法更常用一些。

4. 调参与最终模型

除了要对适用学习算法进行选择,还需对算法参数进行设定,这就是通常所说的参数调节或简称调参(parameter tuning)。

通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集称为验证集(validation set)。在研究对比不同算法的泛化性能时,我们用测试集上的判别效果来估计模型在实际使用过程时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。

 

 

 

 

 

 

 

相关文章: