Ridge Lasso Regression解决线性回归的过拟合(Overfitting)(基于波士顿房价预测)

目录

介绍:

1、过拟合

 2、Lasso regression

3、 Ridge regression

4、 Lasso regression 和 Ridge regression一定优于LinearRegression吗

一、 Linear Regression

二、Ridge Regression

三、Lasso Regression

四、Ridge Regression和Lasso Regression

五、对比三种回归的结果

介绍:

1、过拟合

过拟合(Overfitting)是指机器学习模型过于复杂,过于精确地适应了训练数据,导致在新数据上的预测表现不佳的现象。

当一个模型过拟合时,它会在训练数据上表现得非常好,但在测试数据或新数据上的表现则很差。过拟合通常发生在模型复杂度较高、参数较多的情况下。原因可能是模型过多地记住了训练数据的细节和噪声,而忽略了数据的一般特征和模式。过拟合也可能是由于训练数据不足或不平衡导致的。

 2、Lasso regression

Lasso regression也是一种线性回归,Lasso回归也被称为L1正则化线性回归。它是线性回归的一种变体,旨在通过添加一个L1正则化项来约束模型的系数。这个正则化项可以使得某些特征的系数变为零,从而实现特征选择的效果。与岭回归(Ridge Regression)相比,Lasso回归具有更强的稀疏性,即更容易使得某些特征的系数为零。

3、 Ridge regression

 Ridge regression也是一种线性回归,岭回归(Ridge regression)是一种线性回归模型的改进方法。它通过在线性回归模型中添加一个正则化项,来解决数据特征之间共线性(多重共线性)的问题。岭回归的目标是找到最佳的回归系数,使得模型的预测误差最小化。与普通最小二乘法不同,岭回归可以对回归系数进行缩减,从而降低模型的复杂度。通过控制一个超参数λ(lambda),可以调节回归系数的惩罚力度,进而得到更合理的模型。

4、 Lasso regression 和 Ridge regression一定优于LinearRegression吗

不一定。Lasso回归和线性回归是两种不同的回归算法,适用于不同的数据情况。

Lasso回归通过加入L1正则化项,可以进行特征选择,将一些不重要的特征的系数收缩为零,从而降低模型的复杂度。这对于具有大量特征的数据集来说很有优势,可以避免过拟合,提高模型的泛化能力。然而,在某些情况下,过强的正则化可能导致模型欠拟合。

线性回归是最基本的回归算法,它假设自变量和因变量之间存在线性关系,并且不存在特征的选择问题。线性回归在数据集较小、特征较少的情况下通常表现良好,但在高维数据集和存在多重共线性的情况下可能会有问题。

不一定。Ridge回归和线性回归(Linear Regression)是两种不同的回归模型。

Ridge回归是一种正则化线性回归模型,通过在损失函数中添加一个正则化项(L2范数)来惩罚模型的复杂度,防止过拟合。Ridge回归可以有效地降低特征的影响力,避免产生过高的权重,从而提高模型的泛化能力。

而线性回归(Linear Regression)是一种最小二乘法的回归模型,通过使预测值和实际值之间的方差最小化来拟合数据。线性回归没有正则化项,模型的复杂度较低。

在某些情况下,Ridge回归可能比线性回归更好,特别是在存在多重共线性(multicollinearity)问题时。多重共线性会导致线性回归的系数估计不稳定,而Ridge回归可以通过正则化来减少这种不稳定性。

但是,在没有多重共线性问题的情况下,如果数据的特征之间关系简单且线性,线性回归可能效果更好。因为Ridge回归在惩罚模型复杂度的同时,也会降低特征的影响力,可能导致欠拟合。

因此,选择使用哪种回归模型取决于数据的特点和建模的目标。

在选择回归算法时,应该根据具体的数据情况和问题需求来决定使用哪种模型。 

X#自变量

 

y#因变量

一、 Linear Regression

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
linregrassor=LinearRegression()
cvscore=cross_val_score(linregrassor,X,y,cv=5)#cv表示分成五份,一份测试集,四份训练集(五次评分)cvscore#五个score
#结果:array([ 0.63919994,  0.71386698,  0.58702344,  0.07923081, -0.25294154])mean_cvscore=np.mean(cvscore)#平均score
#结果:0.3532759243958823

二、Ridge Regression

