多元线性回归(一)

news2024/12/1 0:31:07

基本概念

线性回归时机器学习中监督学习下的一种算法。回归问题主要关注是因变量(需要预测的值,可以是一个也可以是多个)和一个或多个值型的自变量(预测变量)之间的关系。
需要预测的值:即目标变量,target,y,连续值预测变量
影响目标变量的因素:X1……Xn,可以是连续值也可以是离散值。
因变量和自变量之间的关系:即模型,model,是我们要求解的。


1.1 连续值

数值型数据中,能无限细分的叫做连续型
例如身高,长度


1.2 离散型数据

不能无限细分的就叫离散型
比如序号1~20,1和2之间没有别的序号,又比如等级数据,一级二级三级是人为界定,或者我国的各省的名称,不是测量获得的。


1.3 简单的线性回归

前面提到过的,算法说白的了就是公式,简单的线性回归属于一个算法,他所对应的公式
y = w x + b y = wx + b y=wx+b
这个公式中,y是目标变量即未来要预测的值,X是影响y的因素,w,b
是公式上的参数即要求的模型。其实b 就是截距,w就是斜率,所以和明显如果模型求出来了,未来影响y值的未知数据就是一个X值,也可以一说影响y值的因素只有哦一个,所以这就叫简单的线性回归的原因。
同时我们可以发现从x到y的计算,x只是一次方,所以这些算法叫线性回归是我原因

其实,大家在上小学的时候就已经会解一元一次方方程了,为什么那个时候哦不叫人工智能算法呢?因为人工智能算法要求的是最优解!


1.4 最优解

Actual value: 真实值,一般使用y表示
Predicted value: 预测值,是把已知的x带入到公式里面和猜出来的参数w,b计算得到的,一般使用在这里插入图片描述表示
Error::误差,预测值和真实值的差距,一般使用在这里插入图片描述表示
最优解:尽可能找到一个模型整体的误差最小,整体误差通常叫做损失Loss.
Loss:整体的误差,loss通过损失函数 loss function计算得到的
简单的线性回归的dome


1.5 多元线性回归

但是在现实生活中,往往影响y的因素不止一个,这时x就从一个变成n个了
,x1……xn 同时简单线性回归的公式就不在适用了。多元线性回归如下:

多元线性公式
在这里插入图片描述

2. 正规方程

2.1 最小二乘法

最小二乘法(Least Squares Method)是一种常见的数字优化技术,用于拟合一组数据点的最佳线性回归方程。它的目标是找到一条直线,使得该直线和数据点之间的误差平方和最小。

具体而言,最小二乘法的目标是最小化每个数据点与拟合直线之间垂直距离的平方和,即最小化所有数据点到拟合直线的残差平方和。残差是指每个数据点的实际值和集合直线在该点处的预测值之间的差异。

最小的二乘法可用于回归分析,即对一组数据拟合,并预测未来数据点的值。此外,他可以用于求解线性方程组,如先行回归模型的系数或参数估计等。

最小二乘法可以将误差转化为有确定的代数方程组(其方程式数目正好等于未知数的个数),从而可求解出这些未知参数。这个有确定解的代数方程组称为最小二乘法估计的正规方程。公式如下:

在这里插入图片描述

2.2、多元一次方程举例

1、二元一次方程

