(四)欠拟合、过拟合和模型选择

1、训练误差和泛化误差
训练误差(training error):

模型在训练数据集上表现出的误差

泛化误差(generalization error):

模型在任意一个测试数据样本上表现出的误差的期望

训练数据集学到的模型参数会使模型在训练数据集上的表现优于或等于在测试数据集上的表现。给定测试数据集,我们通常用机器学习模型在该测试数据集上的误差来反映泛化误差。但无法从训练误差估计泛化误差,降低训练误差并不意味着泛化误差一定会降低。

2、欠拟合和过拟合
欠拟合(underfitting):

模型无法得到较低的训练误差时,我们将这一现象称作欠拟合

过拟合(overfitting):

当模型的训练误差远小于它在测试数据集上的误差时,我们称该现象为过拟合

虽然有很多因素可能导致这两种拟合问题,在这里我们重点讨论两个因素:模型复杂度和训练数据集大小。

2.1 模型复杂度

给定训练数据集,如果模型的复杂度过低,很容易出现欠拟合;如果模型复杂度过高,很容易出现过拟合。
这里写图片描述

2.2 训练数据集大小

一般来说,如果训练数据集过小,特别是比模型参数数量更小时,过拟合更容易发生。泛化误差不会随训练数据集里样本数量增加而增大。因此,我们通常希望训练数据集大一些,特别当模型复杂度较高时,例如训练层数较多的深度学习模型时。

3种情况:(先看训练集误差判断是否达到很小值,再看测试集误差能否也达到很小值)

(1)函数拟合(正常)
模型的训练误差和在测试数据集的误差都较低。训练出的模型参数也接近真实值。
这里写图片描述
(2)函数拟合(欠拟合)
训练误差在迭代早期下降后便很难继续降低。在完成最后一次迭代周期后,训练误差依旧很高。
这里写图片描述
(3)训练量不足(过拟合)
在迭代过程中,即便训练误差较低,但是测试数据集上的误差却很高。这是典型的过拟合现象。
这里写图片描述

3、模型选择

在选择模型时,我们可以切分原始训练数据集:其中大部分样本组成新的训练数据集,剩下的组成验证数据集(validation data set)。我们在新的训练数据集上训练模型,并根据模型在验证数据集上的表现调参和选择模型。最后,我们在测试数据集上评价模型的表现

4、K 折交叉验证

验证模型常用方法叫做K 折交叉验证(k-fold cross-validation)。把原始训练数据集分割成K个不重合的子数据集。然后做K次模型训练和验证。每一次,我们使用一个子数据集验证模型,并使用其他K−1个子数据集来训练模型。在这K次训练和验证中,每次用来验证模型的子数据集都不同。最后,只需对这K次训练误差和验证误差分别求平均作为最终的训练误差和验证误差。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值