机器学习算法中的过拟合与欠拟合

在机器学习表现不佳的原因要么是过度拟合或欠拟合数据。

机器学习中的逼近目标函数过程

监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y).

Y=f(X)Y=f(X)

这种特性描述可以用于定义分类和预测问题和机器学习算法的领域。

从训练数据中学习目标函数的过程中,我们必须考虑的问题是模型在预测新数据时的泛化性能。泛化好坏是很重要的,因为我们收集到的数据只是样本,其带有噪音并且是不完全的。

机器学习中的泛化

在In机器学习中,我们描述从训练数据学习目标函数的学习过程为归纳性的学习。

归纳与特别的样本中学习到通用的概念有关,而这就是监督式机器学习致力于解决的问题。这与推演不同,其主要是另一种解决问题和寻求从通常的规则中找寻特别的内容。

泛化即是,机器学习模型学习到的概念在它处于学习的过程中时模型没有遇见过的样本时候的表现。

好的机器学习模型的模板目标是从问题领域内的训练数据到任意的数据上泛化性能良好。这让我们可以在未来对模型没有见过的数据进行预测。

在机器学习领域中,当我们讨论一个机器学习模型学习和泛化的好坏时,我们通常使用术语:过拟合和欠拟合.

过拟合和欠拟合是机器学习算法表现差的两大原因。

统计拟合

在统计学中,拟合指的是你逼近目标函数的远近程度。

这个术语同样可以用于机器学习中,因为监督式机器学习算法的目标也是逼近一个未知的潜在映射函数,其把输入变量映射到输出变量。

统计学通常通过用于描述函数和目标函数逼近的吻合程度来描述拟合的好坏

这类理论中的一些在机器学习中也是有用的(例如,计算残差),但是一些技巧假设我们已经知道了我们要逼近的函数。这和机器学习的场景就不同了。

如果我们已经知道了目标函数的形式,我们将可以直接用它来做预测,而不是从一堆有噪音的数据中把它费力的学习出来。

机器学习中的过拟合

过拟合指的是referstoa模型对于训练数据拟合程度过当的情况。

当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,我们称过拟合发生了。这意味着训练数据中的噪音或者随机波动也被当做概念被模型学习了。而问题就在于这些概念不适用于新的数据,从而导致模型泛化性能的变差。

过拟合更可能在无参数非线性模型中发生,因为学习目标函数的过程是易变的具有弹性的。同样的,许多的无参数器学习算法也包括限制约束模型学习概念多少的参数或者技巧。

例如,决策树就是一种无参数机器学习算法,非常有弹性并且容易受过拟合训练数据的影响。这种问题可以通过对学习过后的树进行剪枝来解决,这种方法就是为了移除一些其学习到的细节。

机器学习中的欠拟合

欠拟合指的是模型在训练和预测时表现都不好的情况。

一个欠拟合的机器学习模型不是一个良好的模型并且由于在训练数据上表现不好这是显然的。

欠拟合通常不被讨论,因为给定一个评估模型表现的指标的情况下,欠拟合很容易被发现。矫正方法是继续学习并且试着更换机器学习算法。虽然如此,欠拟合与过拟合形成了鲜明的对照。

机器学习中好的拟合

理想上,你肯定想选择一个正好介于欠拟合和过拟合之间的模型。

这就是我们学习的目标,但是实际上很难达到。

为了理解这个目标,我们可以观察正在学习训练数据机器学习算法的表现。我们可以把这个过程划分为分别是训练过程和测试过程

随着时间进行,算法不断地学习,模型在训练数据和测试数据上的错误都在不断下降。但是,如果我们学习的时间过长的话,模型在训练数据上的表现将继续下降,这是因为模型已经过拟合并且学习到了训练数据中的不恰当的细节以及噪音。同时,测试数据集上的错误率开始上升,也即是模型的泛化能力在下降。

这个完美的临界点就处于测试集上的错误率开始上升时,此时模型在训练集和测试集上都有良好的表现