from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV#加入parameters多个备选参数由算法决定最佳调参ridge=Ridge()
parameters={'alpha':[1e-5,1e-10,1e-8,1e-3,1e-2,1,5,10,20,30,35,40,45,50,55,100,200,500,1000]}
ridgeregressor=GridSearchCV(ridge,parameters,cv=5)#parameters喂给ridge,跑五次,cv表示分成五份,一份测试集,四份训练集(五次评分)
ridgeregressor.fit(X,y)print(ridgeregressor.best_params_)#最佳参数
#结果:{'alpha': 200}print(ridgeregressor.best_score_)#最佳模型值
#结果:0.49798762179623085#因为在大范围内选择的最佳参数为200,可以在200左右再选参数,进一步精细化
parameters={'alpha':[170,180,190,200,210,220,230,235,240]}#算法决定最佳调参后可以再进一步精细化
ridgeregressor=GridSearchCV(ridge,parameters,cv=5)#parameters喂给ridge,跑五次
ridgeregressor.fit(X,y)print(ridgeregressor.best_params_)
#结果:{'alpha': 180}
print(ridgeregressor.best_score_)
#结果:0.49823676810726536

cv=5: 平均分成五份,做五次​​​​​​​

三、Lasso Regression

from sklearn.linear_model import Lasso
from sklearn.model_selection import GridSearchCV
lasso=Lasso()
parameters={'alpha':[1e-5,1e-10,1e-8,1e-3,1e-2,1,5,10,20,30,35,40,45,50,55,100,200,500,1000]}
lassoregressor=GridSearchCV(lasso,parameters,cv=5)#cv表示分成五份,一份测试集,四份训练集(五次评分)
lassoregressor.fit(X,y)print(lassoregressor.best_params_)
#结果:{'alpha': 1}print(lassoregressor.best_score_)
#结果:0.431848787926522}

四、Ridge Regression和Lasso Regression

用手动设置训练集和测试集的方式

from  sklearn.model_selection import train_test_split#将数据分成测试和训练集
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=0)#测试集占百分之二十,random_state=0随机抽取数据集里的成为测试集
prediction_lasso=lassoregressor.predict(X_test)
prediction_ridge=ridgeregressor.predict(X_test)prediction_lasso
'''结果:
array([23.74549008, 25.05669894, 27.30699681, 15.26474466, 20.28388223,22.75172373, 21.45598059, 24.23856649, 21.11819135, 19.95909495,8.98313974, 13.30218316, 17.99925624,  8.39272295, 35.35448484,30.78862119, 22.38396018, 34.3159854 , 29.8521009 , 24.63915134,25.7851669 , 25.20997813, 20.07312698, 29.34704456, 23.54801802,17.49320154, 19.76581421, 22.02254005, 31.35043449, 19.53061141,17.86731915, 20.03959005, 22.70589322, 24.27507125, 28.3321545 ,20.26286175, 10.68729818, 24.94704305, 15.84336797, 12.8254677 ,25.41186454, 20.63647768, 22.05355817, 16.77749717, 23.30629191,25.77681736, 19.84379805, 23.32853181, 12.22570134, 23.7054699 ,21.09270778, 16.76593695, 24.7895207 , 27.77843148, 15.02615536,21.29343807, 21.55732101, 17.59916216, 18.35971801, 19.53427781,21.69584327, 22.09466825, 30.77701755, 30.58126341, 18.59617266,31.00696923, 18.55257582, 18.71479862, 15.79040727, 22.86722623,21.5804364 , 23.05453916, 30.92223126, 29.21101697, 25.40070956,5.75970797, 32.88156033, 23.539222  , 26.54430218, 20.38280007,28.11924474, 19.21283372, 21.96930246, 33.47811935, 33.60083428,25.39263122, 23.9380826 , 15.60389015, 30.00273357, 17.19181248,16.84840301, 12.0032218 , 27.14671556, 30.55661543, 25.00026849,22.52772776,  1.12415573, 28.040647  , 15.35965294, 21.08232769,24.57837072, 21.89156861])
'''prediction_ridge
'''结果:
array([23.8221835 , 25.20259785, 27.53093947, 14.58951793, 19.6074286 ,21.69483525, 21.4566671 , 23.61199647, 20.7368666 , 19.58217475,6.63735854, 13.94947909, 18.49317999,  7.72499122, 36.3522899 ,31.18961686, 22.33460779, 34.97976822, 30.83078488, 24.46734842,25.47472001, 24.6587079 , 20.17171431, 30.01063275, 22.97537586,15.45690209, 18.90690169, 21.75900952, 32.56455397, 19.74393167,18.12048305, 20.06946532, 20.97263715, 23.81262096, 28.96841294,20.7965572 , 10.95091512, 25.35142051, 16.23333426, 13.4982668 ,24.98278871, 20.39690622, 21.61521524, 16.39149259, 22.65891092,25.1457976 , 18.73402526, 23.8338197 , 12.33037924, 23.8180197 ,21.52664928, 17.3346035 , 24.96628962, 27.89463941, 13.76088933,21.3597084 , 20.75545937, 15.80907985, 16.20859966, 19.5075779 ,19.53138931, 21.89707787, 31.58387677, 31.47599653, 18.42654404,31.76658571, 19.22691897, 18.3864344 , 16.63161167, 22.86516713,21.02865109, 22.53088304, 30.94096598, 29.29650859, 25.49106868,5.78908343, 34.4337712 , 23.33656159, 26.96978297, 20.25620449,28.11741719, 18.67996191, 21.59515998, 35.26835166, 35.72684936,24.86758266, 24.10298707, 15.63298048, 29.91089724, 17.73858371,15.66579636, 12.72751693, 25.67752193, 30.42846915, 24.23451387,21.21831042,  0.98960907, 26.86571219, 15.86202673, 19.76164988,24.74384217, 21.88867704])
'''
import seaborn as sns
sns.distplot(prediction_lasso)