{ x + y = 14 2 x − y = 10 \begin{cases} x + y=14\\ 2x - y = 10\\ \end{cases} {x+y=142xy=10

2、三元一次方程

{ x − y + z = 100 2 x + y − z = 80 3 x − 2 y + 6 z = 256 \begin{cases} x - y + z = 100\\ 2x + y -z = 80\\ 3x - 2y + 6z = 256\\ \end{cases} xy+z=1002x+yz=803x2y+6z=256

3、八元一次方程

{   14 x 2 + 8 x 3 + 5 x 5 + − 2 x 6 + 9 x 7 + − 3 x 8 = 339 − 4 x 1 + 10 x 2 + 6 x 3 + 4 x 4 + − 14 x 5 + − 2 x 6 + − 14 x 7 + 8 x 8 = − 114 − 1 x 1 + − 6 x 2 + 5 x 3 + − 12 x 4 + 3 x 5 + − 3 x 6 + 2 x 7 + − 2 x 8 = 30 5 x 1 + − 2 x 2 + 3 x 3 + 10 x 4 + 5 x 5 + 11 x 6 + 4 x 7 + − 8 x 8 = 126 − 15 x 1 + − 15 x 2 + − 8 x 3 + − 15 x 4 + 7 x 5 + − 4 x 6 + − 12 x 7 + 2 x 8 = − 395 11 x 1 + − 10 x 2 + − 2 x 3 + 4 x 4 + 3 x 5 + − 9 x 6 + − 6 x 7 + 7 x 8 = − 87 − 14 x 1 + 4 x 3 + − 3 x 4 + 5 x 5 + 10 x 6 + 13 x 7 + 7 x 8 = 422 − 3 x 1 + − 7 x 2 + − 2 x 3 + − 8 x 4 + − 6 x 6 + − 5 x 7 + − 9 x 8 = − 309 \left\{\begin{aligned} & \ 14x_2 + 8x_3 + 5x_5 + -2x_6 + 9x_7 + -3x_8 = 339\\&-4x_1 + 10x_2 + 6x_3 + 4x_4 + -14x_5 + -2x_6 + -14x_7 + 8x_8 = -114\\&-1x_1 + -6x_2 + 5x_3 + -12x_4 + 3x_5 + -3x_6 + 2x_7 + -2x_8 = 30\\&5x_1 + -2x_2 + 3x_3 + 10x_4 + 5x_5 + 11x_6 + 4x_7 + -8x_8 = 126\\&-15x_1 + -15x_2 + -8x_3 + -15x_4 + 7x_5 + -4x_6 + -12x_7 + 2x_8 = -395\\&11x_1 + -10x_2 + -2x_3 + 4x_4 + 3x_5 + -9x_6 + -6x_7 + 7x_8 = -87\\&-14x_1 + 4x_3 + -3x_4 + 5x_5 + 10x_6 + 13x_7 + 7x_8 = 422\\&-3x_1 + -7x_2 + -2x_3 + -8x_4 + -6x_6 + -5x_7 + -9x_8 = -309 \end{aligned}\right.  14x2+8x3+5x5+2x6+9x7+3x8=3394x1+10x2+6x3+4x4+14x5+2x6+14x7+8x8=1141x1+6x2+5x3+12x4+3x5+3x6+2x7+2x8=305x1+2x2+3x3+10x4+5x5+11x6+4x7+8x8=12615x1+15x2+8x3+15x4+7x5+4x6+12x7+2x8=39511x1+10x2+2x3+4x4+3x5+9x6+6x7+7x8=8714x1+4x3+3x4+5x5+10x6+13x7+7x8=4223x1+7x2+2x3+8x4+6x6+5x7+9x8=309

# 上面八元一次方程对应的X数据
X = np.array([[  0 ,14 , 8 ,  0 ,  5,  -2,   9,  -3],
 [ -4 , 10 ,  6 ,  4 ,-14 , -2 ,-14  , 8],
 [ -1 , -6  , 5 ,-12 ,  3 , -3 ,  2 , -2],
 [  5 , -2  , 3 , 10  , 5 , 11 ,  4  ,-8],
 [-15 ,-15  ,-8 ,-15 ,  7 , -4, -12 ,  2],
 [ 11 ,-10 , -2 ,  4  , 3 , -9 , -6 ,  7],
 [-14 ,  0 ,  4 , -3  , 5 , 10 , 13 ,  7],
 [ -3 , -7 , -2 , -8  , 0 , -6 , -5 , -9]])
# 对应的y
y = np.array([ 339 ,-114  , 30 , 126, -395 , -87 , 422, -309])
display(X,y)

2.3、矩阵转置公式与求导公式

转置公式如下:

  • ( m A ) T = m A T (mA)^T = mA^T (mA)T=mAT,其中m是常数
  • ( A + B ) T = A T + B T (A + B)^T = A^T + B^T (A+B)T=AT+BT
  • ( A B ) T = B T A T (AB)^T = B^TA^T (AB)T=BTAT
  • ( A T ) T = A (A^T)^T = A (AT)T=A

假设我们有一个矩阵 A A A,它是一个 3 × 2 3 \times 2 3×2 的矩阵,其中包含了 6 6 6 个元素。我们可以将其表示为:

A = ( 1 2 3 4 5 6 ) A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \\ \end{pmatrix} A= 135246

现在,如果我们想要转置矩阵 A A A,我们可以将 A A A 中的行和列互换。这样就得到了一个新的矩阵 A T A^T AT,它的行数和 A A A 的列数相等,列数和 A A A 的行数相等。在这种情况下, A T A^T AT 是一个 2 × 3 2 \times 3 2×3 的矩阵。我们可以使用下面的公式来计算 A T A^T AT

A i , j T = A j , i A^T_{i,j} = A_{j,i} Ai,jT=Aj,i

也就是说,新矩阵中的第 i i i 行和第 j j j 列的元素等于原矩阵中的第 j j j 行和第 i i i 列的元素。

下面是具体的演示:

A T = ( 1 3 5 2 4 6 ) A^T = \begin{pmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \\ \end{pmatrix} AT=(123456)

在上面的例子中,我们首先写出了矩阵 A A A,然后使用公式 A i , j T = A j , i A^T_{i,j} = A_{j,i} Ai,jT=Aj,i 将其转置为矩阵 A T A^T AT。转置矩阵的行和列与原矩阵相反,其中原矩阵的第 i i i 行变为了新矩阵的第 i i i 列,原矩阵的第 j j j 列变为了新矩阵的第 j j j 行。

求导公式如下:

  • $ ∂ X T ∂ X = I \frac{\partial X^T}{\partial X} = I XXT=I 求解出来是单位矩阵
  • ∂ X T A ∂ X = A \frac{\partial X^TA}{\partial X} = A XXTA=A
  • $ ∂ A X T ∂ X = A \frac{\partial AX^T}{\partial X} = A XAXT=A
  • ∂ A X ∂ X = A T \frac{\partial AX}{\partial X} = A^T XAX=AT
  • ∂ X A ∂ X = A T \frac{\partial XA}{\partial X} = A^T XXA=AT
  • ∂ X T A X ∂ X = ( A + A T ) X ; \frac{\partial X^TAX}{\partial X} = (A + A^T)X; XXTAX=(A+AT)X; A不是对称矩阵
  • ∂ X T A X ∂ X = 2 A X ; \frac{\partial X^TAX}{\partial X} = 2AX; XXTAX=2AX; A是对称矩阵

2.4、推导正规方程 θ \theta θ 的解

  1. 矩阵乘法公式展开
  • J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta) = \frac{1}{2}(X\theta - y)^T(X\theta - y) J(θ)=21(y)T(y)

  • J ( θ ) = 1 2 ( θ T X T − y T ) ( X θ − y ) J(\theta) = \frac{1}{2}(\theta^TX^T - y^T)(X\theta - y) J(θ)=21(θTXTyT)(y)

  • J ( θ ) = 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) J(\theta) = \frac{1}{2}(\theta^TX^TX\theta - \theta^TX^Ty -y^TX\theta + y^Ty) J(θ)=21(θTXTθTXTyyT+yTy)

  1. 进行求导(注意X、y是已知量, θ \theta θ 是未知数):
  • J ′ ( θ ) = 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) ′ J'(\theta) = \frac{1}{2}(\theta^TX^TX\theta - \theta^TX^Ty -y^TX\theta + y^Ty)' J(θ)=21(θTXTθTXTyyT+yTy)​​

    y T y y^Ty yTy 是常量

  • J ′ ( θ ) = 1 2 ( ( θ T X T X θ ) ′ − ( θ T X T y ) ′ − ( y T X θ ) ′ ) J'(\theta) = \frac{1}{2}((\theta^TX^TX\theta)' - (\theta^TX^Ty)' -(y^TX\theta)') J(θ)=21((θTXT)(θTXTy)(yT))​​​​​

根据2.3、矩阵转置公式与求导公式可知

  • J ′ ( θ ) = 1 2 ( ( θ T X T X θ ) ′ − X T y − ( y T X ) T ) J'(\theta) = \frac{1}{2}((\theta^TX^TX\theta)' - X^Ty -(y^TX)^T) J(θ)=21((θTXT)XTy(yTX)T)​​

  • J ′ ( θ ) = 1 2 ( X T X θ + ( θ T X T X ) T − X T y − ( y T X ) T ) J'(\theta) = \frac{1}{2}(X^TX\theta + (\theta^TX^TX)^T- X^Ty -(y^TX)^T) J(θ)=21(XT+(θTXTX)TXTy(yTX)T)​​​

  • J ′ ( θ ) = 1 2 ( X T X θ + X T X θ − X T y − X T y ) J'(\theta) = \frac{1}{2}(X^TX\theta + X^TX\theta- X^Ty -X^Ty) J(θ)=21(XT+XTXTyXTy)

  1. 根据上面求导公式进行运算:
  • J ′ ( θ ) = 1 2 ( X T X θ + ( θ T X T X ) T − X T y − ( y T X ) T ) J'(\theta) = \frac{1}{2}(X^TX\theta + (\theta^TX^TX)^T-X^Ty - (y^TX)^T) J(θ)=21(XT+(θTXTX)TXTy(yTX)T)
  • J ′ ( θ ) = 1 2 ( X T X θ + X T X θ − X T y − X T y ) J'(\theta) = \frac{1}{2}(X^TX\theta + X^TX\theta -X^Ty - X^Ty) J(θ)=21(XT+XTXTyXTy)
  • J ′ ( θ ) = 1 2 ( 2 X T X θ − 2 X T y ) J'(\theta) = \frac{1}{2}(2X^TX\theta -2X^Ty) J(θ)=21(2XT2XTy)
  • J ′ ( θ ) = X T X θ − X T y J'(\theta) =X^TX\theta -X^Ty J(θ)=XTXTy
  • J ′ ( θ ) = X T ( X θ − y ) J'(\theta) =X^T(X\theta -y) J(θ)=XT(y) 矩阵运算分配律
  1. 令导数 J ′ ( θ ) = 0 : J'(\theta) = 0: J(θ)=0
  • 0 = X T X θ − X T y 0 =X^TX\theta -X^Ty 0=XTXTy

  • X T X θ = X T y X^TX\theta = X^Ty XT=XTy

  1. 矩阵没有除法,使用逆矩阵进行转化:
  • ( X T X ) − 1 X T X θ = ( X T X ) − 1 X T y (X^TX)^{-1}X^TX\theta = (X^TX)^{-1}X^Ty (XTX)1XT=(XTX)1XTy
  • I θ = ( X T X ) − 1 X T y I\theta = (X^TX)^{-1}X^Ty Iθ=(XTX)1XTy
  • θ = ( X T X ) − 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)1XTy

