线性回归(Linear Regression)

2023-11-11

引言

说到底,回归任务都是寻找特征x与目标y之间的关系,我们认为每一个特征或多或少,或积极或消极地对目标产生着影响,我们期望寻找数学表达式来表达出这种影响。

一、回归模型

想象一下描述特征x与目标y之间最简单明了的关系是什么?

当然是线性关系了;每个特征占一个权重比例,影响着目标的表达。

1.1模型表达式

于是,我们构造Y=\beta_{0}+\beta_{1}x_1+...+\beta_{t}x_t+\varepsilon的模型表达式

其中x=(x_1,x_2,...,x_t)是输入的t维度特征向量,被称为自变量(independent variables);Y是我们所寻求的目标(target)。

\beta_{0}被称为截距(intercept);\beta_{1},\beta_{2},...,\beta_{t}被称为斜率参数(slope coefficients);\varepsilon是误差项(error term),与模型无关,服从于正态分布N(0,\sigma ^{2})

很形象的是,线性模型服从LINE准则,即

Linearity)线性 – 目标和自变量之间的关系是线性的

Independence)独立性 – 误差项相互独立

Normality)正态性 – 误差项服从正态分布

Equal variance)方差相等 – 误差项同方差

1.2一元线性回归

一元线性回归(Simple Linear Regression)顾名思义,自变量只有一个特征,是一维的,其表达式Y=\beta_{0}+\beta_{1}x_1+\varepsilon

对于二维坐标系而言,一元线性回归可视化就容易明朗的多。

点是实际值y,对应直线为模型的预测值\widehat{y},可以看到两者之间总是有一些距离的,是随机误差作用的结果。

二、参数估计

好了,模型已经有了,我们该如何确定斜率参数与截距项呢?

以一元线性回归为例,我们当然希望我们的预测与实际越接近越好,于是我们用损失\widehat{y}-y来衡量预测偏离实际的程度;

然而这种偏差时正时负,会相互抵消,于是我们用损失的平方之和来评判模型是否能很好的预测给定的数据:

L=\sum_{i=1}^{n}(\widehat{y}-y)^{2}

我们称上式为残差平方和(residual sum of squares ,RSS),我们希望通过改变\beta_{0},\beta_{1}使得这个损失最小,于是\beta_{0},\beta_{1}就是模型待估计的参数(coefficients)。

\widehat{\beta_{0}},\widehat{\beta_{1}}=\underset{\beta_0,\beta_1}{arg \\min}\sum_{i=1}^{n}(\widehat{y}-y)^{2}

\beta_1=\frac{\sum_{i=1}^{n}(x_i-\overline{x})(y_i-\overline{y})}{\sum_{i=1}^{n}(x_i-\overline{x})^2}

\beta_0=\overline{y}-\widehat{\beta_1}\overline{x}

其中\overline{x}=\frac{1}{n}\sum_{i=1}^{n}x_i是样本均值,\overline{y}=\frac{1}{n}\sum_{i=1}^{n}y_i是目标均值,\widehat{\beta_{0}},\widehat{\beta_{1}}是我们估计的参数

值得注意的一点是,一元线性回归是存在最优解的;

我们计算其损失的Hessian 矩阵

H=\begin{bmatrix} \frac{\partial^2L}{\partial w^2} & \frac{\partial^2L}{\partial b\partial w} \\ \frac{\partial^2L}{\partial w\partial b} & \frac{\partial^2L}{\partial b^2} \end{bmatrix} =\begin{bmatrix} 2\sum _{i=1}^{n}x_{i}^{2} & 2\sum _{i=1}^{n}x_{i}\\ 2\sum _{i=1}^{n}x_{i}& 2n \end{bmatrix}

讨论矩阵H的特征值,相当于讨论矩阵A=\begin{bmatrix}\sum _{i=1}^{n}x_{i}^{2} &\sum _{i=1}^{n}x_{i}\\ \sum _{i=1}^{n}x_{i}& n \end{bmatrix}的特征值

|\lambda I-A|=\begin{bmatrix}\lambda -\sum _{i=1}^{n}x_{i}^{2} &-\sum _{i=1}^{n}x_{i}\\ -\sum _{i=1}^{n}x_{i}& \lambda -n \end{bmatrix}

=\lambda^2-(n+\sum _{i=1}^n {x_i}^2)\lambda +n\sum_{i=1}^n {x_i}^2-\sum_{i=1}^n {x_i}\cdot \sum_{i=1}^n {x_i}=0

讨论n\sum_{i=1}^n {x_i}^2-\sum_{i=1}^n {x_i}\cdot \sum_{i=1}^n {x_i}=0项,经数学推导发现他恒非负

