CORE CONCEPT ----Overfitting and Underfitting

Overfitting and Underfitting

Overview

使用机器学习时,有很多方法可以解决。 机器学习中一些最常见的问题是过度拟合和不合适。 为了理解这些概念,让我们设想一个机器学习模型,它试图学习数字分类,并且可以访问训练数据集和测试数据集。

Overfitting

当模型从训练数据中学到太多时,模型会受到过度拟合的影响,并且因此在实践中表现不佳。 这通常是由于模型过多地暴露于训练数据引起的。 对于数字分类示例,如果模型以这种方式过度拟合,则可能会捕捉到误导性的微小细节,例如杂散标记作为特定数字的指示。

当您查看图形的中间时,估计看起来相当不错,但边缘有很大的误差。 实际上,这个错误并不总是在边缘情况下,并且可以在任何地方弹出。 训练中的噪音可能会导致错误,如下图所示。

在该示例中,数据通过多项式度过拟合。 所示的点对于函数y = x ^ 2是正确的,但是在这些点之外并不接近函数。

Underfitting

当模型没有从训练数据中学到足够的东西时,模型会受到欠配合的影响,并且因此在实践中表现不佳。 与之前的想法形成鲜明对比,这个问题是由于不让模型从培训数据中学到足够的东西。 在数字分类示例中,如果训练集太小或者模型没有足够的尝试从中学习,那么它将无法选择数字的关键特征。

这种估计的问题对人眼来说很明显,模型应该是非线性的,而只是一条简单的线。 在机器学习中,这可能是不合适的结果,模型没有足够的暴露于训练数据以适应它,并且目前处于简单状态。

Motivation

找到一个合适的机器是机器学习的核心问题之一。 在掌握特定方法之前,掌握如何避免拟合问题可以使模型保持正轨。 寻找合适的思维方式,而不是在模型上投入更多的学习时间是非常重要的。

Code

过度拟合的示例代码显示了基于多项式插值的一些基本示例,试图找到图的方程。 在overfitting.py文件中,您可以看到正在建模的真实函数,以及一些显示不准确的估计。

估计数表示过度拟合和欠拟合。 对于过度拟合,使用更高次多项式(x立方而不是平方)。 虽然所选点的数据相对接近,但它们之外还有一些工件。 然而,欠装配的例子甚至在许多方面都没有达到准确性。 欠拟合类似于在尝试建模二次函数时具有线性模型。 该模型在其训练的点上表现良好,在这种情况下是用于线性估计的点,但在其他方面表现不佳。

import matplotlib.pyplot as plt
def real_funct(x):
return [-(i**2) for i in x]
def over_funct(x):
return [-0.5*(i**3) - (i**2) for i in x]
def under_funct(x):
return [6*i + 9 for i in x]
#create x values, and run them through each function
x = range(-3, 4, 1)
real_y = real_funct(x)
over_y = over_funct(x)
under_y = under_funct(x)
#Use matplotlib to plot the functions so they can be visually compared.
plt.plot(x, real_y, 'k', label='Real function')
plt.plot(x, over_y, 'r', label='Overfit function')
plt.plot(x, under_y, 'b', label='Underfit function')
plt.legend()
plt.show()
#Output the data in a well formatted way, for the more numerically inclined.
print("An underfit model may output something like this:")
for i in range(0, 7):
print("x: "+ str(x[i]) + ", real y: " + str(real_y[i]) + ", y: " + str(under_y[i]))
print("An overfit model may look a little like this")
for i in range(0, 7):
print("x: "+ str(x[i]) + ", real y: " + str(real_y[i]) + ", y: " + str(over_y[i]))

Conclusion

查看交叉验证和正则化部分,了解有关如何避免机器学习模型中过度拟合的信息。 理想情况下,合适的看起来像这样:

当以任何身份使用机器学习时,经常会出现过度拟合等问题,掌握这一概念非常重要。 本节中的模块是整个存储库中最重要的模块,因为无论实现如何,机器学习总是包含这些基础知识。

 

 

 

 

 

 

 

 

 

