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

news/2024/11/22 18:26:05/

一、线性回归简介

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)

http://www.ppmy.cn/news/81792.html

相关文章

java 社区人口管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 社区人口管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0…

程序员必须避免的7个代码陷阱,否则你会成为 “debugger“ 的王者!

作为一名程序员,编写高质量、可维护、安全且高效的代码是非常重要的。然而,由于程序员的工作涉及到许多技术和细节,因此很容易陷入各种技术陷阱。下面将详细介绍程序员在编写代码时需要避免的一些常见陷阱。 1. 忽略代码质量和可维护性 在编…

gin框架返回json

一、使用gin web框架开发的两种模式: 前端浏览器去请求服务器,服务器把完整的HTML文件的内容返回给前端浏览器Vue、reactor等前端框架都自己提前定义好模板,后端(服务器)只需要返回JSON格式的数据给前端框架即可&…

设计模式 (二) 创建型设计模式系列

目录 1.单例模式 2.工厂模式 3.抽象工厂模式 4.建造者模式 5.原型模式 创建型设计模式是一组用于处理对象创建的模式,包括单例模式、工厂模式、抽象工厂模式、建造者模式和原型模式。在这个系列中,我们将介绍这些模式的使用方法和实例。 1.单例模式…

信息收集思路

1、开发者注释 在网站前端代码中遗留的开发者注释 其中可能包含某些关键信息 ​ 💡 使用F12 、CtrlU 、view-source: 查看前端源码 ​ 3、Robots文件 爬虫协议,网站根目录存在的robots.txt文件,用于告知搜索引擎或爬虫哪些路径和页面不…

服务(第三十篇)elk-elasticsearch、logstash、kiabana

rsyslog 服务器较少时使用,rsyslog日志收集,统一存放在专门存放日志的收集器中; ELK 简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用…

化工生产制造企业实施技术变革前要问自己的 6 个问题

化工企业将新技术(大数据、人工智能、云计算、RFID、PDA、GIS)引入到业务中,通过填补技术基础设施中的空白来帮助企业团队成员更高效、更有效地完成工作,是一项卓有成就的事情。但是,企业在急于快速实施新解决方案以获…

相爱相杀的在线帮助文档语雀、Baklib、石墨文档,到底有何区别?

在线帮助文档是现代企业不可或缺的一部分,它提供了针对特定产品或服务的详细说明和指南,以帮助用户更好地理解产品或服务并解决问题。目前市面上有许多在线帮助文档工具,其中语雀、Baklib和石墨文档是比较受欢迎的三种,本文将对它…