机器学习,过拟合与欠拟合,正则化与交叉验证

这篇具有很好参考价值的文章主要介绍了机器学习,过拟合与欠拟合,正则化与交叉验证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

机器学习

过拟合与欠拟合

正则化与交叉验证

正则化

交叉验证


机器学习

的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力

不同的机器学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准。

注意,机器学习方法具体采用的损失函数未必是评估时使用的损失函数。当然,让两者一致是比较理想的。

机器学习,过拟合与欠拟合,正则化与交叉验证,2023 AI,人工智能

机器学习,过拟合与欠拟合,正则化与交叉验证,2023 AI,人工智能

训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,但是本质上不重要。测试误差反应了学习方法对未知的测试数据集的预测能力。

显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。通常讲学习方法对未知数据的预测能力称为泛化能力(generalization ability)。

过拟合与欠拟合

对于机器学习和深度学习模型而言,我们不仅希望它能很好的拟合训练数据集,同时也希望它可以对未知数据集(测试集)有很好的拟合效果(泛化能力)。机器学习的泛化能力(generalization ability)是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。现实中采用最多的办法是用过测试误差来评价学习方法的泛化能力

度量泛化能力的好坏,就涉及到所谓的模型的欠拟合(underfitting)和过拟合(overfitting)。

  • 过拟合指的是在训练数据集上表现良好,而在未知数据上表现差。
  • 欠拟合指的是模型没有很好地学习到数据特征,不能够很好地拟合数据,在训练数据和未知数据上表现都很差。

机器学习,过拟合与欠拟合,正则化与交叉验证,2023 AI,人工智能

欠拟合、正常拟合和过拟合

下图描述了训练误差和测试误差与模型的复杂度之间的关系。当模型的复杂度增大时,训练误差会逐渐减小并趋近于0;而测试误差会先减小,达到最小值后有增大。当选择的模型复杂度过大时,过拟合现象就会发生。

因此,在学习时就要防止过拟合,进行最优的模型选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

机器学习,过拟合与欠拟合,正则化与交叉验证,2023 AI,人工智能

训练误差和测试误差与模型的复杂度之间的关系

过拟合的原因在于:

  • 参数太多,模型复杂度过高;

  • 建模样本选取有误,导致选取的样本数据不足以代表预定的分类规则;

  • 样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;

  • 假设的模型无法合理存在,或者说是假设成立的条件实际并不成立。

欠拟合的原因在于:

  • 特征量过少;

  • 模型复杂度过低。

怎么解决过拟合?

  • 获取和使用更多的数据(数据集增强)——解决过拟合的根本性方法;

  • 特征降维,人工选择保留特征的方法对特征进行降维;

  • 加入正则化,控制模型的复杂度;

  • Dropout;(
    dropout(随机失活):dropout是通过遍历神经网络每一层的节点,然后通过对该层的神经网络设置一个keep_prob(节点保留概率),即该层的节点有keep_prob的概率被保留,keep_prob的取值范围在0到1之间。通过设置神经网络该层节点的保留概率,使得神经网络不会去偏向于某一个节点(因为该节点有可能被删除),从而使得每一个节点的权重不会过大,有点类似于L2正则化,来减轻神经网络的过拟合。)

  • Early stopping;

  • 交叉验证。

怎么解决欠拟合?

  • 增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间;

  • 添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强;

  • 减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数;

  • 使用非线性模型,比如核SVM 、决策树、深度学习等模型;

  • 调整模型的容量(capacity),通俗地,模型的容量是指其拟合各种函数的能力;

  • 容量低的模型可能很难拟合训练集。

正则化与交叉验证

正则化

模型选择的典型方法是正则化(regularization)。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或惩罚项(penalty term)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。

正则化一般具有如下形式:

机器学习,过拟合与欠拟合,正则化与交叉验证,2023 AI,人工智能

 

其中,第1项是经验风险,第2项是正则化项, 为调整两者之间关系的系数。

机器学习,过拟合与欠拟合,正则化与交叉验证,2023 AI,人工智能

第1项的经验风险较小的模型可能较复杂(有多个非零参数),这时第2项的模型复杂度会较大。正则化的作用是选择经验风险与模型复杂度同时较小的模型。

从贝叶斯估计的角度来看,正则化项对应于 模型的先验概率

  • 可以假设复杂的模型有较小的先验概率
  • 简单的模型有较大的先验概率

交叉验证

另一种常用的模型选择方法是交叉验证(cross validation)。

如果给定的样本数据充足,进行模型选择的一种简单方式是随机地将数据集切分成三部分,分别为训练集(training set)、验证集(validation set)和测试集(test set)。训练集用来训练模型,验证集用于模型的选择,测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。

但是,在许多实际应用中数据是不充足的。为了选择好模型,可以采用交叉验证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,讲切分的数据集组合为训练集与测试集,在此基数上反复地进行训练、测试以及模型选择

  1. 简单交叉验证

简单交叉验证方法是:首先随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集(例如,70%的数据为训练集,30%的数据为测试集);然后用训练集在各种条件下(例如,不同参数个数)训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型。

  1. S折交叉验证

