西瓜书学习笔记——第二章:模型评估与选择

本文介绍了模型评估的关键概念,包括经验误差、过拟合和欠拟合,强调了泛化误差的重要性。讨论了学习器泛化误差的评估方法,如留出法、交叉验证法和自助法,并详细阐述了各种方法的优缺点。此外,还探讨了性能度量,如错误率、查准率、查全率、F1分数和ROC曲线,以及如何通过假设检验和t检验比较学习器的性能。最后,引入了偏差-方差分解,解释了泛化误差的来源和优化策略。
摘要由CSDN通过智能技术生成

2.1 经验误差与过拟合

2.1.1 一些概念

  • 错误率(error rate):分类错误的样本占样本总数的比例
  • 精度(accuracy):1 - 错误率
  • 误差(error):学习器的实际预测输出与样本的真实输出之间的差异
  • 训练误差(training error) | 经验误差(empirical error):学习器在训练集上的误差
  • 泛化误差(generalization error):在新样本上的误差

2.1.2 过拟合与欠拟合

我们希望得到的是泛化误差小的学习器。

但是,实际上我们能做的是先让经验误差最小化,而且通常我们也能得到一个经验误差很小,在训练集上表现很好的学习器。例如甚至对训练集数据做到100%的精度,但这样的学习在多数情况下都不好。因为实际上我们想要的是在新样本上表现得很好的学习器,即前面提到的泛化误差小的学习器。

所以,我们想要学习器获得的是训练集数据的“普遍规律”和一般性质,而不是把样本的一些自身特点也学习到,这样会导致泛化性能下降,这种现象就是过拟合

与过拟合相对应的就是欠拟合,指的是学习器连训练集的一般性质都没有学习到

西瓜书上的例子就很生动地解释了过拟合和欠拟合的概念
在这里插入图片描述
欠拟合:由学习能力低下造成。相对过拟合而言更容易克服(如:决策树扩展分支,神经网络增加训练轮数)

过拟合:由学习能力太过于强大造成。要克服过拟合比较麻烦,过拟合是机器学习面临的关键障碍,各类机器学习算法都带有针对过拟合的措施,但过拟合是无法彻底避免的,我们所能做的只是缓解过拟合。

2.2 学习器泛化误差评估方法

这里主要指的是对学习器的泛化误差的评估

通常,我们用一个测试集(testing set)来测试学习器对新样本的分类能力,并以测试集上的测试误差作为该学习器泛化误差的近似

通常我们假设测试集也是从样本真实分布中独立同分布采样而得,且测试集
应尽量与训练集互斥,否则会使我们获得虚低的泛化误差。

我们主要讨论的,便是如何从当前所拥有的数据集进行划分得到训练集和测试集,主要有以下几种方法:

2.2.1 留出法

采用留出法将数据集划分为训练集和测试集时的要求如下:

  • 划分方式:分层采样
  • 划分次数:多次划分分别计算
  • 划分数量

留出法:

  1. 划分方式:保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。

以分类任务为例,我们需要保证训练集和测试集中样本类别的比例相似。从采样的角度看,这种保持样本类别比例的采样方式称为分层采样(stratified sampling)。若训练集和测试集的样本类别比例差别太大,则误差估计会由于它们的数据分布差异而产生偏差

  1. 划分次数:采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。

在1的前提下,我们仍然有多种划分方式将数据集划分为不同的训练集/测试集,而不同的训练集/测试集会使得训练的模型评估结果有所不同。可见,单次留出法的评估结果不够稳定可靠。故采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。如进行100次随机划分,每次产生一个训练集/测试集用于评估,100次后就得到100个结果,而留出法返回的就是这100个结果的平均。

  1. 划分数量:将大约 2 3 至 4 5 \dfrac{2}{3}至\dfrac{4}{5} 3254的样本用于训练,剩余样本用于测试。

此为留出法在划分训练集和测试集数量时的一个窘境。若训练集过小,则评估结果偏差大;若测试集过小,则评估结果方差大(一般而言,测试集至少要有30个样本)

2.2.2 交叉验证法

交叉验证法(cross validation)的具体步骤:

  1. 通过分层采样的方法将数据集 D D D划分为 k k k个大小相似的互斥子集(注意分层采样之后的每个子集数据分布具有一致性)
  2. 每次用 k − 1 k-1 k1个子集的并集作为训练集,余下的那个子集作为测试集。显然,这样就可以获得 k k k组不同的训练集+测试集组合,从而进行 k k k次训练和测试,最终返回的是这 k k k个测试结果的均值。
  3. 同留出法,将数据集 D D D划分为 k k k组有多种不同的方式。为减少由于数据集划分的不同而引入的差别, k k k折交叉验证通常要随机使用不同的划分重复 p p p,最终的结果是这 p p p k k k折交叉验证结果的平均值(常见的为10次10折交叉验证)。

交叉验证法评估结果的稳定性和保真性在很大程度上取决于 k k k的取值,通常把交叉验证法称为“ k k k折交叉验证”(k-fold cross validation)。最常用的取值为10(还有5、20等),此时称为10折交叉验证

交叉验证法的特例:留一法

假定数据集 D D D中包含 m m m个样本,若令 k = m k=m k=m,则得到了交叉验证法的一个特例:留一法(Leave-One-Out,简称LOO)。显然,留一法的独特之处在于它不受样本随机划分的影响,因为 m m m个样本只能划分成 m m m个数据子集,即每一个样本就为一个子集(也即不需要像其它的交叉验证法那样需要 p p p次随机划分数据集进行 p p p次的实验)。

由于留一法的训练集只比整个数据集少一个样本,故往往认为留一法的评估结果比较准确(但不一定准确)。但是,它的缺陷也十分棘手:

  1. 可以看出,留一法需要训练的模型数量为 m m m个。当样本规模 m m m很大时,这显然会带来难以忍受的计算开销(如有一百万个样本,则需训练一百万个模型,再考虑上调参,计算开销十分恐怖)
  2. 留一法的估计结果未必永远比其他评估方法准确(No free lunch在这里同样适用)

2.2.3 自助法(适合小数据集)

背景:

我们希望评估的模型是用数据集 D D D训练的,但是对于之前的留出法和交叉验证法,我们都保留了一部分作为测试集,这样会引入样本规模不同导致的估计偏差。而留一法虽然相对来说样本规模带来的影响较小(训练集只少一个样本),但是计算复杂度太高。

基于以上背景问题,我们想要一种既能减少样本规模不同带来的影响,又能高效地进行实验估计的方法。而自助法(bootstrapping)是一个比较好的解决方案。

自助法直接以自助采样法(bootstrap sampling)为基础,即以有放回采样的方式采样出训练集 D ′ D' D

训练集 D ′ D' D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值