岭回归模型|机器学习|回归算法

article/2025/9/13 0:35:17

目录

    • 1.岭回归模型
      • 1.1背景
      • 1.2损失函数
    • 2.相关代码
      • 2.1RidgeRegression类
      • 2.2求解代码
      • 2.3绘图代码
    • 3.直接调库使用


1.岭回归模型

1.1背景

对于回归问题来说,它们的基本内容基本上都是相同的,所以岭回归模型与线性回归模型类似:
y = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . θ n x n {\color{Violet}y = θ_{0}x_{0}+θ_{1}x_{1}+θ_{2}x_{2}+...θ_{n}x_{n}} y=θ0x0+θ1x1+θ2x2+...θnxn它们的差别主要体现在损失函数的构造上。

对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这种矩阵称为“病态矩阵”。有些时候不正确的计算方法也会使一个正常的矩阵在运算中表现出病态。对于高斯消去法来说,如果主元(即对角线上的元素)上的元素很小,在计算时就会表现出病态的特征。

而岭回归模型使用改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。

1.2损失函数

岭回归模型的损失函数构造如下:
J ( θ ) = 1 2 m ∑ i = 1 m ( y i − w x i ) 2 + λ 2 ∑ j = 1 n θ j 2 {\color{Violet}J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(y_{i}-wx_{i})^{2}+\frac{\lambda}{2}\sum_{j=1}^{n}\theta_{j}^{2}} J(θ)=2m1i=1m(yiwxi)2+2λj=1nθj2

且:
∑ j = 1 n θ j 2 ≤ λ {\color{Violet}\sum_{j=1}^{n}\theta _{j}^{2} ≤ \lambda} j=1nθj2λ

上式中的 𝑤 {\color{Red}𝑤} w 是长度为 𝑛 {\color{Red}𝑛} n 的向量,不包括截距项的系数 θ 0 {\color{Red}θ_{0}} θ0 m {\color{Red}m} m为样本数; 𝑛 {\color{Red}𝑛} n 为特征数。同样可以使用矩阵进行简化表达式,结果如下:
J ( θ ) = 1 2 ( Y − Y ^ ) 2 + λ 2 θ 2 {\color{Violet}J(\theta)=\frac{1}{2}(Y-\hat Y)^{2}+\frac{\lambda}{2}\theta ^{2}} J(θ)=21(YY^)2+2λθ2

我们对上式 θ {\color{Red}\theta} θ 进行求得,令求导后的式子等于0,可以求得最优解,转换后可以得到 θ {\color{Red}\theta} θ 的表达式为:
θ = ( X T X + λ I ) − 1 ( X T Y ) {\color{Violet}\theta = (X^{T}X+\lambda I)^{-1}(X^{T}Y)} θ=(XTX+λI)1(XTY)

其中 λ {\color{Red}\lambda} λ 做为传入的参数我们需要设置它的值,而 I {\color{Red}I} I 为单位矩阵,相对于线性回归模型来说此模型添加了 λ I {\color{Red}\lambda I} λI 这一项,此举可以保证 X T X {\color{Red}X^{T}X} XTX 可逆,所以总得来说可以解决病态矩阵的问题。


2.相关代码

2.1RidgeRegression类

import numpy as np
#定义RidgeRegression
class RidgeRegression :def __init__(self):'''初始化线性回归模型,最终要求得theta'''self.theta = None# 通过代码实现θ的求解,输入X和y的值,可以指定λ的大小,默认为0.2    def fit(self,xMat,yMat,lam=0.2):xMat=np.mat(xMat)#将数据转化为矩阵yMat=np.mat(yMat).T#将数据转化为矩阵,并进行转置xTx = xMat.T*xMat#矩阵xMat转置后相乘denom = xTx + np.eye(np.shape(xMat)[1])*lam#公式XTX+λI的表示代码# 判断denom是否是奇异的if np.linalg.det(denom) == 0.0:print("这个矩阵是奇异的,不可求逆")returnself.theta = denom.I * (xMat.T*yMat)#根据最优解求解公式求θ值# 对测试数据进行预测,输入的test_data是原本的X,我们要使用theta求得对应的预测值def predict(self,test_data):test_data=np.mat(test_data)#将数据转化为矩阵y_predict=test_data*self.theta#通过得到的θ值,对数据进行预测return y_predict

