【过拟合与正则化】

原理解析-过拟合与正则化 原理解析-过拟合与正则化什么是过拟合线性回归中,正则化一般怎么实现?L0正则化解析L1正则化解析L1正则化为什么可以防止过拟合?为什么L1正则化会使得参数稀疏,一部分参数的系数会变为0?L2正则化解析L2正则化为什么可以防止过拟合?为什么L2正则化会使得参数接近0,而不会变为0?总结 什么是过拟合 本来关于过拟合与正则化,我是不打算写一篇文章的,今晚想了想,还是写一篇吧。 一是直接写带正则化的线性回归代码,显得有些突兀; 二是这个东西确实比较重要,我这里会尽量简单的讲清楚。 什么是过拟合? 我们都知道,目前 阅读详情

过拟合的现象

下边两张图片分别显示了在linear regression 与 logisctic regression中过拟合的表现
图一: 拟合不够好
图二:刚刚好
图三:过拟合,表现为对已有数据贴合得很好,但是预测能力不好
图三为过拟合
在这里插入图片描述

出现过拟合的原因

1:由于实际应用中变量很多,数据维度大,实际上利用拟合函数可视化来判断过拟合是比较困难的;
2:当模型的数据维度过多,而训练集的数据量很少时,可能就会出现过拟合这个问题。

如何解决过拟合

1: 减少选取变量的数量——选取最重要的参数—缺点:可能丢失一些比较重要的feature
2: 正则化——一种减小参数大小的办法

正则化

在这里插入图片描述

代码

依据 下面公式生成数据,并对结果施加一个噪声以模拟真实情况
在这里插入图片描述

# 导入相关包
import matplotlib.pyplot as plt
import numpy as np
import sklearn.pipeline as pl
import sklearn.preprocessing as sp
import sklearn.linear_model as lm
# 生成模拟数据
x = np.arange(0,6,0.2).reshape(-1,1) 
y = -5*x**2 + x*10 + 1 + (np.random.randn(len(x))*10).reshape(-1,1) # 这里我们使用一个二次函数加上一个噪声模拟训练目标
x = np.delete(x, [2,3,5,8], axis = 0) # 删除其中三个点
y = np.delete(y, [2,3,5,8], axis = 0)

plt.scatter(x, y)
plt.show()

在这里插入图片描述
在这里插入图片描述

研究feature数(即多项式的最高次方)对上面两种回归器的影响:

1: 设置feature数为2,从下图结果中看出此时linear未正则化与使用正则化差异不大
在这里插入图片描述
2:设置feature数为10,可以发现图1出现明显的过拟合化,
但是图二因为使用正则化(一种减小参数大小的办法),减少了过拟合化的现象,
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

feature数为10, lambda = 1.0
在这里插入图片描述
feature数为10, lambda = 100.0,增大lambda的值来提高目标2(避免过拟合)的效果
在这里插入图片描述

from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
# 可以互动的版本,最高次数可调
def get_fited_model(n):
    # 岭回归器
    lmr = lm.Ridge(alpha=1)
#     lmr.set_params(alpha=100.0) #惩罚因子设置越大,则模型的权重向量越接近于零。
    lmr.set_params(alpha=1.0) #可以对比惩罚因子1.0 VS 100.0的区别,
#                               #惩罚因子100.0 在 feature =100时,当前数据中更能够避免过拟合
#                               #因为惩罚因子100.0 使得模型的权重向量越接近于零。

    #线性回归器
    lml = lm.LinearRegression()

    model_lmr = pl.make_pipeline(
                    sp.PolynomialFeatures(n),  # 多项式特征扩展器
                    lmr)      # 岭回归器
    model_lmr.fit(x, y)

    model_lml = pl.make_pipeline(
                    sp.PolynomialFeatures(n),  # 多项式特征扩展器
                    lml)      # 线性回归器
    model_lml.fit(x, y)
    
    return model_lmr, model_lml

