过拟合和欠拟合:机器学习模型中的两个重要概念

简介: 过拟合和欠拟合:机器学习模型中的两个重要概念

🍋引言

机器学习模型中,过拟合和欠拟合是两种常见的问题。它们在模型训练和预测过程中扮演着重要的角色。了解过拟合和欠拟合的概念、影响、解决方法以及研究现状和趋势,对于提高机器学习模型性能和实用性具有重要意义。

🍋过拟合和欠拟合的概念

过拟合是指机器学习模型在训练数据上表现优良,但在测试数据上表现较差的现象。这意味着模型在训练数据集上学习了过多的特定细节,以至于在新的、未见过的数据上无法泛化。

相反,欠拟合是指机器学习模型在训练数据上和测试数据上都表现较差的现象。这意味着模型没有足够的学习能力来捕捉数据中的关键特征和模式。

🍋过拟合和欠拟合的影响与危害

过拟合和欠拟合都会对机器学习模型的性能产生负面影响。过拟合会导致模型在测试数据上的性能下降,使得模型无法泛化到实际应用场景。欠拟合则会使模型在训练数据上和测试数据上的性能都较差,无法准确预测新数据的标签或类别。

此外,过拟合和欠拟合还可能使模型对新数据的适应能力下降,导致在实际应用中效果不佳。因此,了解如何避免过拟合和欠拟合对于提高机器学习模型的性能至关重要。

🍋过拟合和欠拟合的原因与解决方法

过拟合和欠拟合的原因各不相同,但都与模型的复杂度和训练数据的量有关。过拟合通常由于模型复杂度过高,导致在训练数据上过度拟合,无法泛化到测试数据。解决方法包括简化模型、增加数据量、使用正则化方法等。

欠拟合则通常由于模型复杂度过低,无法捕捉到数据中的关键特征和模式。解决方法包括增加模型复杂度、使用集成学习方法、改进特征工程等。

🍋过拟合和欠拟合的研究现状与发展趋势

过拟合和欠拟合作为机器学习领域的重要研究课题,已经得到了广泛的关注和研究。目前,研究者们正在不断探索新的方法和技术来解决这些问题。

在未来,过拟合和欠拟合的研究将更加深入。一方面,研究者们将尝试开发更加高效的正则化方法和集成学习算法,以进一步提高模型的泛化能力和性能。另一方面,随着深度学习等新型算法的不断发展,如何将其应用于解决过拟合和欠拟合问题也将成为研究的重要方向。

🍋过拟合&欠拟合—案例

我们围绕上篇多项式回归,来介绍一下过拟合和欠拟合的案例

上篇其实已经展示了欠拟合

欠拟合比较好整,可以用多种方式提高模型的准确率,但是过拟合呢,下面我来简单介绍一下


首先导入一些必要的库

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures

然后我们还是准备之前的数据,这里我们设置了一个随机种子,保证大家的数据一致性,方便检阅

x = np.random.uniform(-3,3,size=100)
X = x.reshape(-1,1)
np.random.seed(666)
y = 0.5*x**2+x+3+np.random.normal(0,1,size=100)
X_train,X_test,y_train,y_test = train_test_split(X,y)

接下来我们定义两个函数polynomialRegression和plot_model,下面我一一解释

首先是polynomialRegression函数,其实就是之前的管道,它可以将输入数据转换为指定的多项式次数,然后对其进行标准化,并最后拟合一个线性回归模型

def polynomialRegression(degree):
    return Pipeline([
        ('poly',PolynomialFeatures(degree=degree)),
    ('std_scaler',StandardScaler()),
    ('lin_reg',LinearRegression())
    ])

再创建一个plot_model函数,用来进行绘制

def plot_model(poly_reg):
    y_predict = poly_reg.predict(X)
    plt.scatter(X,y)
    plt.plot(np.sort(x),y_predict[np.argsort(x)],color='r')
    plt.show()

我们接受训练好的模型poly_reg。这里的np.argsort(x)返回的是x排序后的索引,因此y_predict[np.argsort(x)]可以得到排序后的预测值。

接下来我们分别使用二次、十次、五十次、一百次多项式进行拟合数据

poly_reg = polynomialRegression(2)
poly_reg.fit(X,y)
y_predict = poly_reg.predict(X)
print(mean_squared_error(y,y_predict))
plot_model(poly_reg)

运行结果如下

poly_reg = polynomialRegression(10)
poly_reg.fit(X,y)
y_predict = poly_reg.predict(X)
print(mean_squared_error(y,y_predict))
plot_model(poly_reg)

运行结果如下

poly_reg = polynomialRegression(50)
poly_reg.fit(X,y)
y_predict = poly_reg.predict(X)
print(mean_squared_error(y,y_predict))
plot_model(poly_reg)

运行结果如下