到此为止,公式推导出来了~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1290496.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚观早报 |东方甄选将上架文旅产品;IBM首台模块化量子计算机

【聚观365】12月6日消息 东方甄选将上架文旅产品 IBM首台模块化量子计算机 新思科技携手三星上新兴领域 英伟达与软银推动人工智能研发 苹果对Vision Pro供应商做出调整 东方甄选将上架文旅产品 东方甄选宣布12月10日将在东方甄选APP上线文旅产品,受这一消息影…

idea+spring框架+thymeleaf实现数据库增加数据(不使用xml文件)

增加数据主要涉及四个文件 Apple.java写清楚数据库内部字段 package com.example.appledemo.pojo;import lombok.Getter;Getter public class Apple {private Integer appleId;private Integer price;private Integer weight;public void setAppleId(Integer appleId) {this.a…

合并PDF(将多个pdf文件整合成一个pdf文件)

推荐使用下面这个免费在线的PDF文件合并工具,简单且易操作。 合并PDF - 在线上免费合并PDF文件 (smallpdf.com) 还有其他功能,不过现在我尚未使用其他功能: 关于费用:

工厂方法设计模式项目实践

前言 以采集数据处理逻辑为例,数据采集分为不同种类如:MQTT、MODBUS、HTTP等,不同的采集数据有不同的解析处理逻辑。但总体解析处理步骤是固定的。可以使用工厂方法设计模式简化代码,让代码变得更加优雅。 代码实战 抽象类 总体…

反序列化 [网鼎杯 2020 朱雀组]phpweb 1

打开题目 我们发现这个页面一直在不断的刷新 我们bp抓包一下看看 我们发现index.php用post方式传了两个参数上去,func和p 我们需要猜测func和p两个参数之间的关系,可以用php函数MD5测一下看看 我们在响应处得到了一串密文,md5解密一下看看 发…

Vue+ElementUI技巧分享:结合Sortablejs实现表格行拖拽

文章目录 前言准备工作示例代码代码说明1. 引入依赖和组件结构2. 组件数据和生命周期3. 实现拖拽功能4. 更新数据和服务器同步 运行效果总结 前言 在很多动态网页应用中,用户界面的交互性是提高用户体验的关键。在 Vue.js 中,结合 Element UI 和 sortab…

为何开展数据清洗、特征工程和数据可视化、数据挖掘与建模?

1.2为何开展数据清洗、特征工程和数据可视化、数据挖掘与建模 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解1.2节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。内容涵盖数据科学…

【Linux】冯诺依曼体系结构(硬件)、操作系统(软件)、系统调用和库函数 --- 概念篇

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和Linux还有算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 …

微信小程序 分享的两种方式:菜单级和按钮级

按钮级 在使用微信小程序的时候,我们可能会设计到一些视频的一些分享等,那么视频分享也分为两种方式,例如下图,当我们点击的时候,进行一个转发分享的一个操作 那么在原先代码的基础上,我们需要在原先代码的基础上butt…

用PHP与html做一个简单的登录页面

用PHP与html做一个简单的登录页面 login.html的设计 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

lv11 嵌入式开发 PWM 18

目录 1 PWM简介 1.1 蜂鸣器工作原理 1.2 GPIO控制 1.3 PWM控制 2 Exynos4412下的 PWM控制器 2.1 总览 2.2 设置步骤 2.3 功能框图 2.4 特征 3 寄存器介绍 3.1 总览 3.2 TCFG0 一级分频寄存器 3.3 TCFG1 二级分频寄存器 3.4 TCON控制寄存器 3.5 TCNTB TCMPB T…

苹果ios的系统app应用WebClip免签应用开源及方式原理

在移动设备上&#xff0c;为了方便访问我们经常使用的网站或服务&#xff0c;我们经常会希望将其添加到主屏幕上&#xff0c;以便快速启动。虽然我们可以通过使用浏览器书签实现这一目标&#xff0c;但添加一个图标到主屏幕上&#xff0c;使得它看起来与原生App无异&#xff0c…

【EI会议征稿中】第三届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2024)

第三届网络安全、人工智能与数字经济国际学术会议&#xff08;CSAIDE 2024&#xff09; 2024 3rd International Conference on Cyber Security, Artificial Intelligence and Digital Economy 第二届网络安全、人工智能与数字经济国际学术会议&#xff08;CSAIDE 2023&…

ubuntu中显卡驱动,cuda,cudnn安装

1. 在ubuntu中安装显卡驱动 参考&#xff1a;https://blog.csdn.net/m0_37605642/article/details/119651996 2.在ubuntu中安装cuda 参考&#xff1a;https://blog.csdn.net/m0_61431544/article/details/127007300 2.1 安装cuda cuda官网&#xff1a; https://developer.n…

ORACLE数据库实验总集 实验四 Oracle数据库物理存储结构管理

一、实验目的 &#xff08;1&#xff09;掌握 Oracle数据库数据文件的管理 &#xff08;2&#xff09;掌握 Oracle数据库控制文件的管理 &#xff08;3&#xff09;掌握 Oracle数据库重做日志文件的管理 &#xff08;4&#xff09;掌握 Oracle数据库归档管理&#xff0c; 二、…

深入理解 Java 虚拟机(JVM)从入门到精通

目录 一、JVM内存结构1、堆&#xff08;Heap&#xff09;&#xff08;1&#xff09;特点&#xff08;2&#xff09;堆内存分配&#xff08;3&#xff09;晋升到老年代的方式&#xff08;4&#xff09;堆内存检验方式2、虚拟机栈&#xff08;VM Stack&#xff09;&#xff08;1&…

STM32F407-14.3.14-01生成 6 步 PWM

生成 6 步 PWM 当通道使用互补输出时&#xff0c;OCxM③、CCxE⑥ 和 CCxNE⑤ 位上提供预装载位。发生 COM⑧ 换向事件时&#xff0c;这些预装载位将传输到影子位。因此&#xff0c;用户可以预先编程下一步骤的配置&#xff0c;并同时更改所有通道的配置。COM⑧ 可由软件通过将 …

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含pytho、JS工程源码)+数据集+模型(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 相关其它博客工程源代码下载其它资料下载 前言 本项目基于Keras框架&#xff0c;引入CNN进行模型训练&#xff0c;采用Dropout梯度…

团建策划信息展示服务预约小程序效果如何

团建是中大型企业商家每年举办的员工活动&#xff0c;其形式多样化、具备全部参与的娱乐性。但在实际策划流程及内容时&#xff0c;部分公司便会难以入手&#xff0c;术业有专攻&#xff0c;这个时候团建策划公司便会发挥效果。 如拓展训练、露营、运动会、体育竞技等往往更具…

进程_D1(2023-12-6)

①XMind ②双进程分工同时拷贝一个文件的上下两半部分 int main(int argc, const char *argv[]) {int pid -1;//文件描述符创建&#xff08;便于文件光标移动&#xff09;//① int rfd -1;if( ( rfd open("/root/fork2.c", O_RDONLY) ) -1 ){perror("open …