线性回归、正规方程和梯度下降法

一、线性回归简介

1.定义与公式

线性回归是利用回归方程(函数)一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。

  • 特点:只有一个自变量的情况称为单变量回归,多余一个自变量情况的叫做多元回归

  • 通用公式:
    y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β p x p + ε y = β₀ + β₁x₁ + β₂x₂ + ... + βₚxₚ + ε y=β0+β1x1+β2x2+...+βpxp+ε
    其中,y是因变量(目标值),x₁、x₂、…、xₚ是自变量(特征值),β₀、β₁、β₂、…、βₚ是模型的参数(权重),ε是误差项,表示模型预测值与实际观测值之间的差异,它是一个随机项,表示模型无法完全准确地解释因变量的变异性。

  • 举例:

    • 期末成绩 = 0.7 × 考试成绩 + 0.3 × 平时成绩
    • 房子价格 = 0.02 × 中心区域的距离 + 0.04 × 城市一氧化氮浓度 + (-0.12 × 自住房平均房价)+ 0.254 × 城镇犯罪率

    上面两个例子,可以看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型

2.线性回归的特征与目标的关系分析

线性回归当中主要有两种模型,一种是线性关系,另一种是非线性关系

  • 线性关系:

    • 单变量线性关系:

      在这里插入图片描述

    • 多变量线性关系:

      在这里插入图片描述

  • 非线性关系:

    在这里插入图片描述

3.线性回归应用场景
  • 房价预测
  • 销售额度预测
  • 贷款额度预测

二、线性回归的损失和优化

在这里插入图片描述

绿色线是预测的结果,红色线是真实结果。

1.损失函数(又称最小二乘法)
  • 公式:
    L ( β 0 , β 1 , . . . , β p ) = Σ i ( y i − ( β 0 + β 1 x 1 i + β 2 x 2 i + . . . + β p x p i ) ) 2 L(β₀, β₁, ..., βₚ) = Σᵢ(yᵢ - (β₀ + β₁x₁ᵢ + β₂x₂ᵢ + ... + βₚxₚᵢ))² L(β0,β1,...,βp)=Σi(yi(β0+β1x1i+β2x2i+...+βpxpi))2
    其中,L表示损失函数,yᵢ表示第i个样本的实际观测值,x₁ᵢ、x₂ᵢ、…、xₚᵢ 表示第 i 个样本的自变量(输入变量),β₀、β₁、β₂、…、βₚ表示模型的参数(权重)。

    如何去减少这个损失,使我们预测的结果更加准确些?这里可以通过一些优化算法去优化(其实是数学当中的求导功能)回归的总损失。

2.优化算法

如何去求模型当中的参数β,使得损失最小?(目的是找到最小损失对应的参数值β)

  • 线性回归经常使用的两种优化算法
    • 正规方程
    • 梯度下降法

三、正规方程和梯度下降法

1.正规方程

正规方程(Normal Equation)是一种通过解析方法求解线性回归模型参数的方法。它是基于最小化平方损失函数的线性回归问题的闭式解。

  • 公式:
    𝒃 = ( 𝑿 T 𝑿 ) − 1 𝑿 T 𝒚 𝒃 = (𝑿ᵀ𝑿)⁻¹ 𝑿ᵀ𝒚 b=(XTX)1XTy
    其中,𝑿是输入特征矩阵,包含每个样本的自变量值,𝒚是观测值向量,包含每个样本的因变量值,𝒃是参数向量,包含线性回归模型的参数估计值。

  • 举例:

    在这里插入图片描述

    运用正规方程方法求解参数:

    在这里插入图片描述

  • 正规方程的API

    • sklearn.linear_model.LinearRegression(fit_intercept=True)
      • 参数fit_intercept:是否计算偏置
    • 属性:
      • LinearRegression.coef_:回归系数
      • LinearRegression.intercept:偏置
  • 正规方程的优点和缺点

    • 优点:

      它能够一次性计算出最佳参数估计值,而无需使用迭代算法进行优化。

    • 缺点:

      1. 正规方程的计算复杂度为O(𝑛³)(其中𝑛是特征的数量),当特征数量较大时,计算量可能会很大。
      2. 如果特征矩阵𝑿不满秩(即存在特征间的线性相关性),则正规方程求解过程中的矩阵求逆操作可能会导致数值不稳定性。

    因此,在实际应用中,对于较小规模的线性回归问题,正规方程是一种简单有效的求解方法。而对于较大规模的问题,或存在特征相关性的情况,通常使用迭代优化算法(如梯度下降)来求解线性回归模型的参数。