poly_reg = polynomialRegression(100)
poly_reg.fit(X,y)
y_predict = poly_reg.predict(X)
print(mean_squared_error(y,y_predict))
plot_model(poly_reg)

运行结果如下

我们不难看出,目的为了拟合所有的特征点,导致模型变得过于复杂,这种情况就叫过拟合

接下来我们将训练好的模型进行预测并绘制(这里使用的是一百次)

x_plot = np.linspace(-3,3,100).reshape(100,1)
y_plot = poly_reg.predict(x_plot)
plt.scatter(x,y)
plt.plot(x_plot,y_plot,color='r')
plt.axis([-3,3,-1,10])
plt.show()

运行结果如下

可以看出很糟糕,这就是过拟合带来的后果。就像识别一只猫和一只狗,过拟合会导致猫换个色就识别不出来是猫了,欠拟合则会阴差阳错的将猫识别为狗

🍋总结

过拟合和欠拟合是机器学习过程中的两个重要概念,对于提高模型的性能和实用性具有重要意义。了解过拟合和欠拟合的概念、影响、解决方法以及研究现状和发展趋势,有助于我们在实际应用中更好地应对和解决这些问题。

未来,过拟合和欠拟合的研究将继续深入发展,研究者们将不断探索新的方法和技术以解决这些问题。随着机器学习技术的广泛应用,过拟合和欠拟合的研究也将具有更加实际的应用价值。

挑战与创造都是很痛苦的,但是很充实。


相关文章
|
2月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
662 109
|
3月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
月之暗面发布开源模型Kimi K2,采用MoE架构,参数达1T,激活参数32B,具备强代码能力及Agent任务处理优势。在编程、工具调用、数学推理测试中表现优异。阿里云PAI-Model Gallery已支持云端部署,提供企业级方案。
299 0
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
|
4月前
|
机器学习/深度学习 算法 安全
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
本文探讨在敏感数据上应用差分隐私(DP)进行机器学习的挑战与实践。通过模拟DP-SGD算法,在模型训练中注入噪声以保护个人隐私。实验表明,该方法在保持71%准确率和0.79 AUC的同时,具备良好泛化能力,但也带来少数类预测精度下降的问题。研究强调差分隐私应作为模型设计的核心考量,而非事后补救,并提出在参数调优、扰动策略选择和隐私预算管理等方面的优化路径。
362 3
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
|
3月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署gpt-oss系列模型
阿里云 PAI-Model Gallery 已同步接入 gpt-oss 系列模型,提供企业级部署方案。
|
4月前
|
机器学习/深度学习 人工智能 算法
Post-Training on PAI (4):模型微调SFT、DPO、GRPO
阿里云人工智能平台 PAI 提供了完整的模型微调产品能力,支持 监督微调(SFT)、偏好对齐(DPO)、强化学习微调(GRPO) 等业界常用模型微调训练方式。根据客户需求及代码能力层级,分别提供了 PAI-Model Gallery 一键微调、PAI-DSW Notebook 编程微调、PAI-DLC 容器化任务微调的全套产品功能。
|
4月前
|
机器学习/深度学习 分布式计算 Java
Java 大视界 -- Java 大数据机器学习模型在遥感图像土地利用分类中的优化与应用(199)
本文探讨了Java大数据与机器学习模型在遥感图像土地利用分类中的优化与应用。面对传统方法效率低、精度差的问题,结合Hadoop、Spark与深度学习框架,实现了高效、精准的分类。通过实际案例展示了Java在数据处理、模型融合与参数调优中的强大能力,推动遥感图像分类迈向新高度。
|
4月前
|
机器学习/深度学习 存储 Java
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用(190)
本文探讨了Java大数据与机器学习模型在游戏用户行为分析及游戏平衡优化中的应用。通过数据采集、预处理与聚类分析,开发者可深入洞察玩家行为特征,构建个性化运营策略。同时,利用回归模型优化游戏数值与付费机制,提升游戏公平性与用户体验。
|
5月前
|
存储 人工智能 运维
企业级MLOps落地:基于PAI-Studio构建自动化模型迭代流水线
本文深入解析MLOps落地的核心挑战与解决方案,涵盖技术断层分析、PAI-Studio平台选型、自动化流水线设计及实战构建,全面提升模型迭代效率与稳定性。
224 6
|
4月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据机器学习模型在舆情分析中的情感倾向判断与话题追踪(185)
本篇文章深入探讨了Java大数据与机器学习在舆情分析中的应用,重点介绍了情感倾向判断与话题追踪的技术实现。通过实际案例,展示了如何利用Java生态工具如Hadoop、Hive、Weka和Deeplearning4j进行舆情数据处理、情感分类与趋势预测,揭示了其在企业品牌管理与政府决策中的重要价值。文章还展望了多模态融合、实时性提升及个性化服务等未来发展方向。

热门文章

最新文章