线性回归模型

2023-11-05

线性回归是最简单的机器学习模型,也是最基础最重要的分析工具,易于实现。本文将将简单讲述线性回归、最小二乘法和梯度下降三种算法。

目录

1.线性回归方程(OLS)

2.最小二乘法(OLS)

3.梯度下降(GD)

3.1超参数 ​ 的选择

 3.2局部最小值

 3.3随机梯度下降和小批量梯度下降

(1)随机梯度下降

(2)小批量梯度下降


1.线性回归方程(OLS)

对一个给定的训练集数据,线性回归的目标是找到与这些数据最相符的线性函数。该算法可用于预测、分类等问题,回归分析可以分为三个部分:(1)识别重要变量(2)判断相关性的方向(3)估计回归系数

首先,数据可以分为时间序列数据、面板数据和横截面数据三类。

(1)时间序列数据:对同一对象在不同时间连续观察得到的数据;

(2)横截面数据:在某一时刻所收集的不同对象的数据;

(3)面板数据:横截面数据与时间序列数据综合起来的一种数据资源。

对于不同类型的数据需要使用不同的回归模型,具体如下:

数据类型 常见建模方法
时间序列数据 多元线性回归
横截面数据 移动平均、指数平滑、ARIMA、GARCH、VAR、协积
面板数据 固定效应和随机效应、静态面板和动态面板

下面我们介绍一下线性回归模型。

一般地,线性回归模型函数形式为:

h_w,_b(x)=\sum_{i=1}^{n}w_ix_i+b_i=w^Tx+b

其中,w\in R^n 与 b\in R 为模型参数 ,即回归系数。我们做一下变换:

w=(b,w_1,w_2,...,w_n)^T,x=(1,x_1,x_2,...,x_n)^T.

此时,函数形式为:

h_w(x)= \sum_{i=0}^{n}w_ix_i=w^Tx    

其中,w\in R^{n+1} ,通过训练模型确定参数 w ,再将新的数据输入进行预测。


2.最小二乘法(OLS)

线性回归模型中通常用均方误差(MSE)作为损失函数,假设训练集D中有m个样本,其损失函数为:

J(w)=\frac{1}{2m}\sum_{i=1}^{m}(h_w(x_i)-y_i)^2=\frac{1}{2m}\sum_{i=1}^{m}(w^Tx-y_i)^2

模型的训练目标是找到使损失函数最小化的w,式中的  \frac{1}{2} 无实际含义,只是为了优化求导时方便。

损失函数 J(w) 的最小值就是其极值点,可先求 J(w) 对 w 的梯度并令其为0,再求解 w .

J(w) 的梯度:

\bigtriangledown J(w)=\frac{1}{2m}\sum_{i=1}^{m} \frac{\partial }{\partial w}(w^Tx_i-y_i)^2=\frac{1}{m}\sum_{i=1}^{m}(w^Tx_i-y_i)x_i

可以引入

X=\begin{bmatrix} 1, &x_1_1, & x_1_2 &\cdots &x_1_n \\ 1, & x_2_1, &x_2_2 & \cdots &x_2_n \\ \vdots &\vdots &\vdots & \ddots &\vdots \\ 1,& x_m_1, &x_m_2 &\cdots &x_m_n \end{bmatrix}=\begin{bmatrix} x_1^T\\x_2^T \\\vdots \\ x_m^T \end{bmatrix},

y=\begin{bmatrix} y_1\\ y_2 \\\vdots \\y_m \end{bmatrix},

w=\begin{bmatrix} b\\w_1 \\w_2 \\ \vdots \\w_n \end{bmatrix}

则梯度计算公式可写为:

\bigtriangledown J(w)=\frac{1}{m}X^T(Xw-y)

再令梯度为 0 ,得:

\hat{w}=(X^TX)^{-1}X^Ty

