线性回归与岭回归

article/2025/9/12 20:10:53

目录

一、什么是线性回归

1.线性回归简述

2.数组和矩阵

3.线性回归的算法

二、权重的求解

1.正规方程

 2.梯度下降

三、线性回归案例

1.案例概述

2.数据获取

3.数据分割

4.数据标准化

5.模型训练

6.回归性能评估

7.梯度下降与正规方程区别

四、岭回归Ridge

1.过拟合与欠拟合

2.正则化


一、什么是线性回归

1.线性回归简述

线性回归,是一种趋势,通过这个趋势,我们能预测所需要得到的大致目标值。线性关系在二维中是直线关系,三维中是平面关系。

我们可以使用如下模型来表示线性回归:y = wx+b(w是权重,x是特征,b是偏置项)

当有多个特征时,线性关系模型如下图所示:

2.数组和矩阵

数组

数组可以是多维的,各个维度的数组表示如下:

0维:5

1维:[1,2,5,5,4,8]

2维:[[1,4,5],[1,4,7]]

3维:[[[1,4,5],[1,4,7]],[[1,4,5],[1,4,7]]]

数组运算有加法,乘法。具体计算可以在python中尝试,数组是ndarray类型。3.

矩阵

矩阵特点:必须是二维,矩阵的运算满足了特定的需求。我们可以仅仅通过1步的矩阵乘法,就得出w1*x1+w2*x2+w3*x3这样模型的结果。

矩阵乘法的要求会涉及到矩阵的形状要求:m*n的矩阵 * n*p的矩阵,结果是m*p的矩阵

也就是说,第一个矩阵的列数,必须要和第二个矩阵的行数相同。

3.线性回归的算法

线性回归是一种迭代的算法。我们需要建立一个函数,对于每一个特征x(i)都有一个对应的权重w(i),两者相乘,并最终把所有的特征权重乘积求和,就是我们的目标结果。但如何寻找到最佳的权重,从而使得模型能够最好地拟合我们的样本呢?

线性回归的迭代算法的每次迭代,都会更新权重w(i)的值,使模型往靠近样本点的地方更加靠近,而损失函数,就是我们用来求得最佳权重的函数。

损失函数定义如下:

损失意思就是预测的各个目标值,与各个原目标值的差的平方和(误差平方和)。损失越小也就是预测值与原值越接近,效果越好。该方法也称为最小二乘法。当损失函数达到最小值时,所对应的权重w,就是我们的目标权重。

二、权重的求解

1.正规方程

是求权重w的一种方法,适用于特征少的数据。用的比较少。

 2.梯度下降

该方法通过指定学习率,并利用梯度,迭代更新权重。通常都使用这个方法。

正规方程API:sklearn.linear_model.LinearRegression()

梯度下降API:sklearn.linear_model.SGDRegressor()

两个算法都可以通过.coef_得到回归系数,学习率是一个超参数,也可使用网格交叉验证进行调优。

三、线性回归案例

1.案例概述

通过从sklearn中获取的“波士顿房价预测”数据进行房价预测,特征有很多,比如该镇的人均犯罪率、一氧化氮浓度、低收入人群占比等。我们对每一个特征都给出一个权重,通过算法,求得最佳的权重即可。

2.数据获取

导入数据代码:from sklearn.datasets import load_boston

代码:lb = load_boston()

3.数据分割

代码:x_train, x_test, y_train, y_test = train_test_split(lb.data, lb.target, test_size=0.25)

4.数据标准化

此处的数据,需要对特征数据以及目标值数据都进行标准化,并且需要用不同的标准。

导入标准化方法:from sklearn.preprocessing import StandardScaler

x实例化方法:std_x = StandardScaler()

y实例化方法:std_y = StandardScaler()

标准化:

x_train = std_x.fit_transform(x_train)

x_test = std_x.transform(x_test)

y_train = std_y.fit_transform(y_train)

y_test = std_y.transform(y_test)

5.模型训练

注意,训练后得出的目标值,是标准化后的,因此需要使用StandardScaler中的inverse_transform进行转换回原来的值。