应用最多的是S折交叉验证(S-fold cross validation),方法如下:首先随机地将已给数据切分为S个互不相交、大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程可能的S种选择重复进行;最后选出S次测评中平均测试误差最小的模型。

  1. 留一交叉验证

S折交叉验证的特殊情形是S=N,成为留一交叉验证(leave-one-out cross validation,LOOCV),往往在数据缺乏的情况下使用。这里N是给定数据集的容量文章来源地址https://www.toymoban.com/news/detail-664325.html

到了这里,关于机器学习,过拟合与欠拟合,正则化与交叉验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【笔记】【机器学习基础】交叉验证

    交叉验证(cross-validation) 是一种 评估泛化性能 的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。在交叉验证中,数据被多次划分,并且需要训练多个模型。 最常用的交叉验证是 k 折交叉验证(k-fold cross-validation) ,其中 k 是由用户指定的数字,通常取

    2024年02月03日
    浏览(25)
  • 机器学习入门教学——交叉验证

    1、简介 交叉验证是在机器学习 建立模型和验证模型参数 时常用的办法,一般被用于评估一个机器学习模型的表现。更多的情况下,我们也用交叉验证来进行模型选择。 【注】在训练模型时,为了提高模型的质量,我们会将数据集划分为训练集、验证集和测试集。其中测试

    2024年02月09日
    浏览(32)
  • 机器学习实战之用 Scikit-Learn 正则化方法解决过拟合详解

      你是不是在模型训练中遇到过这样的问题:在训练集上表现得极好,但在测试集上效果不佳?这就是过拟合的问题。 过拟合是模型在训练过程中学到了数据的“噪声”而非规律,导致在未知数据上表现不佳。那么怎么解决这个问题呢?今天我们就来聊聊 Scikit-Learn 的正则化

    2024年02月11日
    浏览(34)
  • 机器学习中的数学原理——模型评估与交叉验证

    惭愧惭愧!机器学习中的数学原理这个专栏已经很久没有更新了!前段时间一直在学习深度学习,paddlepaddle,刷题专栏跟新了,这个专栏就被打入冷宫了。这个专栏名为 白话机器学习中数学学习笔记 ,主要是用来分享一下我在 机器学习中的学习笔记及一些感悟,也希望对你

    2024年01月15日
    浏览(105)
  • 神经网络小记-过拟合与欠拟合

    过拟合(Overfitting)是机器学习和深度学习中常见的问题,指模型在训练数据上表现得非常好,但在新数据上表现较差,即模型过度拟合了训练数据的特征,导致泛化能力不足。 解决过拟合的方式包括以下几种: 数据集扩充:增加更多的训练样本,使得模型能够学习更多不同

    2024年02月16日
    浏览(33)
  • 机器学习实验二 K折交叉验证找最佳K值并可视化分析

    机器学习实验报告 (1)K折交叉验证是一种常用的模型评估方法,它可以在有限的数据下充分利用数据集,提高模型精度和泛化能力。K折交叉验证将数据集分成K个互不重叠的子集,每次选取其中一个子集作为测试集,剩余K-1个子集作为训练集,然后计算模型在测试集上的误

    2024年02月08日
    浏览(29)
  • 机器学习技术:如何使用交叉验证和ROC曲线提高疾病预测的准确性和效率?

    随着机器学习的普及,评估模型的性能越来越重要。交叉验证和ROC曲线是两种常见的评估模型性能的方法。本文将介绍这两种方法的基本原理和应用场景,并结合实际案例和技术实践,讲解如何使用交叉验证和ROC曲线来提高机器学习模型的性能。此外,文章也将提供一些最佳

    2024年02月11日
    浏览(48)
  • 欠拟合、过拟合、正则化、学习曲线

    欠拟合:模型相对于要解决的问题来说太简单了,模型并没有拟合训练数据的状态 过拟合:模型相对于要解决的问题来说太复杂了,模型只能拟合训练数据的状态 下图来自:数据分析中的插值与拟合(2) —— 拟合 如何避免过拟合呢? 增加全部训练数据的数量 使用简单模型

    2024年02月11日
    浏览(32)
  • 【深度学习】实验04 交叉验证

    交叉验证是一种评估和选择机器学习模型性能的常用方法。它将数据集划分为训练集和验证集,并重复多次进行模型训练和性能评估,以获取更稳定和可靠的模型评估结果。 1.自定义划分 2.K折交叉验证 K-fold交叉验证是一种经典的模型选择方法,它主要用于评估机器学习模型

    2024年02月11日
    浏览(36)
  • 深度学习:交叉验证(Cross Validation)

    首先,交叉验证的目的是为了让被评估的模型达到最优的泛化性能,找到使得模型泛化性能最优的超参值。在全部训练集上重新训练模型,并使用独立测试集对模型性能做出最终评价。 目前在一些论文里倒是没有特别强调这样的操作,很多研究使用的都是第一种:简单交叉验

    2024年02月02日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包