【机器学习】模型评估与选择(Part 1)

文章内容

此文章为 机器学习-西瓜书-🍉Book-2章-模型评估与选择(Part 1)

本文主要内容为 机器学习中的评估方法介绍,用于将数据集划分为训练集测试集



术语名词

1.泛化误差与经验误差

泛化误差:在“未来”样本上的误差
经验误差:在训练集上的误差,亦称“训练误差”

训练集样本数越接近数据集数量,经验误差就越小。
但是经验误差越小,模型效果就越好吗?

请注意,我们是为了得到泛化能力强的模型,而经验误差≠泛化误差

经验误差很小,会使模型学习到训练样本中的许多无用特征,导致泛化能力变弱
我们称其为过拟合(overfitting)

而与之相对的概念,我们称为欠拟合(underfitting),其表示的就是模型没有很好的学习到训练样本上的特征,从而也导致泛化能力变弱

2.过拟合与欠拟合

过拟合:模型在训练数据上表现得过于复杂,以至于在未见过的数据上表现不佳。
欠拟合:模型在训练数据上表现得过于简单,无法捕捉到数据的内在结构和模式。

出现原因
1.出现欠拟合的情况,一般是由于样本特征少模型复杂度低

2.出现过拟合的情况,一般是由于样本数量少、噪声多模型复杂度过高

经验误差就是训练程度的体现,经验误差越小则训练程度越强
所以现在,我们可以得出训练程度不能过大也不能过小的结论

那我们能找到一个最佳方案得出最佳的训练程度吗🤔

答案是--------------->不能🙅‍

原因是:
对于千禧年七大数学问题之——“P=NP"问题,只要我们相信"P≠NP”,就无法找出最优解

但是我们依然有相应的解决方法,用于欠拟合与过拟合的问题
此处的解决方法我们留待以后解决…

好了,回归本章主题–模型评估与选择

对于模型的选择,我们有三个关键问题

如何获得测试集?------>评估方法

如何评价性能优劣?------>性能度量

如何判断模型实质差别------>比较检验

1.评估方法

因为我们无法得知未来数据的输出标记
故而需要得到测试集用来评估模型

而测试集有多种划分方法,这里我们给出以下三种

1.1 留出法(hold-out):

将数据集直接划分为训练集和测试集

留出法:对数据集的划分方法会影响模型结果;训练集和测试集的数据分布必须保持一致;测试集过大会使模型拟合效果变差,太小会使得测试估计偏小;有一些数据可能从未被训练过

总结

  1. 保证数据分布一致性(比如分层取样)
  2. 多次重复划分 (例如: 100次随机划分)
  3. 测试集不能太大或太小(例如:1/5~1/3,其实二八分偏多)
  4. 可能遗漏数据(随机划分没取到该数据进行训练)

1.2 交叉验证法

在这里插入图片描述
[西瓜书原图]

以该图为例:

首先将数据集D随机划分为10个子集,
进行十次操作,
每一次取其中1个子集为测试集,其余为训练集(实际也可以选取多个子集为测试集)
将结果做平均处理

而对于再划分子集的阶段,将测试集中只留有一个数据的方法叫做留一法
留一法,使得训练集极大地逼近了真实模型,但是却让测试误差变得很大

优缺点
从而我们能得出,尽管交叉检验法保证了所有的数据均被训练
但仍然存在受限于样本大小的问题;

并且对于较大的k值,会使得计算成本显著增加

而且对于子集的划分,仍然是一个难题,如果测试集和训练集之间的划分不够随机或不够独立,可能会导致数据泄露,影响模型评估的准确性。

1.3 自助法

“自助法”(bootstrapping)
基于放回取样 亦称“可重复采样”

故其可以使最终训练集的样本个数=数据集的样本个数,
我们记数据集的样本个数为m,
则由洛必达法则可得出 未被取出即未进行训练的样本,
我们称为包外估计(out-of-bag estimate)的占比为:
lim ⁡ m → ∞ ( 1 − 1 m ) m → 1 e ≈ 0.368 \lim _ { m \rightarrow \infty } ( 1 - \frac { 1 } { m } ) ^ { m } \rightarrow \frac { 1 } { e } \approx 0 . 3 6 8 mlim(1m1)me10.368
我们将其作为训练集即可

优缺点

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

缺点
自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。但是通过增加数据划分的次数,就可以缓解该影响。

1.4 调参与验证集

在模型评估与选择的过程中,我们既要选择学习算法,还要对算法的参数进行设定

训练过程中的参数分为两种

  • 算法参数:亦称“超参数”,由人工设定

  • 模型参数:由训练集训练而成

1.5 重新训练

重新训练:在调整和优化模型之后,可能需要使用整个数据集(包括之前划分的训练集和测试集)重新训练模型,以利用所有可用数据来提高模型的性能。

故之所以划分训练集和测试集,仅仅是为了选定算法种类参数
当我们确定使用该算法后,我们应将整个数据集放入该算法进行训练,从而得到模型的参数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值