实例化算法:lr = LinearRegressor()

将数据转为二维:y_train = y_train.reshape(-1,1)

训练算法:lr.fit(x_train, y_train)

预测结果:y_predict = lr.predict(x_test)

结果转为正常结果:y_lr_predict = std.inverse_transform(y_predict)

6.回归性能评估

通过对预测值也真实值计算均方误差可得,API中,输入真实目标值,以及预测目标值即可(注意:输入的都是标准化之前的值。

 API:sklearn.metrics.mean_squared_error(y_true, y_pred)

线性回归性能评估:mean_squared_error(y_test, y_lr_predict)

以上为使用线性回归算法,对房价进行的预测。其他的算法,具体操作基本一致。

7.梯度下降与正规方程区别

 特点:线性回归器是最为简单、易用的回归模型。 从某种程度上限制了使用,尽管如此,在不知道特征之间关系的前提下,我们仍然使用线性回归器作为大多数系统的首要选择。

小规模数据可以使用LinearRegression(不能解决拟合问题)以及其它

大规模数据需要使用梯度下降法,SGDRegressor

四、岭回归Ridge

1.过拟合与欠拟合

欠拟合:一个假设在训练数据上不能获得更好的拟合, 但是在训练数据外的数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)

解决方法:增加特征

过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)

解决方法:正则化

2.正则化

L2正则化是通过减少权重的方式,对模型进行优化,以解决过拟合的问题。该方法可以使得权重的每个元素都非常接近于0,参数变小,则模型变简单。从而达到解决过拟合问题的效果。

岭回归就是带有正则化的线性回归。

岭回归API:sklearn.linear_model.Ridge

正则化中,alpha(或者lambda)越大,说明对参数的惩罚越大,参数就越趋近于0。

岭回归优点:回归得到的回归系数更符合实际,更可靠。另外,能让估计参数的波动范围变小,变的更稳定。在存在病态数据偏多的研究中有较大的实用价值。


http://chatgpt.dhexx.cn/article/Ie6iMXCI.shtml

相关文章

什么是岭回归?

问题引出: 当使用最小二乘法解决一下线性回归: 假设:已知x1,x2与y的关系服从线性回归模型: y102x13x2c 当x1和x2存在线性相关性时,使用最小二乘法来预测回归模型,就变得困难起来,因此物品们必须使用逐步回…

岭回归总结

岭回归存在的目的: 解决多重共线性下,最小二乘估计失效的问题 岭回归的作用:(在引入变量太多,又存在多重共线性,难以抉择去留哪个变量时可以通过该方法筛选变量) 1.找出多重共线性的变量,并提剔除部分 2…

岭回归(ridge regression)

岭回归(ridge regression) 在处理回归问题时,常遇到的问题 在处理复杂的数据的回归问题时,普通的线性回归会遇到一些问题,主要表现在:   预测精度:这里要处理好这样一对为题,即样…

【回归分析】一文读懂岭回归,附案例教学

1、作用 岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强…

人工智能——岭回归(Python)

目录 1 概述 1.1 线性回归 1.2 岭回归 1.3 过拟合 2 sklearn中的岭回归 3 案例 3.1 数据介绍: 3.2 实验目的: 3.3 数据特征如下: 4 Python实现 4.1 代码 4.2 结果 5 正则化 1 概述 1.1 线性回归 对于一般地线性回归问题&am…

岭回归(Ridge Regression)和Lasso回归

1、岭回归(Ridge Regression) 标准线性回归(简单线性回归)中: 如果想用这个式子得到回归系数,就要保证(X^TX)是一个可逆矩阵。 下面的情景:如果特征的数据比样本点还要多,数据特征…

岭回归详解 从零开始 从理论到实践

岭回归详解 从零开始 从理论到实践 一、岭回归的理解1.1、LinearRegression的回顾1.2、岭回归 - Ridge Regression 二、sklearn的使用2.1、方法、参数与属性2.1.1、特征标准化 - StandardScaler2.1.2、岭回归 - Ridge2.1.3、内置交叉验证岭回归 - RidgeCV 2.2、实例应用2.2、简…

