机器学习中岭回归、LASSO回归和弹性网络与损失函数

news2025/1/12 6:00:19

今天咱们来聊点纯技术的东西,这东西是基础,不说往后没法说,在机器学习领域中,我们可以通过正则化来防止过拟合,什么是正则化呢?常见的就是岭回归、LASSO回归和弹性网络。

先说说什么叫做过拟合?咱们看下图

在这里插入图片描述
左1叫欠拟合,中间的拟合得比较好,右1就是过拟合了,因为它对局部过于重视,导致图形边界太复杂,我们不能为了拟合而拟合,像右1这种情况在本数据肯定拟合得很好,但是换个数据就不行了,所以过拟合没有啥实用性。下面这张对数据分类得也是一样的
图二:
在这里插入图片描述
我们可以看到为了增加拟合度,上图右1得算法是多么得复杂。正则化得目的就是抑制复杂得算法来达到过拟合得目的。主要是通过一个惩罚函数将模型得系数进行压缩来实现。在这之前我们还是先聊下最小二乘法和损失函数。

最小二乘法在统计学和机器学习中应用非常广泛。
下图中有4个红点,我们需要拟合这4个点得趋势,那么我们需要找到一条线,假设我们已经找到了,就是下图蓝色线。那么红点得位置得Y就是Y得实际值,同X轴中蓝线的Y的值就是Y的预测值,这样说可以理解吧。Y的实际值和Y的预测值之间的差值,就是我们的误差,在统计学中也叫残差,就是绿色的部分。

在这里插入图片描述
那么我们怎么找到一条最合适的拟合4个点的趋势的线呢,就是
Y1(实际值)-Y1(误差值)+ Y2(实际值)-Y2(误差值)+ Y3(实际值)-Y3(误差值)+ Y4(实际值)-Y4(误差值)等于最小的时候。
也就是所有绿色线长度加起来最小的时候。因为有时候实际值减去平均值可能会有负值,所以我们把他们的差值进行平方后再相加,就是
(Y1(实际值)-Y1(误差值))2+ (Y2(实际值)-Y2(误差值))2+ (Y3(实际值)-Y3(误差值))2+ (Y4(实际值)-Y4(误差值))2
在数据统计中我们可以使用Y_i来表示Y的实际值,Y_i表示预测值,Σ为累加的意思,表示这些项式的的加和,可以使用下面的公式来表示

在这里插入图片描述
在机器学习中以最优化参数组合的函数称为损失函数。在本例中,我们的平方和这个函数就是损失函数,其实就是误差达到最小的函数。我们求出一条线,使得所有的平方和达到最小,就是我们最合适的拟合线。

刚才那种情况是比较简单的,复杂的时候,如图二右一这种情况,为了达到损失函数最小,可能会出现过拟合。我们常见的用来防止过拟合的正则化有岭回归,LASSO回归和弹性网络。现在咱们线来聊下岭回归。
岭回归就是在刚才的损失函数①中加入了一个惩罚函数,叫L2范数,就是β平方后进行累加,然后乘以系数λ。这里需要注意下这里的系数不包含截距项。

在这里插入图片描述
加入了L2范数后,损失函数的公式就是如下:
在这里插入图片描述
我们可以看到在L2范数中加入了λ这个参数后,如果模型中的β很多的话,β平方后进行累加这个值就会增大,这个时候λ就可以对β平方后进行累加的和进行压缩,优化咱们的损失函数。λ这个函数属于超参数,数据中是无法估计出来的,只能在不断的模型交叉验证中不断迭代后,得出一个最佳的λ。我们既往的文章《手把手教你使用R语言做LASSO 回归》中我们可以看到下图(下图是LASSO 回归生成,但是原理是一样的)
在这里插入图片描述
其实就是一个λ不断变大,交叉验证,然后获得最优性能的一个过程,在这个过程中可以看到系数被压缩。

在这里插入图片描述
由上图我们可以发现,当λ=0时β1和β2的系数都是1.5这样,当λ进一步向圈内压缩,β1和β2的系数变小,岭回归选择的点β2的系数已经被压缩到0.6这样,因此使用岭回归避免了训练模型对数据的过拟合。
接下来咱们聊聊LASSO回归,它和岭回归有什么不同呢?岭回归使用的是L2范数,而LASSO使用的是L1范数,公式如下:

在这里插入图片描述
岭回归的范数是β系数平方累加,而LASSO则是β系数的绝对值进行累加,下面是LASSO回归损失函数的公式
在这里插入图片描述
那么问题来了,这两个函数有什么不同呢?岭回归会压缩系数,但是系数不会压缩到0,但是LASSO回归是可以将系数压缩到0的。从而可以帮我们进行指标筛选。

在这里插入图片描述
我们可以看到岭回归的惩罚函数是圆形,而LASSO回归的惩罚函数是菱形的,在同样的λ岭回归中β2的系数是0.6这样,而LASSO回归中β2的系数是0,表明β2已经被移除了。

最后咱们来聊聊什么是弹性网络,弹性网络等于把岭回归和LASSO回归进行了打包组合,它的公式如下:
在这里插入图片描述
由此可见弹性网络引入了α这个超参数,当α为0的时候,弹性网络就等于岭回归,当α等于1的时候,它就等于LASSO回归。因此它就具有了岭回归和LASSO回归的优点,更受欢迎。
说到这里,理论基本结束了,说理论真费时间。下面我们来结合glmnet包和我的《手把手教你使用R语言做LASSO 回归》这篇文章回看一下,
我们线看下glmnet包中glmnet函数的参数的解释,

在这里插入图片描述
主要看参数alpha 这个参数,1是lasso而0是ridge penalty,是不是和我们的弹性网络很相似

在这里插入图片描述
接着咱们来看下LASSO中生成压缩系数的图

cvfit=cv.glmnet(x,y)
plot(cvfit)

在这里插入图片描述
我们可以看到cv.glmnet函数生成了这个λ变化的MSE的图,

在这里插入图片描述
我们可以看到cv.glmnet函数就是一个交叉验证的函数,它是通过提供的λ值来计算MSE最后得到一个最优解。印证了我们上面说的内容。

最后总结一下,咱们今天初步介绍了岭回归、LASSO回归和弹性网络与损失函数,损失函数是机器学习中的重要内容,不说这个后面没方法说。后续有空咱们介绍一下怎么R语言手动推导逻辑回归或者线性回归的结果。了解了原理,回归怎么生成结果的,很多问题R中的问题迎刃而解,比如说下面这种报错:1: glm.fit:算法没有聚合 2: glm.fit:拟合機率算出来是数值零或一

在这里插入图片描述
在这里插入图片描述
这些都是模型没有收敛导致的,有空再聊。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis之SDS底层原理解读

目录 SDS是什么? SDS结构示例 概述 空间预分配 惰性空间释放 C字符串跟SDS的区别?为什么用SDS? SDS是什么? Redis 底层的程序语言是由 C 语言编写的,C 语言默认字符串则是以空字符结尾的字符数组&#xff08…

品牌价格调查的方法

品牌做价格调查的目的,不是简单的对页面价或者挂牌售价进行调查,基本是需要对商品的到手价进行调查的,调查渠道中的实际成交价对品牌来说意义重大,因为知道到手价就可以了解产品是否存在低价,进而可以做针对性的低价打…

冠达管理:元宇宙三年行动计划发布,高增长潜力股名单出炉

未来5年,国内元国际商场规划至少打破2000亿元大关。 金融监管总局9月10日发布《关于优化保险公司偿付能力监管规范的告诉》,优化保险公司偿付能力监管规范,自发布之日起施行。 金融监管总局释放重要利好,引导保险资金更大力度地…

Ruff南潮物联邀请您参观中国工博会,快来扫码领取免费门票!

由于受疫情影响的延期,第23届中国国际工业博览会(简称"中国工博会")终于将要在2023年9月19日-23日国家会展中心(上海虹桥)举行。 中国工博会是由工业和信息化部、国家发展和改革委员会、科学技术部、商务部、…

教师节快乐!这条传承之路,我们走了十数年……

守初心,传匠心 这条路,我们走了十数年…… 在云和恩墨,有这样一群人,他们是技术和业务知识的传播布道者,乐知乐享,助人达己;他们在新人成长的道路上良苦用心,甘为人梯;他…

JTAG无法进入app的断点问题解决