sns.histplot(prediction_ridge)

五、对比三种回归的结果

linregrassor.mean_score
#结果:0.3532759243958823ridgeregressor.best_score_
#结果:0.49798762179623085lassoregressor.best_score_
#结果:0.431848787926522对比可知:Ridge Regression和Lasso Regression在此数据上做线性回归优于Linear Regression

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

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

相关文章

Linux常用命令详解

文章目录 Linux常用命令详解一、Shell(执行的任务—翻译)二、Linux命令1、Linux命令的分类内部命令与外部命令的区别命令执行过程 2、Linux命令行的格式通用的命令行使用格式 3、编辑Linux命令行的辅助操作4、获得命令帮助的办法内部命令help命令的“--h…

100GPTS计划-AI写作VersatileWriter

地址 https://chat.openai.com/g/g-zHErU9z9m-versatile-writer https://poe.com/VersatileWriterGPT 测试 翻译:要求将给定的英语语句翻译成中文。 总结:给出一段文本,要求进行概括和总结。 问答:根据给定段落,提出相关问题并给出答案。 推理:给出前提,进行多步推理并得…

文件包含的提升刷题

上一篇文章:一篇文章带你入门文件包含-CSDN博客 已经开始入门了文件包含,那现在开始拔高提升刷题! 1. 拿到题目后啥也没有,所以也不知道要读取啥文件,那就查看源代码。 直接看if的条件就可以知道一定要设置cookie&a…

【linux】(ubuntu)下 QT 出现的问题

错误一:Make 运行QT程序以后出现这样的错误。 【解决方法】 我的ubuntu版本是18.04.4, 原因1:没有更换软件源 原因2:没安装相关 软件包 注意:这一步很有可能卡死这一步,所以如果一直卡在这并且进度…

第三讲GNSS相关时间系统和转换 第四讲观测值的产生和分类 | GNSS(RTK)课程学习笔记day2

说明:以下笔记来自计算机视觉life吴桐老师课程:从零掌握GNSS、RTK定位[链接],从零掌握RTKLIB[链接]。非原创!且笔记仅供自身与大家学习使用,无利益目的。 第三讲 GNSS相关时间系统和转换 GPS卫星的位置在时间过程中是…

docker中如何使用Arthas

docker中如何使用Arthas 一、操作步骤1、首先拷贝arthas包下来:2、其次选中你需要查看的容器ID:3、拷贝arthas程序包到容器目录下:4、进入到容器目录5、进入到第3步映射到容器的路径,并使用ll查看是否存在 arthas-boot.jar6、使用…

势能相关难维护的用分块——分块过程维护跨块的:CF1491H / P7446

https://www.luogu.com.cn/problem/P7446 https://www.luogu.com.cn/problem/CF1491H 看到题,发现只有减,就和势能有关。维护势能,像这种题,树形ds显然不好做,所以可以去考虑进行分块。 考虑分块。每个块记录一个 …