分布式之Quorum NWR算法

写在前面 假设现在我们实现了AP 系统,但是公司突然要对某些业务进行实时的数据计算,并且要求按照强一致性的方式来读取数据,此时作为系统设计这的我们该怎么办呢?单独为这部分业务实时抽出最新数据?还是修改原有系统&…

glusterfs:Server-quorum和Client Quorum

overview 这两个参数在容错场景中发挥着巨大的作用。用户借助这两个参数 既可以手动控制存在多少个活着的节点表示集群健康,也可以把这个控制权交给集群。 Server-quorum 由两个参数组成 cluster.server-quorum-type: none | server 如果设置为server表示启动了s…

Quorum机制

/******************************************************** 原文链接:http://www.cnblogs.com/jzhlin/archive/2012/07/23/2605077.html ********************************************************/ 分布式系统的设计中会涉及到许多的协议、机制用来解决可靠性问…

Elasticsearch:理解 Master,Elections,Quorum 及 脑裂

集群中的每个节点都可以分配多个角色:master、data、ingest、ml(机器学习)等。 我们在当前讨论中感兴趣的角色之一是 master 角色。 在 Elasticsearch 的配置中,我们可以配置一个节点为 master 节点。master 角色的分配表明该节点…

Quorum简介部署

文章目录 简介账户/密钥管理隐私私有交易管理器 (Private transaction Manager)enclave公有/私有状态 状态验证交易和合约隐私 (Transaction and Contract Privacy)参考 简介 GoQuorum基于geth,在其基础上增加了一些联盟链需要的组件,主要包括以下几点&…

分布式系统理论之Quorum机制

一,Quorum机制介绍 对于数据存储而言,为了提高可用性(Availability),采用了副本备份,比如对于HDFS,默认每块数据存三份。某数据块所在的机器宕机了,就去该数据块副本所在的机器上读…

Hyperledger/Quorum等区块链技术综述

[1]邵奇峰,张召,朱燕超,周傲英.企业级区块链技术综述[J].软件学报,2019,30(09):2571-2592. 摘要:在传统跨机构交易的企业应用中,各个机构都是独立记录己方的交易数据,机构间数据的差异会引起争议,通常需要人工对账或中介机构来解决,因而增加了结算时间和交易费用.区…

基于以太坊项目quorum多机多节点搭建_1

准备工作 环境搭建 我这里使用4台虚拟机来模拟实际网络,在这四台虚拟机里分别搭建了quorum节点。 我这里使用quorum maker 工具来搭建quorum quorum maker 是一个带UI界面的自动化搭建quorum的工具。 quorum maker 安装 git clone https://github.com/synechr…

Quorum白皮书

Quorum白皮书下载

【quorum源码】quorum tessera源码剖析

目录 概述1. 项目结构2. 数据库结构3. 主要流程3.1 服务启动3.2 交易处理3.3 加密交易 4. Restful API4.1 Q2TRestApp4.2 ThirdPartyRestApp4.3 P2PRestApp4.4 EnclaveApplication 5. 一些核心接口App、Enclave相关的类图:com.quorum.tessera.server.TesseraServerc…

Quorum NWR算法

假如我们遇到这样一种事情:你开发实现了一套 AP 型的分布式系统,实现了最终一致性。业务也接入了,运行正常,一起看起来都那么美好。可是,突然有同事说,我们要拉这几个业务的数据做实时分析,希望…

paxosquorum

注: 这里谈论的2PC不同于事务中的2PC,而是专门为了同步和高可用改过的2PC协议 问题: 寻求一种能够保证,在给定多台计算机,并且他们之间由网络相互连通,中间的数据没有拜占庭将军问题(数据不会被伪造)的前…

分布式共识算法随笔 —— 从 Quorum 到 Paxos

分布式共识算法随笔 —— 从 Quorum 到 Paxos 概览: 为什么需要共识算法? 昨夜西风凋碧树,独上高楼,望尽天涯路 复制(Replication) 是一种通过将同一份数据在复制在多个服务器上来提高系统可用性和扩展写吞吐的策略, 。常见的复制策略有主从…