你可以用你自己喜爱的机器学习算法来实践这个实验。而在实践中这通常是无用的,因为在测试数据上运用这个技巧来选择训练停止的时机,这意味着这个测试集对于我们并不是“不可见的”或者单独的衡量标准。数据的一些知识(许多有用的知识)已经泄露到了训练过程。

通常有两种手段可以帮助你找到这个完美的临界点:重采样方法和验证集方法

如何限制过拟合

过拟合和欠拟合可以导致很差的模型表现。但是到目前为止大部分机器学习实际应用时的问题都是过拟合。

过拟合是个问题因为训练数据上的机器学习算法的评价方法与我们最关心的实际上的评价方法,也就是算法在位置数据上的表现是不一样的。

当评价机器学习算法时我们有两者重要的技巧来限制过拟合:

使用重采样来评价模型效能
保留一个验证数据集

最流行的重采样技术是k折交叉验证。指的是在训练数据的子集上训练和测试模型k次,同时建立对于机器学习模型在未知数据上表现的评估。

验证集只是训练数据的子集,你把它保留到你进行机器学习算法的最后才使用。在训练数据上选择和调谐机器学习算法之后,我们在验证集上在对于模型进行评估,以便得到一些关于模型在未知数据上的表现的认知。

对于机器学习,使用交叉验证在未知数据上进行验证模型效能是一种良好的标准。如果你拥有数据,使用验证集也是一种良好的实践。

进一步阅读

如果你想学习更多关于机器学习中的泛化、过拟合和欠拟合的知识,本节列举了一些相关的推荐资源。

维基百科上的泛化
维基百科上过拟合
维基百科上的归纳推理
维基百科上的感应问题
Quora上的过拟合的直观解释

总结

本文中你学习了机器学习就是以感应方法来解决问题。

你学习了泛化是一种关于模型学习到的知识在未知数据上表现程度的概念描述。最后你学习了机器学习中的术语:泛化中的过拟合与欠拟合:

  • 过拟合:在训练数据上表现良好,在未知数据上表现差。
  • 欠拟合:在训练数据和未知数据上表现都很差

原文链接:Overfitting and Underfitting With Machine Learning Algorithms

时间: 2024-10-11 18:11:01

机器学习算法中的过拟合与欠拟合的相关文章

机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size

机器学习算法中如何选取超参数:学习速率.正则项系数.minibatch size 本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习算法中,如何选取初始的超参数的值.(本文会不断补充) 学习速率(learning rate,η) 运用梯度下降算法进行优化时,权重的更新规则中,在梯度项前会乘以一个系数,这个系数就叫学习速率η.下面讨论在训练时选取η的策略. 固定的学习速率.如果学习速率太小,则会使收敛过慢,如果学习速率太大,则会导致代价

过拟合和欠拟合

在机器学习寻找假设的过程中可能会出现过拟合和欠拟合的现象,那什么是过拟合和欠拟合呢? 我们客观上认为,给定一个假设空间H,一个假设a∈H,如果存在其他的假设α∈H,使得在训练样例上a的错误率比α的小,但在整个实例分布上α的错误率比a的小,那么就说假设a过度拟合训练数据. 一般而言,我们认为参数过多是造成过拟合的原因.其实,这只是过拟合的一种表现.有的时候参数过少也会造成过拟合,但这种情况出现极其少!举个例子,假设你在做分类任务,你的训练样例上只有两个(1.outlook=Rain,Wind=We

过拟合 VS 欠拟合 偏差 VS 方差

1. 过拟合 欠拟合 过拟合:在训练集(training set)上表现好,但是在测试集上效果差,也就是说在已知的数据集合中非常好,但是在添加一些新的数据进来训练效果就会差很多,造成这样的原因是考虑影响因素太多,超出自变量的维度过于多了: 欠拟合:模型拟合不够,在训练集(training set)上表现效果差,没有充分的利用数据,预测的准确度低: 高阶多项式回归的过拟合与欠拟合 逻辑回归的过拟合与欠拟合 2. 偏差 方差 偏差:首先error=bias+variance:bias反映的是模型在样

过拟合和欠拟合问题

2019-08-27 11:45:21 问题描述:在模型评估过程中,过拟合和欠拟合具体是指什么现象,如何解决. 问题求解: 过拟合是指模型对于训练的数据集拟合呈现过当的情况,反应到评估指标上就是模型在训练集上的表现很好,但是在测试集和新数据上的表现较差. 欠拟合是指模型对于训练和预测时的表现都不好. 降低过拟合 1)从数据入手,获得更多的训练数据是解决过拟合问题最有效的手段.因为更多的样本能够让模型学习到更多有效的特征,减小噪声的影响.当然,直接增加训练数据一般是很困难的,可以通过一些数据增强的