所以|\lambda I-A|的两个根其中一个大于0,另一个大于等于0(当

n\sum_{i=1}^n {x_i}^2-\sum_{i=1}^n {x_i}\cdot \sum_{i=1}^n {x_i}=0时该特征根为0)。
由此得知矩阵A正定或者半正定,于是又矩阵H正定半正定可见损失函数是凸函数(凸优化看这一篇

凸优化(Quasi convex optimization)与梯度下降(Grad descent)https://blog.csdn.net/a2333333_/article/details/130614781?spm=1001.2014.3001.5501),必定存在极值点。

三、多元线性回归

3.1多元线性回归表达式

上述的表达式y=\beta_{0}+\beta_{1}x_1+...+\beta_{t}x_t+\varepsilon便是多元线性回归(Multiple Linear Regression),它和一元的不同在于,特征多了起来。

对于这一串表达式,我们用简介的矩阵乘法来表示

Y=\begin{bmatrix} y_1\\ y_2 \\ ... \\ y_t \end{bmatrix} ,X=\begin{bmatrix} 1 &x_{11} & ... &x_{n1} \\ 1&x_{21} & ...&x_{n2} \\ ...& ...& ... & ...\\ 1& x_{t1} ...& x_{nt} & \end{bmatrix}, \beta=\begin{bmatrix} \beta_1\\ \beta_2 \\... \\ \beta_t \end{bmatrix}, \varepsilon = \begin{bmatrix} \varepsilon_1\\ \varepsilon_2 \\ ... \\ \varepsilon_t \end{bmatrix}

于是有Y=X\beta+\varepsilon ,RSS=(\widehat{y}-y)^{2}=(y-X\beta)^T(y-X\beta)

3.2参数估计

其中\beta=\begin{bmatrix} \beta_1\\ \beta_2 \\... \\ \beta_t \end{bmatrix}是待估计参数;

扩展上文所提到的,一元线性回归是凸优化问题,多元线性回归同样是凸优化问题,其损失函数是严格的凸函数,一定在区间内存在最优值,于是有

\widehat{\beta}=\underset{\beta}{arg \\min}(y-X\beta)^2=(X^TX)^{-1}X^TY

这便要求X^TX是可逆的,这便涉及到高等代数线性空间的理论了。

X^TX可逆,即仅存在0向量x=\begin{bmatrix} 0\\ 0 \\ ... \\ 0 \end{bmatrix}使得X^TXx=0,而XX^TX有着相同的零空间,于是要求X列满秩,即样本之间线性无关。

X^TX不可逆,也就是X不满足列满秩了,此时输入的多个样本之间线性相关了,即至少存在一个样本可以被其他样本的线性组合所表示,这时候称自变量存在完全多重共线性(perfect multicollinearity)。此时需要去掉那些由其他变量线性组合而成的变量,或者收集更多的特征使样本间不存在线性关系

X^TX可逆,但是有样本几乎可以被其他样本所线性表示了,此时称当变量间存在准多重共线性(near multicollinearity)。此时可以通过降维来解决问题。

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

线性回归(Linear Regression) 的相关文章

随机推荐

  • Flink 使用技巧

    基本使用直接参照官方文档 https ci apache org projects flink flink docs release 1 9 dev connectors kafka html 以下分享以下我的个性化使用方式 1 Event
  • (工作中)Apache常见配置

    Apache配置 1 设置静态文件过期时间为1天
  • 汉诺塔递归算法(Python编程)

    一 问题描述 汉诺塔是学习计算机递归算法的经典入门案例 是一个数学难题 其问题为如何将所有圆盘从A移动到C 要求一次只能移动一个盘子 盘子只能在3个标杆 A B C 之间移动 更大的盘子不能放在更小的盘子上面 请用Python编写一个汉诺塔
  • latex-列表 itemize enumerate description 自定义

    介绍 latex 主要有三种列表环境 进行罗列的实现 无序列表 itemize 有序列表 enumerate 描述列表 description 本文进行了一一介绍和演示 同时添加了嵌套列表环境和自定义列表环境的说明 latex 列表环境 l
  • 刚开始接触YOLO,记录一下Windows系统下载yolov5与初步进行训练的过程

    一 下载pycharm anaconda 与yolov5 第一步 下载pycharm anaconda pycharm Download PyCharm Python IDE for Professional Developers by J
  • 蓝桥杯2015年第六届真题-牌型种类

    题目 小明被劫持到X赌城 被迫与其他3人玩牌 一副扑克牌 去掉大小王牌 共52张 均匀发给4个人 每个人13张 这时 小明脑子里突然冒出一个问题 如果不考虑花色 只考虑点数 也不考虑自己得到的牌的先后顺序 自己手里能拿到的初始牌型组合一共有
  • 【uni-app】uniapp 实现一键登录 超详细记录~

    uniapp 实现一键登录 一 前置条件 开通uniCloud 开通一键登录功能 二 一键登录代码 云函数代码 三 其他条件 四 遇到过什么问题 如何处理 本地函数同个局域网 错误码 五 官网给出的错误码 参考的文档 官网 一键登录unia
  • Vmware 安装CentOS7时连不上网问题的解决

    在VmWare 上安装Centos7时 装好vmware后还是连不上网 通过查找资料原来是因为有线网卡没有激活 默认centos和redhat7都是不启用有线网卡的 要么手动开启 要么安装时直接启用 所以第一步应该是激活网卡 在桌面点击右键
  • Railway HDU - 3394(tarjan应用)

    题目 有一个公园有n个景点 公园的管理员准备修建m条道路 并且安排一些形成回路的参观路线 如果一条道路被多条道路公用 那么这条路是冲突的 如果一条道路没在任何一个回路内 那么这条路是不冲突的 问分别有多少条有冲突的路和没有冲突的路 题解 1
  • HTML5 本地裁剪图片并上传至服务器(转)

    很多情况下用户上传的图片都需要经过裁剪 比如头像啊什么的 但以前实现这类需求都很复杂 往往需要先把图片上传到服务器 然后返回给用户 让用户确定裁剪坐标 发送给服务器 服务器裁剪完再返回给用户 来回需要 5 步 步骤繁琐不说 当很多用户上传图
  • wpa_supplicant工具移植

    一 移植准备 就移植来说 wpa supplicant的移植和ssh十分类似 wpa supplicant需要openssl和libnl库 所以我们需要先准备好openssl和libnl库 openssl的移植在前面的文章嵌入式Linux开
  • 【AI安全与隐私论坛】第12期学习笔记——Trustworthy Al: to be Robust or to be Fair

    开设了会议学习系列 主要注重理解专家的科研和讲述逻辑 以及锻炼画概念图流程图的能力 绘图软件 PPT 第12期论坛视频链接 AI安全与隐私论坛第12期 密歇根州立大学汤继良教授 可信人工智能中的鲁棒性和公平性可以兼得吗 文章目录 1 Int
  • 深度学习-第T9周——猫狗识别

    深度学习 第T9周 猫狗识别 深度学习 第T9周 猫狗识别 一 前言 二 我的环境 三 前期工作 1 导入数据集 2 查看图片数目 四 数据预处理 1 加载数据 1 1 设置图片格式 1 2 划分训练集 1 3 划分验证集 1 4 查看标签
  • mysql8.0新特性--隐藏索引

    我们有时候想删除掉冗余索引 但是又怕删除之后影响到查询性能 这时候再回退就需要一定的时间 MySQL8 0开始支持隐藏索引 invisible indexes 隐藏索引不会被优化器使用 如果你想验证某个索引删除之后的查询性能影响 就可以暂时
  • MIPI协议解析——DPI

    在MIPI协议族中 除了DSI 用于显示 CSI 用于摄像头 还有几个概念会经常涉及到 这里把他们提出来说一说 免得有误区 MIPI DPI的全称为Display Pixel interface 是用于主机到显示设备的一种数据传输标准 一般
  • pycharm彻底卸载

    mac中pycharm下载后无法打开 可能是因为使用破解后vm路径改变 完全卸载后再次安装即可 cd Library Preferences rm rf PyCharm2019 x cd Library Logs rm rf PyCharm
  • _T() 和_L() _TEXT __T,L区别与联系详解

    T 和 L TEXT T L区别与联系详解 T 是一个宏 他的作用是让你的程序支持Unicode编码 因为Windows使用两种字符集ANSI和UNICODE 前者就是通常使用的单字节方式 但这种方式处理象中文这样的双字节字符不方便 容易出
  • c++11

    列表 1 boost bind 2 boost function 3 列表初始化 4 nullptr 空指针 6 constexpr函数 6 using类型别名 7 auto类型指示符 8 decltype类型指示符 9 范围for语句 1
  • k8s部署prometheus + grafana

    k8s以Deployment方式部署prometheus grafana 主机说明 系统 ip 角色 cpu 内存 hostname CentOS 7 8 192 168 30 128 master gt 2 gt 2G master1 C
  • 线性回归(Linear Regression)

    引言 说到底 回归任务都是寻找特征与目标之间的关系 我们认为每一个特征或多或少 或积极或消极地对目标产生着影响 我们期望寻找数学表达式来表达出这种影响 一 回归模型 想象一下描述特征与目标之间最简单明了的关系是什么 当然是线性关系了 每个特