2.2求解代码

import pandas as pd
import numpy as np
#读取数据
data = pd.read_csv('/data/shixunfiles/11996b194a005626887e927dd336f390_1577324743961.csv')#提取特征值和真实值
X = data.iloc[:,:-1].values
y = data.iloc[:,-1].values#对特征值加一列x0,x0的所有值为1
X = np.hstack((np.ones((X.shape[0],1)),X))#建立模型,并训练模型
rr = RidgeRegression()
rr.fit(X,y)#对数据进行预测,为了求拟合曲线,因此使用原始数据进行预测
ypredict = rr.predict(X)

这里展示了csv中一些数据,下标从0-6的列表示的是每个特征点的特征值,下标为7的列表示每个特征点对应的标签。注意此时我们需要添加一列x0,值都为1。
在这里插入图片描述

2.3绘图代码

import matplotlib.pyplot as plt
import seaborn as sns;
sns.set()
#选择200条数据进行查看
plt.scatter(range(200),y[:200],s=20)
plt.plot(range(200),ypredict[:200],color='black')

在这里插入图片描述


3.直接调库使用

∙ \bullet 实际在使用时,不需要自己实现岭回归的模型,此时我们直接调库即可;

∙ \bullet 格式为:from sklearn.linear_model import Ridge

∙ \bullet 调用时:ridge = Ridge(alpha=1.0)

∙ \bullet 常用方法如下:

方法格式含义
fit(X,y)拟合岭回归模型,X为特征值矩阵,y为标签向量
predict(X)得到模型预测的结果向量,X为输入特征值矩阵

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

相关文章

机器学习学习笔记(13)----岭回归(Ridge回归)

在《机器学习学习笔记(4)----线性回归的数学解析》,我们通过计算线性模型的损失函数的梯度,得到使得损失函数为最小值的的解析解,被称之为普通最小二乘法: (1) 公式(1)能够求得的前提是是满秩矩阵&#xf…

Python机器学习教程—岭回归的原理和实现

在某些场景下,线性回归无法给出一个效果好的预测模型,那么就需要使用线性回归的升级版,去面对更复杂的应用场景,本文所记录的岭回归便是线性回归的一个升级版。 目录 强势样本对模型的影响 实例 岭回归定义 岭回归的实现 岭…

岭回归和Lasso回归

偏差和方差 机器学习算法针对特定数据所训练出来的模型并非是十全十美的,再加上数据本身的复杂性,误差不可避免。说到误差,就必须考虑其来源:模型误差 偏差(Bias) 方差(Variance) …

基于Python的岭回归模型

本文是使用Python进行岭回归模型分析,消除多重共线性 一、岭回归原理 自变量之间存在多重共线性,当时,加上一个正的常数矩阵(K>0),岭回归估计定义公式: (k为岭参数) 的奇异程度比奇异程度小&…

用SPSS进行岭回归分析

打开SPSS将数据输入到SPSS中。 点击左上角文件->新建->语法 输入 * Encoding: UTF-8. INCLUDE D:\Program Files\IBM\SPSS\Statistics\27\Samples\Simplified Chinese\Ridge regression.sps. ridgereg enter x1 x2 x3 x4 x5 x6 x7 x8 x9 x10/depy.include内容需要自己寻找…

R语言与岭回归

岭参数的一般选择原则 选择k(或lambda)值,使得:各回归系数的岭估计基本稳定用最小二乘估计时符号不合理的回归系数,其岭回归的符号变得合理回归系数没有不合乎实际意义的绝对值残差平方和增大的不多 用R语言进行岭回归…

岭回归(Ridge Regression)及实现

岭回归(Ridge Regression)及实现 https://blog.csdn.net/google19890102/article/details/27228279 一、一般线性回归遇到的问题 在处理复杂的数据的回归问题时,普通的线性回归会遇到一些问题,主要表现在: 在处理复杂的数据的回归问题时&…

