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

经验误差与过拟合

经验误差与泛化误差

学习器的预测输出与真实样本之间的差异称为误差,根据样本的不同可以分为:

  • 经验误差:又称训练误差,指学习器在训练集上的误差
  • 泛化误差:指学习器在新样本(测试集)上的误差

过拟合

我们的目标是希望泛化误差尽可能的小,但是我们事先并不知道新样本是怎么样的,我们手头有的只是训练集的样本,因此我们只能努力使得训练误差最小化。但是并不是训练误差越小,泛化误差就一定会越小,因为训练样本是有限的,训练样本的特征并不能绝对代表总体样本的特征。当学习器把训练样本拟合得太好的时候,有可能会把训练集上的特征当成总体样本的特征,从而导致泛化性能不好,这种情况称为过拟合。过拟合是机器学习的关键性障碍,它只能缓解,而无法彻底避免

举一个比较极端的例子,假设有以下两个样本,其中是否玩游戏是要预测的标签,其他是属性。

编号性别年龄是否玩游戏
118
216

在这个训练集中,样本数较少,因此学习器会把训练样本的特征错当成是总体样本的特征,误以为男生都玩游戏,女生都不玩游戏,显然这是不合理的。

评估方法

为了评估模型的泛化误差,需要用一个测试集来测试学习器对新样本的预测能力,用测试误差来近似泛化误差。一般假设测试集与训练集是从同一个分布独立采样而来,测试集与训练集一般是互斥的。测试集的选取方式通常有以下几种:

留出法

留出法是将数据集 D 划分为两个互斥的集合,一个训练集 S 和一个测试集 T,使得 D = S ∪ T , S ∩ T = ∅ D=S\cup T,S\cap T=\empty D=ST,ST=。训练集与测试集应该尽量保持数据分布的一致性,即分层采样(stratified sampling)。例如在分类任务中,要保持训练集和测试集的类别比例接近。即使这样,一般也需要进行多次实验取平均值作为结果。
留出法会带来以下问题:

  • 若训练集 S 数量过大,这样训练得到的模型会接近于真实模型,但是测试集 T 数量过少,会使得泛化误差的评估不够准确
  • 若测试集 T 数量过大,则会使得训练集 S 与真实样本差距过大,训练的模型可能不够好

交叉验证法

交叉验证法是将数据集 D 划分成 k 个大小接近的互斥子集,每个子集都尽量保持数据分布的一致性,然后每次用 k-1 个子集进行训练,用剩下的一个子集作为测试集。
交叉验证法的一个特例是留一法,使得 k=m,m 是总的样本数。可以看出,留一法里每个子集只有一个样本,训练使用的训练集只比总数据集 D 少一个样本,因此训练的模型较为准确。缺点是数据集大的时候训练开销很大。

自助法

前面的方法使用的数据集大小都比 D 小,而自助法(bootstrapping)得到的训练集大小与 D 一样。自助法以自助采样法(bootstrap sampling)为基础:对数据集 D 进行有放回的随机采样,采样 m 次,得到与数据集 D 大小一样的训练集 D’。注意,数据集 D 中有部分样本不会出现在训练集中,而有些样本可能出现多次,一个样本不会出现在训练集(即 m 次采样均采不到)的概率为 ( 1 − 1 m ) m (1-\frac{1}{m})^m (1m1)m,取极限可以得到
lim ⁡ m → ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{m\to \infty}(1-\frac{1}{m})^m=\frac{1}{e}\approx0.368 mlim(1m1)m=e10.368
自助法在数据集较小时作用比较大,并且可用于集成学习中。但是自助采样改变了数据的原始分布,可能会引入偏差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值