其中,\hat{w}为损失函数最小的w. 式中的X^TX是满秩的,但是X^TX不总是满秩的,只是会存在多个\hat{w},这时可以引入正则化项。

 以上求解最优的 w 的方法就是最小二乘法。


3.梯度下降(GD)

很多机器学习模型的最优化参数不能通过最小二乘法这种“闭式”方程求得,这时就需要用到“迭代优化”的方法,即每次根据当前情况做出一点点微调,反复迭代调整,直到达到最优或接近最优时才停止,其中应用最广泛的迭代优化方法就是梯度下降法。梯度下降就是逐步调整参数,使得损失函数最小。

损失函数最小化的过程示意图如下:

图1

 每次下降都是沿着函数值下降最快的方向,梯度下降算法可描述为:

(1)根据当前参数 w 计算损失函数梯度 \bigtriangledown J(w)

(2)沿着梯度反方向-\bigtriangledown J(w)  调整 w ,调整的大小称为步长,由学习率 \eta 控制,其公式为:

w:=w-\eta\bigtriangledown J(w)

(3)反复执行上述过程,直到梯度为 0 或损失函数降低小于阈值,此时算法已收敛。

另外,应用梯度下降算法需要考虑几种情况。

3.1超参数 \eta 的选择

如果 \eta 过大,则有可能出现接近最小值时又跳跃到函数更大的值上的情况,即越过最小值点,如图2所示;而如果 \eta 过小,则接近最小值的速度会很慢,算法收敛速度过慢,会导致模型训练时间过长,如图3.

                  

                                 图2                                                                                  图3

 3.2局部最小值

梯度下降算法可能会收敛于局部最小值,而非全局最小值。如果起始点位于局部最小值的左侧,算法很有可能收敛于局部最小值,如图4

 图4

这是因为,梯度算法的每一步都是基于整个训练集X计算梯度的,并且每次都使用整批训练样本计算梯度,当训练集过大时,算法运行速度会很慢。

设学习率为 \eta ,随机梯度下降算法的参数更新公式为:

 w:=w-\eta\frac{1}{m}X^T(X^w-y)

 3.3随机梯度下降和小批量梯度下降

(1)随机梯度下降

随机梯度下降是与批量随机下降相反的极端情况,每步只用一个样本来计算梯度。

随机梯度下降算法梯度公式为:

\bigtriangledown J(w)=(w^Tx_i-y)

设学习率为 \eta ,随机梯度下降算法的参数更新公式为:

w:=w-\eta(w^Tx_i-y_i)x_i

通常随机梯度下降收敛时,参数 w 是足够优的,但不是最优的。但当损失函数很不规则时,即存在多个局部最小值时,更有可能会跳过局部最小值,最终接近全局最小值。随机梯度下降的每一轮训练前通常都要随机打乱训练集。

(2)小批量梯度下降

小批量梯度下降是介于批量梯度下降和随机梯度下降之间的方案,每一步使用一小部分训练集来计算梯度。

设一小批样本的数量为N,小批量梯度下降算法的梯度计算公式为:

\bigtriangledown J(w)=\frac{1}{N}\sum_{i=k}^{k+N}(w^Tx_i-y_i)x_i

设学习率为 \eta ,小批量梯度算法的参数更新公式为:

w:=w-\eta\frac{1}{N}\sum_{i=k}^{k+N}(w^Tx_i-y_i)x_i

小批量梯度下降算法应用时可以根据情况指定N值。