岭回归(R语言)

代码实现如下&#xff1a; data3.3<-read.csv("C:/Users/Administrator/Desktop/data3.3.csv",headTRUE) datas<-data.frame(scale(data3.3[,1:6])) # 对样本数据进行标准化处理并转换为数据框的存储格式 library(MASS) ridge3.3<-lm.ridge(y~.-1,datas,l…

多元线性回归-岭回归

目录 1.精确相关关系 2.高度相关关系 3.多重共线性与相关性 4.岭回归 5.linear_model.Ridge 5.1.案例1&#xff1a;加利福尼亚房屋价值数据 5.2.案例2:波士顿房价数据集 6.选取最佳正则化参数取值 1.精确相关关系 精确相关关系&#xff0c;即完全相关。如矩阵A并不是满…

回归——岭回归

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

【机器学习04】岭回归

4 岭回归 4.1 简介 普通线性回归模型使用基于梯度下降的最小二乘法&#xff0c;在最小化损失函数的前提下&#xff0c;寻找最优模型参数&#xff0c;在此过程中&#xff0c;包括少数异常样本在内的全部训练数据都会对最终模型参数造成程度相等的影响&#xff0c;异常值对模型…

机器学习——岭回归

岭回归的简单介绍 什么是岭回归&#xff1f;什么时候要用到岭回归&#xff1f;岭回归是一种解决标准方程法不能求逆矩阵时的办法。我们都知道&#xff0c;用标准方程法最大的一个缺点就是当数据的特征多于数据的样本时&#xff0c;标准方程法是不能使用的&#xff0c;因为不能…

数学建模学习:岭回归和lasso回归

线性回归 在多元线性回归模型中&#xff0c;估计回归系数使用的是OLS&#xff0c;并在最后讨论异方差和多重共线性对模型的影响。事实上&#xff0c;回归中自变量的选择大有门道&#xff0c;变量过多可能会导致多重共线性问题导致回归系数不显著&#xff0c;甚至造成OLS估计失…

python机器学习| 岭回归介绍及实现

岭回归介绍及实现 1 岭回归的引入2 岭回归的原理2.1 原理介绍2.2 原理代码实现 3 API 实现 1 岭回归的引入 在线性回归-正规方程和梯度下降中&#xff0c;我们介绍了基于正规方程或者梯度下降的优化算法&#xff0c;来寻找最优解。 在正规方程解中&#xff0c;它是基于直接求导…

岭回归与lasso回归算法

模型压缩与正则化主要包含岭回归&#xff08;Ridge regression&#xff09;和Lasso两种方法&#xff0c;二者的主要原理是将系数往等于0的方向压缩。 岭回归 lasso 全称&#xff1a;Least absolute shrinkage and selection operator最小绝对缩减和选择算子 一、岭回归示…

岭回归-回归实操

python 岭回归算法之回归实操 基本概念 正则化 正则化是指对模型做显式约束&#xff0c;以避免过拟合。本文用到的岭回归就是L2正则化。&#xff08;从数学的观点来看&#xff0c;岭回归惩罚了系数的L2范数或w的欧式长度&#xff09; 正则化的具体原理就不在这里多叙述了&a…

线性回归与岭回归

目录 一、什么是线性回归 1.线性回归简述 2.数组和矩阵 3.线性回归的算法 二、权重的求解 1.正规方程 2.梯度下降 三、线性回归案例 1.案例概述 2.数据获取 3.数据分割 4.数据标准化 5.模型训练 6.回归性能评估 7.梯度下降与正规方程区别 四、岭回归Ridge 1.过拟…

什么是岭回归?

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

岭回归总结

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

岭回归(ridge regression)

岭回归&#xff08;ridge regression&#xff09; 在处理回归问题时&#xff0c;常遇到的问题 在处理复杂的数据的回归问题时&#xff0c;普通的线性回归会遇到一些问题&#xff0c;主要表现在&#xff1a;   预测精度&#xff1a;这里要处理好这样一对为题&#xff0c;即样…