### 回答1: 过拟合和欠拟合是机器学习中常见的问题。过拟合指模型在训练集上表现很好,但在测试集上表现较差,即模型过于复杂,过度拟合了训练数据,导致泛化能力不足。欠拟合则指模型在训练集和测试集上表现都较差,即模型过于简单,无法捕捉数据的复杂性和规律。为了解决这些问题,需要对模型进行调整和优化,以达到更好的泛化能力和预测准确性。 ### 回答2: 在机器学习中,过拟合(overfitting)和欠拟合(underfitting)是两个非常重要的概念。通俗地来说,过拟合指的是模型过于“敏感”地拟合数据,把噪声和偶然性也当作规律进行训练,导致在测试集上表现不佳;而欠拟合则表示模型过于简单,没能完全拟合训练集,导致在训练集和测试集(甚至未知的数据)上的预测效果都不理想。下面分别从原因、表现和如何解决这两个问题阐述。 一、原因 (1)过拟合 过拟合出现的原因一般是模型对训练数据过于敏感,太过注重细节,把数据中本应不具有泛化能力的噪声学进去了,导致模型在未知数据上效果大打折扣。具体来说,造成过拟合的因素有: · 训练集样本量不够:如果样本数据较少,模型可能抓不到数据的本质规律,从而把一些随机性当作了规律。 · 模型复杂度过高:如果模型过于复杂,将大量无用特征学进去,很可能导致过拟合问题。一些常见的复杂模型,如决策树、支持向量机、神经网络等。 · 迭代次数太多:若模型训练次数太多,就会导致模型过于关注训练数据,而失去对未知数据的泛化能力。 (2)欠拟合 欠拟合问题一般是因为模型不具备足够的学习能力,不能很好地拟合数据,导致预测效果不佳。从技术角度分析,造成欠拟合的原因有如下几个方面: · 训练集数据量不足:与过拟合相反,训练集数据量太少,可能会使模型难以理解数据中的规律,从而没能很好地学习到特征。 · 模型复杂度不够:如果模型比较简单,很可能没能很好地学习到训练集中的关系,导致欠拟合问题。 · 非线性问题过于简单:在处理非线性问题时,如果模型只是采用线性拟合的方法,就难以拟合训练集。 二、表现 (1)过拟合 过拟合的模型通常在训练集上表现突出,但在验证集及测试集上的表现较差,通常表现为: · 训练集误差和验证集误差之间差异明显,可能是训练误差低至0,但验证集误差依旧很高; · 模型表现过于复杂,对于Case的预测准确度很高,但对于未知数据的预测表现不佳; · 模型在训练数据中产生极大波动,对于训练集中微小的变化都作出反应; (2)欠拟合 欠拟合的模型表现比较显然,可能表现如下: · 训练误差和验证误差各自都很高; · 模型表现过于简单,无法从训练集中学到足够的规律; · 对于Case的预测准确度不高,且对于未知数据的预测表现不佳。 三、如何解决 (1)过拟合 在解决过拟合的问题时,有一些常见的方法,如下: · 交叉验证:通过重复采用数据集中的不同子集,来训练和测试模型,使模型变得更可靠,从而减少过拟合的风险。 · 增加数据量:如前文所述,训练数据集不足是导致过拟合的一个重要原因,因此增加数据量的方式是一种有效减少过拟合的手段。 · 简化模型:通过降低模型复杂度,如减少层数,删除某些特征等,避免把噪声当做规律进行训练,从而提高泛化能力。 (2)欠拟合 在解决欠拟合的问题时,通常采取以下方式: · 重新设计特征:特征工程是机器学习中非常重要的一环,通过重构特征,提高模型的表达能力,能够更好地利用数据的潜在规律。 · 增加数据量:在欠拟合情况下,通常是由于数据量不足导致的,增加数据量做法同过拟合的解决方案。 · 使用更加复杂的模型:如果模型过于简单,以至于无法发现数据的更复杂的规律,那么就需要重新考虑模型的构建,使用更加复杂的模型,如深度神经网络等。 ### 回答3: Overfitting(过拟合)是指模型过于复杂,试图完全匹配训练数据集,导致在新的数据上表现不佳。这种情况下,模型能够记住训练数据集中的每个细节,包括误差和噪声,从而无法推广到新数据。过拟合通常发生在模型太复杂或参数太多的情况下。 在机器学习中,我们使用各种技术来减少过拟合,例如交叉验证、正则化和减少特征数量。这些技术都有助于建立更好的模型并使其更能够适应新数据。 Underfitting(欠拟合)是指模型过于简单,无法很好地拟合训练数据集或新数据。这种情况下,模型的表现能力有限,无法捕获数据中的复杂关系。欠拟合通常发生在模型太简单或参数太少的情况下。 为了解决欠拟合问题,我们可以尝试增加模型的复杂度,增加特征数量或添加更多的隐层。这可以帮助模型更好地捕获数据中的复杂关系。但是,需要注意的是,过度增加模型的复杂度可能会导致过拟合。 因此,我们需要找到一个平衡点,使模型能够在训练数据集和新数据上都表现良好。这需要我们在训练过程中细心观察模型的表现,并使用适当的技术来解决过拟合或欠拟合问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九妹123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值