通过JTAG口,可以对STM32进行在线调试,主要还是APP的调试,一般来说都是没有问题的。 但是,我这边碰到个奇怪现象: main 函数里面断点 死活进不去 官方demo程序也是一样现象 可以确定,App是正确写入到芯片的…

RBTree模拟实现

一、概念 概念:红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍&a…

【C#实战】控制台游戏 勇士斗恶龙(3)——营救公主以及结束界面

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,最近开始正式的步入学习游戏开发的正轨,想要通过写博客的方式来分享自己学到的知识和经验,这就是开设本专栏的目的。希望…

pod 创建自定义库失败后解决方案

遇到以上问题: Cloning https://github.com/CocoaPods/pod-template.git into GlobalButton. Configuring GlobalButton template. Ignoring ffi-1.15.5 because its extensions are not built. Try: gem pristine ffi --version 1.15.5 /Library/Ruby/Site/2.6…

【校招VIP】前端计算机网络之webSocket相关

考点介绍 WebSocket 是一种网络通信协议,很多高级功能都需要它。初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? 答案很简单,因为…

Codesys可以和西门子博途平分秋色吗?

当今工业自动化界,西门子博途似乎一直是硬件和软件开发的标配。但近年来,有一个名字越来越频繁地出现在各大PLC厂家的产品中:Codesys。此软件是否真的如传说中那样优秀?Codesys与西门子博途之间的竞争究竟如何呢?接下来…

电脑(win10系统) 每次开机都进入备份系统

解决方法,在系统设置里面将win10设置为默认的开机项。 1、winr 打开cmd,输入msconfig,打开系统配置--引导---选择win10系统----设为默认值----确定 2、点击电脑,右击属性,打开设置---高级系统设置-----高级 ------启动…

Swift 周报 第三十七期

文章目录 前言新闻和社区苹果跌近 3% 市值两天蒸发 1898 亿 美元iPhone 15 系列订单量下滑,苹果公司面临双重市场冲击苹果的对手回来了 提案通过的提案正在审查的提案驳回的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第三十七期&…

RTSP流媒体服务器EasyNVR安防视频云服务平台如何手动配置Onvif探测功能?

安防监控系统EasyNVR视频云存储平台可实现设备接入、实时直播、录像、检索与回放、视频云存储、视频分发等视频能力服务,可覆盖全终端平台(pc、手机、平板等终端),在智慧工厂、智慧工地、智慧社区、智慧校园等场景中有大量落地应用…

安装vCenter6.7出错 DNS服务原因

https://blog.csdn.net/seaship/article/details/107045006**A.VCSA6.7的安装**第1步,运行VCSA 6.7部署程序,中间一些截图参考何老师相关部署文章即可第2步,配置VCSA虚拟机网络,FQDN填写虚拟机分配的IP地址&#xff0c…

二分查找实例3(寻找旋转排序数组中的最小值)

题目: 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋…

《论文阅读》常识感知的提示用于可控的同情对话生成 2023 AAAI

《论文阅读》常识感知的提示用于可控的同情对话生成 前言简介基础知识即插即用(Plug and Play)Future Discriminators(FUDGE)动机数据集方法前言 你是否也对于理解论文存在困惑? 你是否也像我之前搜索论文解读,得到只是中文翻译的解读后感到失望? 小白如何从零读懂论…

C#+sqlserver+asp.net婚纱影楼管理系统

一、源码描述 这是一款简洁十分美观的ASP.NETsqlserver源码,界面十分美观,功能也比较全面,比较适合 作为毕业设计、课程设计、使用,感兴趣的朋友可以下载看看哦 二、功能介绍 该源码功能十分的全面,具体介绍如下&…

企业如何加强合同风险控制?

企业运营的主要流程,不会因为企业人员规模或者业务规模大小的差异,而出现巨大的差异。 千万亿市值的上市公司、不足百人的新兴公司,面对的经营风险本质上不会有明显的区别。 那么,企业经营活动中,有哪些应对合同风险的…

从华为的C端产品服务体系看客户服务如何成为生产力

客户服务重要吗? 我想任何一个企业、企业家乃至员工都不会否认客户服务的重要性,但是实际上要转化为行动,就有难度了。不是所有的企业都能做到让客户服务为自己的品牌加分,甚至让客户服务成为开拓市场的利器。 一说到服务&#…