def plot_result(n):
    n = int(n)
    model_lmr, model_lml = get_fited_model(n)
    px = np.arange(0,5.9,0.1).reshape(-1,1)
    pred_py_lmr = model_lmr.predict(px)
    pred_py_lml = model_lml.predict(px)
    # 图1,Linear未正则化结果
    plt.subplot(1,2,1)
    plt.plot(px, pred_py_lml, c='orangered', label='PolyFit Line')
    plt.scatter(x, y)
    plt.title("Linear未正则化结果")

    # 图2,正则化结果
    plt.subplot(1,2,2)
    plt.plot(px, pred_py_lmr, c='orangered', label='PolyFit Line')
    plt.scatter(x, y)
    plt.title("使用正则化")
plot_result(10)
为什么正则化能够解决过拟合问题? 为什么正则化能够解决过拟合问题一. 正则化的解释二. 拉格朗日乘数法三. 正则化是怎么解决过拟合问题的1. 引出范数1.1 L_0范数1.2 L_1范数1.3 L_2范数2. L_2范式正则项如何解决过拟合问题 一. 正则化的解释 为防止模型过拟合,提高模型的泛化能力,通常会在损失函数的后面添加一个正则化项。 L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓惩罚是指对损失函数中的某些参数做一... 阅读详情

相关推荐

谁来救救过拟合?透过现象看本质,如何利用正则化方法解决过拟合问题

刚开始的时候,模型还不能很好地拟合所有数据点,即无法反映数据分布,这时它是欠拟合的。而随着训练次数增多,它慢慢找出了数据的模式,能在尽可能多地拟合数据点的同时反映数据趋势,这时它是一个性能较好的模型。在这基础上,如果我们继续训练,那模型就会进一步挖掘训练数据中的细节和噪声,为了拟合所有数据点“不择手段”,这时它就过拟合了。

wenyusuran的专栏 3019

过拟合的原因以及解决办法(深度学习)