动手学pytorch-过拟合、欠拟合

过拟合.欠拟合及其解决方案 过拟合.欠拟合的概念 权重衰减(通过l2正则化惩罚权重比较大的项) 丢弃法(drop out) 实验 1.过拟合.欠拟合的概念 1.1训练误差和泛化误差 前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似. 1.2验证数据集与K-fold验证 预留一部分在训练数据集和测试数据集以外的数据来进行模型选择,这部分数据被称为验证数据集,简称验证集(validation set).在K折交叉验证中,把

机器学习算法中的偏差-方差权衡(Bias-Variance Tradeoff)

简单的以下面曲线拟合例子来讲: 直线拟合后,相比原来的点偏差最大,最后一个图完全拟合了数据点偏差最小:但是拿第一个直线模型去预测未知数据,可能会相比最后一个模型更准确,因为最后一个模型过拟合了,即第一个模型的方差比最后一个模型小.一般而言高偏差意味着欠拟合,高方差意味着过拟合.他们之间有如下的关系:              本文地址                                            请参考一下三篇文章: 机器学习中的数学(2)-线性回归,偏差.方差权衡 Bi

过拟合与欠拟合

1. 过拟合 过拟合是指在模型的训练阶段过分拟合训练数据的特征,模型的训练数据上具有较小的误差.数据中的噪声也有可能被模型所学习,使得模型的泛化性能较差. 通常导致过拟合产生的原因包括: (1). 目标函数中没有相应的正则化项作为惩罚项, 常用的正则化项包括L1 和L2,其中L1约束能够学习出稀疏的模型从而能够达到特征选择的效果:对于L2约束则使得模型在各特征上的参数都比较小,控制每个特征对模型预测结果的影响,在一定程度上减少异常值(噪声)对模型性能的影响,提高模型的泛化性能: (2). 模型训

如何降低神经网络模型的过拟合和欠拟合?

1.根据神经网络建立模型的复杂度和数据模型真正复杂度之间的相对大小,其主要存在三种情况:(1)欠拟合:underfitting (2)相对准确 (3)过拟合:overfitting 图2.一般情况下在不知数据模型复杂度的情况下,很容易出现建立模型过拟合的情况,这是因为原始数据中本身存在一些噪声数据,而这些噪声数据会使得所建立模型对于loss函数进行过度寻优,从而极易出现过拟合的情况.3.对于模型的过拟合,主要有两个方面:(1)如何检测?(2)如何减少和改善? 4.对于过拟合的检测,可以使用交叉验

数学模型的过拟合和欠拟合

1. 过拟合 1.1 产生原因 训练集中的数据抽取错误,太少,或者不均衡,不足以有效代表业务逻辑或场景: 训练集中的数据噪音(异常值)干扰过大: 训练模型的"逻辑假设"到了模型应用时已经不能成立 参数太多,模型复杂度太高: 特征量太多,模型训练过度,比如决策树模型,神经网络模型 1.2 解决方法 减少特征数量 正则化 增大样本训练规模,采样均衡 简化模型 交叉验证 去除异常值 Dropout 2. 欠拟合 1.1 产生原因 模型复杂度过低 特征量过少 1.2 解决方法 增加新特征 增加