深度学习 Day19——P8YOLOv5-C3模块实现

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文章目录 前言1 我的环境2 代码实现与执行结果2.1 前期准备2.1.1 引入库2.1.2 设置GPU(如果设备上支持GPU就使用GPU,否则使用C…

IDEA添加Apifox插件后,返回参数不详细解决办法

Apifox官方文档地址(文档中返回的是特殊情况,跟我现在项目的返回不一样,因此需要更改配置) 点击跳转到官方API地址 实现步骤分为两步:第一步:添加配置,第二步使用注解。 1.添加配置 打开Idea设置,添加配置…

ftp上传速度慢什么原因,怎么加速FTP传输

在当前数字时代,文件传输是各种工作和业务操作不可或缺的一环。尽管FTP作为网络文件传输协议存在多年,但其传输速度问题一直困扰着众多用户。特别是在跨地域、跨国数据传输场景下,FTP的传输速度不仅难以满足企业需求,还可能对工作…

Java数据结构-模拟ArrayList集合思想,手写底层源码(1),底层数据结构是数组,编写add添加方法

package com.atguigu.structure; public class Demo02_arrayList {public static void main(String[] args) {MyGenericArrayListV1 arrayListV1 new MyGenericArrayListV1();//arr.add(element:100,index:1);下标越界,无法插入//初始化(第一次添加&…

PWM实现蜂鸣器

tim4.h #ifndef __TIM4_H__ #define __TIM4_H__ #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_tim.h" void timer4_init();#endif tim4.c #include "tim4.h"void timer4_init() {// 1. 设置GPI…

头部首发优志愿头部u_sign生成与TLS指纹处理! + 数据可视化技术讲解【Python爬虫】

目录 针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取 找对应得数据包 请求发现数据有加密 发现加密参数 搜索加密参数,好进行分析 分析过程 数据可视化 针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取 首先进行鼠标右键,进行…

如何预防[[MyFile@waifu.club]].wis [[backup@waifu.club]].wis勒索病毒感染您的计算机?

导言: 近期,一种新兴的威胁[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis勒索病毒,引起了广泛关注。这种恶意软件通过其高度复杂的加密算法,威胁着用户和组织的数据安全。本文将深入介绍[[MyFilewaifu.club]].wis [[backup…

(7)Linux GDB以及gcc和g++

💭 前言 本章我们将带着大家高雅的学一学令众多习惯图形化页面的朋友难受的 gdb 调试,这部分知识可以选择性学习学习,以后倘若遇到一些问题时能在 Linux 内简单调试,还是很香的。然后在讲讲 gcc 和 g,系统讲解程序运行…

​C语言顺序查找算法以及代码​

通过前面对静态查找表的介绍,静态查找表即为只做查找操作的查找表。静态查找表既可以使用顺序表表示,也可以使用链表结构表示。虽然一个是数组、一个链表,但两者在做查找操作时,基本上大同小异。 本节以静态查找表的顺序存储结构为…

【Spring】11 EnvironmentAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean 信息3.3 创建启动类3.4 启动 4. 应用场景总结 Spring 框架为开发者提供了丰富的扩展点,其中之一就是 Bean 生命周期中的回调接口。本文将着重介绍一个与环境(Environment)相关…

Atcoder Beginner Contest 332 (A - F 题)

目录 [A - Online Shopping](https://atcoder.jp/contests/abc332/tasks/abc332_a)Problem StatementConstraintsInputOutputSample Input 1Sample Output 1Sample Input 2Sample Output 2Sample Input 3Sample Output 3 SolutionCode [B - Glass and Mu](https://atcoder.jp/c…

Crocoddyl: 多接触最优控制的高效多功能框架

系列文章目录 前言 我们介绍了 Crocoddyl(Contact RObot COntrol by Differential DYnamic Library),这是一个专为高效多触点优化控制(multi-contact optimal control)而定制的开源框架。Crocoddyl 可高效计算给定预定…

太阳能供电+4G摄像头搭建EasyCVR鱼塘养殖远程视频监控方案

一、背景需求 随着我国农业的快速发展,以及对新兴技术的应用,养殖业、农牧业、种植业等也面临着全新的挑战与机遇。对鱼塘养殖行业来说,养殖区域面积大、管理难,经常会遇到偷钓者、盗窃鱼苗、非法入侵等监管难题。在国家大力扶持…