过拟合:模型在训练集上表现的非常好,但在测试集的数据下表现很差。 具体观察loss函数就是,train loss一直降低,而test loss先降低,而后随着epoach的增加,而不断增加。 过拟合的原因: 1.训练数据太少(比如只有几百组) 2.模型的复杂度太高(比如隐藏层层数设置的过多,神经元的数量设置的过大),举个简单的例子,你的模型是高射炮,结果你的数据是蚊子,这不就很扯淡了吗。 过拟合的解决方案: 解决过拟合问题有两个方向: 降低参数空间的维度或者降低每个维度上的有效规模(eff

大黄的博客 5万+

过拟合,正则化,Dropout

过拟合 在训练集上表现很好,但在测试集上的泛化能力很差。这是因为模型记住了训练数据的所有特征,所以其在训练集上误差很小,但放在测试集上并不能得到好的结果 产生过拟合的原因: 数据量太少 模型太复杂,拟合能力太强 训练集和测试集的分布不一致 训练集噪声太多,模型拟合了噪声,导致其对正常样本的预测能力下降 从模型的角度来说,若训练得到的模型太复杂,模型去拟合训练集中的每一个点,它的泛化能力就会比较差。而模型的复杂度,可以通过权值w的大小来判断。如下图过拟合形成的复杂函数,顾及到训练集中的每一个点

clam的博客 1199

什么是过拟合?出现原因?怎么解决?

什么是过拟合? 为了得到一致假设而使假设变得过度复杂称为过拟合(overfitting),过拟合表现在训练好的模型在训练集上效果很好,但是在测试集上效果差。 出现原因? 训练集的数量级和模型的复杂度不匹配。训练集的数量要小于模型的复杂度; 训练集和测试集特征分布不一致; 样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系; 权值学习迭代次数足够多(overtr...

qq_39097212的博客 6255

Agent 团队管理手册:如何设定目标、分配角色与解决冲突

本文从Agent团队的底层逻辑出发,完整讲解了Agent团队管理的三大核心模块:目标设定(分层拆解+对齐校验)、角色分配(能力匹配+最优算法)、冲突处理(分类处理+仲裁投票),并提供了可直接运行的完整代码示例。通过本文的方法,你可以快速搭建一个高效协作的Agent团队,大幅提升复杂任务的完成效率和准确率。Agent团队是未来AI应用的核心形态,现在正是落地的黄金期,建议你从一个小场景开始动手实践,逐步优化自己的Agent团队管理方法论。

AI天才研究院 236

esp32 python开发环境搭建_eclipse esp32开发环境搭建

安装方法基本是按照官网提供的方法来操作https://github.com/espressif/idf-eclipse-plugin#GettingStarted但是官网的方法安装之后还是不能编译成功的,第一次编译会出现一下问题问题1:Building in: E:\eclipse-workspace\helloworlk\buildcmake -G Ninja -DCMAKE_TOOLCHAIN...

weixin_39978276的博客 1264

深度学习:什么过拟合?什么是欠拟合

上图左侧就是欠拟合,右侧就是过拟合。一个由于模型太过于简单难以拟合所有数据,一个模型记住了所有的训练数据,但泛化误差却很大(因为我们需要的模型并不是记住所有的训练数据,而是可以帮我们进行预测未知features的label)。如上图所示,模型容量就是模型复杂度,低容量模型难以拟合所有的数据(欠拟合),高容量的模型可以记住所有的训练数据(过拟合)。甚至于,为了追求低的泛化误差,甚至可以使得模型过拟合!模型对未知数据预测的误差即为泛化误差,

qq_41298763的博客 391

基于单片机智能家居控制系统设计

*单片机设计介绍,基于单片机智能家居控制系统设计。

QQ2193276455的博客 1717

什么是过拟合?过拟合的10个解决办法都有哪些?

过拟合的10种解决办法!

wanghan0526的博客 8625

如何判断一个程序员的技术比你强?

技术大佬与普通程序员之间存在明显的认知差异:前者善于将复杂问题抽象为经典计算机科学问题,用声明式代码替代过程式逻辑;对异常和边界条件极度敏感,具备系统化的排查方法论;代码追求高可读性而非炫技,且执着于底层原理研究。这种技术压制体现在解决问题的确定性上——通过扎实的理论功底和工程直觉,快速定位问题本质,而非依赖试错或搜索。真正的技术实力源于对底层逻辑的深刻理解和对系统稳定性的敬畏。

wldtzzming的专栏 1089

解决Windows 10安装语言包时遇到的0x800F0954错误

在安装Windows 10操作系统的语言包时,如果遇到错误代码0x800F0954的提示,这无疑会让许多用户感到困惑和无助。这个错误通常意味着在安装过程中遇到了一些阻碍,导致无法正常完成语言包的安装。本文将为大家详细解析这个错误代码0x800F0954,并提供一系列有效的解决方法,帮助大家顺利安装所需的语言包。

nntxthml的博客 3794

过拟合问题及解决办法

1 什么是过拟合? 一般提及到过拟合就是说在训练集上模型表现很好,但是在测试集上效果很差,即模型的泛化能力不行。过拟合是模型训练过程中参数拟合的问题,由于训练数据本身有采样误差,拟合模型参数时这些采样误差都拟合进去就会带来所谓的过拟合问题。 2 机器学习中为什么会容易出现过拟合? 传统的函数拟合问题,一般是通过物理、数学等推导出的一个含参数的模型(数学建模),模型复杂度是确定的,没有多余的能

liubo187的博客 1万+

51单片机IAP在线升级

51单片机IAP在线升级 爱矽半导体E85F3325单片机IAP在线升级教程,此处可查看更新及demo下载 文章目录前言一、ROM资源二、KEIL有关知识1.BL51连接器:2.LX51连接器:三、Keil其他相关项说明:四、MCU启动文件说明:五、例程BOOTLOADER使用说明六、例程使用可更改说明:七、程序使用通信方式:XMODEM八、APP程序说明九、APP代码升级说明十、代码合并烧写 前言 扩展-IAP 主要用于产品出厂后应用程序的更新作用 ,类似于其他引导装载升级程序的方法,在系统中必须始终

qq_42415953的博客 6668

正则化防止过拟合

在上次的线性回归就有提到正则化,下面就来更具体地介绍什么是正则化。 1.为什么要正则化 2.正则化的作用 3.

words8的博客 2036

[QMT和ptrade量化交易小白入门]-120、卖出深度虚值期权的三重过滤策略

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 284

Unity3D实现视频和模型融合效果

在Unity中,视频和3D模型融合通常涉及到将视频表面内嵌到3D场景中。视频不影响模型的展示, 这可以通过使用Shader和Texture来实现。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。下面就让我们进入正文吧!提示:以下是本篇文章正文内容,下面案例可供参考本次介绍的就是视频和模型融合的实现,以后有其他的需要添加的会继续添加不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒。

心疼你的一切博客 5357

过拟合与正则化

这幅图上,第一个函数是因为,它偏离训练集太远而并不是最准确的,第二个是比较准确的一个,而最后一个则是完美的经过了所有的训练集但它是错误的,很明显这条函数一定是经过(0,0)的,而它并没有经过,我们成这种为过拟合,正所谓是拟合了但过头了。我们在正则化的方法中,由于我们现在并不知道什么特征是有用的,什么特征是没用的,我们最好的方法就是我们把所有的特征都变成我们的比较小的数字,这样函数就不会过拟合,所以我们的成本函数需要一些改进。是一个小数,大约1到10左右,而我们的m是我们的x的数量,

princess_pig的博客 1367

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

正则化可以防止过拟合的原因

一、 过拟合 首先我们需要明白什么是过拟合,由下图可知,对于(2)图则是出现了非常明显的过拟合。 从图中我们可以发现过拟合的特征,具有非常强的非线性特征,几乎让训练误差接近于0。 二、 正则化的思路 对于正则化,我们则是想要降低这种非线性的特征。这是我们的目的,我们来观察一下我们的非线性特征产生的原因——激活函数。 我们选取tanh的函数进行分析,从图中可以看出,非线性特征需要在于当x远大于0的...

安徽思远的博客 4200

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

过拟合问题及正则化

同样,过拟合问题也会出现在逻辑回归问题中关于如何解决过拟合现象,我们上面用到的方法似乎是进行可视化,然后判断是否出现了过拟合现象。但是当训练集中的特征有很多的时候,我们是没有办法进行可视化的。因此对于过拟合现象的解决办法主要有以下几种1、...

qq_45249251的博客 1500

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

正则化处理过拟合问题

介绍正则化解决过拟合原理及相关API使用

YIAN爱学习的博客 1279

过拟合-权重正则化和Dropout正则化

文章目录4.1、权重正则化4.1.1、简介4.1.2、从零开始实现4.1.3、使用Pytorch的简洁实现4.2 Dropout正则化4.2.1、简介4.2.2、从零开始实现4.2.3、简洁实现 对模型进行评估和优化的过程往往是循环往复的。在训练模型的过程中,经常会出现刚开始训练时,训练和测试精度不高,这时的模型时欠拟合,然后通过增加迭代次数或者通过优化,训练精度和测试精度继续提升。但随着训练迭代次数的增加或不断优化,有可能会出现训练精度和损失值继续改善,但测试精度或损失值不降反而上升的情况,如下图所示,这

tcn760的博客 2895

正则化与过拟合

抽样操作就会存在误差, 也就是你的训练样本 取值 X, X = x(真值) + u(随机误差),机器学习的 优化函数 多为 min Cost函数,自然就是尽可能的拟合 X,而不是真实的x,所以 就称为过拟合了,实际上是学习到了真实规律以外的 随机误差。而L2会选择更多的特征,这些特征都会接近于0,防止过拟合。那么你根据这个数据学习,是无法揭示这个规律的,根据统计学的大数定律(通俗地说,这个定理就是,在试验不变的条件下,重复试验多次,随机事件的频率近似于它的概率),当样本多了,这个真实规律是必然出现的。

xbnorth的博客 519

过拟合、正则化、泛化、归一化

1、什么是过拟合过拟合现象:通常我们在分类任务过程中都会遇到过拟合这种现象,具体表现为,当我们增加训练集的数据时,测试集的分类效果反而降低,这种现象称为过拟合,或者叫过配。过拟合的本质:是由于监督学习问题的不稳定,表现为三点(1)、有限的训练数据不能完全反映出一个模型的好坏,然而我们不得不在这有限的数据集上挑选模型,因此我们完全有可能挑选到训练集上表现好而在测试集上表现很差的模型,也无法知道模型在...

凌墨的博客 3287
上一篇: rabbitmq使用
下一篇: 贝叶斯分析
ppwangGS
博客等级 码龄11年 58粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值