以上就是线性回归模型的简单介绍,之后会更新使用python分别实现OLS回归和GD回归,后续还会更新一些算法,小伙伴们可以关注一下哦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性回归模型 的相关文章

  • 网络优化的指标

    延迟 延迟指的是IP数据包从一个网络端点到另一个网络端点所花费的时间 RTT 往返协议 制约Web性能的主要瓶颈 带宽 两个网络端点之间的连接会一次处理尽可能多的数据量 DNS查询 建立连接的时间 TLS协商时间 首节字节时间 TTFB 指
  • securecrt从服务器获取文件夹,在SecureCRT屏幕下获取数据并存至文件中

    在SecureCRT屏幕上获取数据并存至文件中 在CRT屏幕上获取某个具体位置的文本 可以使用Screen 对象的Get or Get2 方法去获取屏幕上的数据 1 Get 函数包含四个参数 文本第一个字符所在的行号 列号 最后个字符所在的
  • C语言学习路线图 #CSDN博文精选# #IT技术# #C语言# #学习路线# #系统化学习#

    大家好 我是小C 又见面啦 文章过滤器 精选大咖干货 助力学习之路 5天20篇CSDN精选博文带你掌握系统化学习方法 专栏将挑选有关 系统化学习方法 的20篇优质文章 帮助大家掌握更加科学的学习方法 在这里 你将收获 快速掌握系统化学习的理
  • Docker-compose安装

    docker compose docker compose是用于定义和运行多容器docker应用程序的工具 compose 通过一个配置文件来管理多个docker容器 可以使用docker compose yml脚本来启动 停止 重启应用
  • 如何编写测试用例

    用例的五个构成元素 下面从这五个元素的角度 去剖析如何编写测试用例 用例标题 用例标题就是测试点名称 用例标题是用来说明这个用例的测试目的的 好的用例标题是别人看完你这个用例标题后就知道你这个用例是测什么的 但并不是标题越详细越好 既然是标
  • Cdiak

    include
  • 多模态超省钱!JinaChat 面向开发者的大模型服务

    2023年6月25日 Jina AI 发布了 JinaChat 一个面向开发者和终端用户的多模态大模型API 传统大型语言模型往往将竞争力建立在 参数多 和 刷分强 的基础上 然而对于应用开发者来说 传统模型商的 API 并不能很好地让开发
  • STM32F4驱动42步进电机(采用驱动器)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 器件 实物 接线 TB6600拨码卡关 代码说明 main c 代码如下 示例 main c 代码 极简版 step motor c 代码如下 示例 step mo
  • 机票票面各项内容详解

    ALLOW 或 BAG 说明免费托运行李的限制 记重或记件 例如印 20K 就表示限带 20公斤 超重部分运费还要另计 一般经济舱每人限重为 20 公斤 相关内容见 行李规定 BOOKING REF 订票代号 CARRIER 表示 航空公司
  • Nginx启动,重启以及基本命令

    1 启动nginx 进入nginx安装目录执行 sbin nginx c conf nginx conf 2 验证nginx配置文件是否正确 方法1 进入nginx安装目录sbin下 输入命令 nginx t 回显test is succe
  • ubuntu工具列表

    微信 GitHub zq1997 deepin wine deepin源移植 Debian Ubuntu上最快的QQ 微信安装方式 FileZilla ftp sftp连接服务器 Ubuntu18 04安装FileZilla ubuntu安
  • 程序设计之归并排序

    6 86 归并排序 10 分 本题要求实现二路归并排序中的归并操作 待排序列的长度1 lt n lt 1000 函数接口定义 void Merge SqList L int low int m int high 其中L是待排序表 使排序后的
  • 阿里前端开发工具Weex安装学习

    支持原创 更多内容欢迎关注作者博客 http www china10s com blog p 314 移动互联网的开发方式 最开始的手机厂商定制版的封闭系统开发 到后来智能机出现之后 Android和iOS异军突起 形成了两大独立的阵营 这
  • Table is marked as crashed and should be repaired 解决办法

    遇到这个问题几个敲命令轻松搞定 1 首先进入mysql命令台 mysql u root p 回车 输入密码 2 查询所有的库 mysql gt show databases 3 进入数据库 eduyun 2015 sp1 是库名 mysql
  • JAVA设计模式(15)-解释器模式

    定义 给定一种语言 定义他的文法的一种表示 并定义一个解释器 该解释器使用该表示来解释语言中句子 类型 行为类模式 类图 解释器模式是一个比较少用的模式 本人之前也没有用过这个模式 下面我们就来一起看一下解释器模式 解释器模式的结构 抽象解
  • mac 如何安装hp laserjet m1136驱动

    直接在苹果的官网下载驱动就可以了 要下V5 1的那个版本https support apple com kb DL1888 viewlocale zh CN locale zh CN 选择系统偏好设置中的打印机 然后选择相对应的版本就可以了
  • C++语言基础

    1 1 1 简述下C 语言的特点 参考回答 C 在C语言基础上引入了面对对象的机制 同时也兼容C语言 C 有三大特性 1 封装 2 继承 3 多态 C 语言编写出的程序结构清晰 易于扩充 程序可读性好 C 生成的代码质量高 运行效率高 仅比
  • win10连接文件服务器记住密码如何删除,win10系统删除已记住的访问共享的账户与密码的操作方法...

    win10系统删除已记住的访问共享的账户与密码的操作方法 很多win10用户在使用电脑的时候 会发现win10系统删除已记住的访问共享的账户与密码的的现象 根据小编的调查并不是所有的朋友都知道win10系统删除已记住的访问共享的账户与密码的
  • Inno Setup 系列之先卸载之后再安装

    Inno Setup 系列之先卸载之后再安装 需求使用Inno Setup打包程序之后 很多时候我们需要在安装文件之前卸载原有的程序而不是覆盖安装 本文的Code就是实现了这样的功能 如果想要在安装前先卸载 那么需要加下面代码 需要注意的是
  • 案例分析2

    文章目录 16 质量属性 数据库 嵌入式 web 软件设计 15 质量属性 飞机起飞 嵌入式 数据库 数据持久层 14 mvc 数据流图 构件 质量属性 web 13 ESB mvc 安全 12 架构风格 ODP 嵌入式 设计模式 关系型数