2.梯度下降法

梯度下降(Gradient Descent)是一种常用的迭代优化算法,用于求解各种机器学习和优化问题,包括线性回归。它通过迭代的方式逐步调整模型参数,以最小化损失函数 。

  • 公式:

    在这里插入图片描述

    θ表示参数向量 ,J(θ)表示损失函数关于小批量训练样本的参数θ的梯度, α表示学习率 ,α不能太大也不能太小,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点。

    我们需要朝着下降最快的方向走,自然就是负的梯度的方向。所以梯度前加一个负号,就意味着朝着梯度相反的方向前进。

  • 基本思想:

    在每一次迭代中,计算损失函数关于参数的梯度(即导数),然后沿着负梯度的方向更新参数,以使损失函数逐渐减小。梯度指向了损失函数上升最快的方向,因此取负梯度方向可以使损失函数下降。

  • 具体步骤:

    1. 初始化参数:选择初始的参数值(权重)作为算法的起点。
    2. 计算梯度:根据当前参数值计算损失函数关于参数的梯度,即求解损失函数对各个参数的偏导数。
    3. 更新参数:沿着梯度的反方向调整参数值,使损失函数减小。这个调整的幅度由学习率(learning rate)控制,学习率决定了每一步参数更新的大小。
    4. 重复迭代:重复执行步骤2和步骤3,直到达到停止迭代的条件,例如达到最大迭代次数或损失函数下降的幅度小于某个阈值。

    通过不断地迭代更新参数,梯度下降算法会逐渐接近损失函数的最小值,从而得到最佳的参数估计值。

  • 梯度下降算法的API:

    • sklearn.linear_model.SGDRegression(loss=“squared_loss”,fit_intercept=True,learning_rate=“invscaling”,eta0=0.01)
    • 参数:
      • loss:损失模型,squared_loss指的是最小二乘法
      • fit_intercept:是否计算偏置
      • learning_rate: 学习率(learning rate)参数,用于控制每次参数更新的步长大小。
        • constant : 固定学习率,即每次迭代中保持学习率不变 。 学习率的初始值由eta0参数指定。
        • optimal : 根据数据自适应地调整学习率。 在训练过程中根据公式 eta = eta0 / pow(t, power_t) 进行更新,其中 t 是迭代次数,power_t 是控制学习率下降速度的指数。
        • invscaling : 根据迭代次数调整学习率 , 在训练过程中根据公式 eta = eta0 / pow(t, power_t) 进行更新,其中 t 是迭代次数,power_t 是控制学习率下降速度的指数。
    • 属性:
      • SGDRegression.coef_:回归系数
      • SGDRegression.intercept:偏置
  • 梯度下降法的优缺点:

    • 优点:
      1. 广泛适用性:梯度下降法可以用于各种机器学习和优化问题,特别适用于连续可微的目标函数。
      2. 全局最优解:在损失函数是凸函数的情况下,梯度下降法可以找到全局最优解。对于非凸函数,梯度下降法可以找到局部最优解。
      3. 直观易懂:梯度下降法的基本原理简单直观,容易理解和实现 。
      4. 可并行化:梯度下降法的迭代过程可以自然地并行化,可以加速计算过程。
    • 缺点:
      1. 学习率的选择:梯度下降法的性能很大程度上依赖于学习率的选择,过大或过小的学习率都可能导致算法性能下降。
      2. 局部最优解:梯度下降法对于非凸函数存在收敛到局部最优解的风险,可能无法找到全局最优解。
      3. 特征缩放的要求:梯度下降法对输入特征的尺度敏感,如果特征之间的尺度差异较大,可能需要进行特征缩放以获得更好的性能。
      4. 计算复杂度:对于大规模数据和复杂模型,梯度下降法的计算复杂度较高,需要大量的计算资源和时间。
3.正规方程和梯度下降的对比
正规方程梯度下降
不需要学习率需要选择学习率
一次运算得出需要迭代求解
需要计算方程,时间复杂度O(n3)特征数量较大可以使用
4.算法选择依据
  • 小规模数据
    • 正规方程:(不能解决拟合问题)
    • 岭回归
  • 大规模数据
    • 梯度下降法
      • 全梯度下降算法(FG)
      • 随机梯度下降算法(SG)
      • 小批量梯度下降算法(mini-batch)
      • 随即平均梯度下降算法(SAG)
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值