随机推荐

  • QT-智能指针

    lt 智能指针与普通指针 最明显区别普通指针 要手动去释放 智能指针出了作用域自动释放 完全不用担心有内存忘记释放的操作 gt 智能指针 1 QScopedPointer 区域指针 2 QSharedPointer 智能指针 强引用计数指针
  • python 正则模块(re)

    1 正则表达式常见的具体应用场景如下 手机号校验 邮箱校验 身份证校验 网页标签匹配 车牌号校验 中文校验 2 re模块 正则表达式是一个特殊的字符序列 它能帮助你方便的检查一个字符串是否与某种模式匹配 Python 自1 5版本起增加了r
  • 加载人物模型

    var abPath prefab character nanjianshi 01all unity3d var assetName Nanjianshi 01All LuaHelper GetResManager LoadPrefabAs
  • LDAP和netty面试题

  • 自动化接口测试实战-第04天-读取外部数据文件、iHRM项目实战

    更多功能测试以及全套学习路线图均在专栏 戳进去领取 系列文章目录 身为开发必知必会的Linux Linux远程连接 命令的使用 Linux命令大全 唯一以案例详解文 持续更新中 Linux命令大全以及数据库 唯一以案例详解文 已完结 Web
  • 一次CNVD-2020-10487漏洞利用

    0x00漏洞简介 CNVD 2020 10487 tomcat ajp文件读取漏洞 0x01开始 某次对一个目标进行测试 用routerscan扫描搜集的C段资产 发现某个IP开放了22 6379 8009等端口 看到8009就想到了tom
  • 服务器ssd硬盘接笔记本,M.2固态硬盘怎么安装 台式机与笔记本电脑安装M.2 SSD方法图解...

    固态硬盘接口众多 不过目前最流行的还是SATA3 0和M 2接口SSD 不过 伴随着SATA3 0接口存在性能瓶颈 越来越多高速固态硬盘采用了M 2接口 那么M 2固态硬盘怎么安装 下面脚本之家就来教大家如何给台式电脑或者笔记本安装M 2固
  • 2.5.5 创建、安装VIO分区

    最后更新2021 07 26 与创建AIX分区相同 但在HMC选择创建vio server 分区 图 261 创建VIO分区 输入分区名 VIO分区的Partition ID与名称都可以随意指定 但为了便于管理 建议分区的名称就是用DNS可
  • 静态分析的四种基本方法

    数据流分析 Data Flow Analysis 将数据看作是图 节点是程序的基本快 边是描述控制如何从一个基本快转移掉另一个基本快 图可以解决很多问题 例如 以 图中边的抽象得出数学方程 七届就是可达性问题的答案 PREfix SLAM静
  • 服务器怎么清空系统盘,服务器怎么清空数据

    服务器怎么清空数据 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 无法看到 Windows 实例数据盘怎么办 磁盘挂载至
  • IPFS方得社区周欢:web3.0时代的分布式存储畅想

    链茶访是链茶馆新开辟的区块链项目报道专栏 每周会对一个项目团队进行专访 链茶馆将挖掘不同项目的闪光点 讲述区块链开发者的创业故事 为各位区块链同侪提供最新的项目资讯与行业动向 链茶馆今天采访了IPFS方得社区创始人周欢 该社区目前有4万用户
  • unity 常用的设计模式

    一 单例模式 在我们的整个游戏生命周期当中 有很多对象从始至终有且只有一个 这个唯一的实例只需要生成一次 并且直到游戏结束才需要销毁 单例模式一般应用于管理器类 或者是一些需要持久化存在的对象 优点 写起来很方便 调用方便 缺点 容易形成依
  • 深度学习3D可视化工具——Zetane Engine

    神经网络在工作的时候 里面到底是什么样 为了能透视这个 AI黑箱 中的过程 加拿大蒙特利尔一家公司开发一个3D可视化工具Zetane Engine 只需要上传一个模型 Zetane Engine就可以巡视整个神经网络 并且还可以放大网络中的
  • React-Router实战:路由传参(正则表达式)

    首先我们先做个路由普通传参的例子 一 准备工作 1 目录结构 index js components App gt App js Home gt Home js About gt About js News gt News js 2 源码
  • Qt常用命令和pro参数

    Qt常用工具 命令行指令 位于 C Qt5 7 1 5 7 msvc2015 64 bin 命令 功能 assistant 帮助文档 designer 设计器 linguist 翻译工具 lupdate 提取翻译字符串和生成ts文件 lre
  • logback不输出至文件_Logback日志使用详解

    Logback是由log4j创始人设计的一个开源日志组件 概述 Logback建立于三个主要类之上 日志记录器 Logger 输出端 Appender 和日志格式化器 Layout 这三种组件协同工作 使开发者可以按照消息类型和级别来记录消
  • caffe 红绿灯识别

    coding utf 8 加载必要的库 import numpy as np import sys os 设置当前目录 caffe root home ubuntu caffe sys path insert 0 caffe root py
  • Report, 20150402, Formulas on Entropy, Part I

    Section 1 Papoulis s Formula Lemma 1 If the random variables y 1 ldots y n are the linear combination of random variable
  • Artifactory Maven 使用教程

    Maven 仓库使用 修改 Maven 配置文件 选择左侧 Artifacts 选择自己需要上传的 Maven 仓库 点击Set Me Up 在弹出的设置框中点击 点击下载生成的文件 将生成的文件放到此目录下 或者你自己的 Maven 目录
  • 线性回归模型

    线性回归是最简单的机器学习模型 也是最基础最重要的分析工具 易于实现 本文将将简单讲述线性回归 最小二乘法和梯度下降三种算法 目录 1 线性回归方程 OLS 2 最小二乘法 OLS 3 梯度下降 GD 3 1超参数 的选择 3 2局部最小值