【机器学习】线性回归——最小二乘法(理论+图解+公式推导)

article/2025/9/21 16:41:11

🌠 『精品学习专栏导航帖』

  • 🐳最适合入门的100个深度学习实战项目🐳
  • 🐙【PyTorch深度学习项目实战100例目录】项目详解 + 数据集 + 完整源码🐙
  • 🐶【机器学习入门项目10例目录】项目详解 + 数据集 + 完整源码🐶
  • 🦜【机器学习项目实战10例目录】项目详解 + 数据集 + 完整源码🦜
  • 🐌Java经典编程100例🐌
  • 🦋Python经典编程100例🦋
  • 🦄蓝桥杯历届真题题目+解析+代码+答案🦄
  • 🐯【2023王道数据结构目录】课后算法设计题C、C++代码实现完整版大全🐯

文章目录

  • 一、概述
  • 二、最小二乘估计


2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体系的文章,帮助大家更高效学习。


一、概述

在生活实际中经常遇到一些情况,比如根据公司内部一些人的工资待遇去预测一个将从事相同工作人的工资,我们需要根据已有数据来对未来的数据进行推测。

在高中时候我们学过最小二乘法就是求 a ∗ 和 b ∗ a^*和b^* ab 去拟合一条直线,来最大程度的是我们的样本点落在该直线上。

image-20210822105407401

由上图,显然我们希望的是找到一条直线使所以的样本点尽可能靠近该直线,即每个样本点到直线的距离最短,其实这么说还不太对,它不是到直线的距离最短,而是到与该样本点相同x点的y值的距离最短,如果是到直线的距离最短没有几何意义,如果是竖直距离,它可以表示我们预测值和真实值之间的一种离散程度,显然这个差值越小越好。

二、最小二乘估计

根据上面的理解这就引出了我们的损失函数,也就是最小二乘估计:

在给出公式之前,我们先给出一些约定,为了下面叙述方便:

  • x i x_i xi:每个样本为列向量,形状为(n,1)
  • X:样本矩阵,为(m,n)

注意:
X = [ x 1 T x 2 T . . . x m T ] = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n ] X=\begin{bmatrix}x_1^T\\x_2^T\\...\\x_m^T\end{bmatrix}\\=\begin{bmatrix}{x_{11}}&{x_{12}}&{\cdots}&{x_{1n}}\\{x_{21}}&{x_{22}}&{\cdots}&{x_{2n}}\\{\vdots}&{\vdots}&{\ddots}&{\vdots}\\{x_{m1}}&{x_{m2}}&{\cdots}&{x_{mn}}\\\end{bmatrix} X=x1Tx2T...xmT=x11x21xm1x12x22xm2x1nx2nxmn

  • w:为列向量,形状为(n,1)

我们下面公式推导的时候没有b,只是用了 y = X W y=XW y=XW ,这只是为了方便,其实可以把b放在X中和W向量中一起计算也可以,这样就变成了:
X = [ x 11 x 12 ⋯ x 1 n 1 x 21 x 22 ⋯ x 2 n 1 ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n 1 ] X=\begin{bmatrix}{x_{11}}&{x_{12}}&{\cdots}&{x_{1n}}&1\\{x_{21}}&{x_{22}}&{\cdots}&{x_{2n}}&1\\{\vdots}&{\vdots}&{\ddots}&{\vdots}\\{x_{m1}}&{x_{m2}}&{\cdots}&{x_{mn}}&1\\\end{bmatrix} X=x11x21xm1x12x22xm2x1nx2nxmn111

W = [ w 1 w 2 ⋮ w n w 0 ] W=\begin{bmatrix}w_1\\w_2\\\vdots\\w_n\\w0\end{bmatrix} W=w1w2wnw0

如果把两个矩阵这样写,其实是和 X W + b = Y XW+b=Y XW+b=Y 是等价的。
L ( w ) = ∑ i = 1 m ∣ ∣ w T x i − y i ∣ ∣ 2 = ∑ i = 1 m ( w T x i − y i ) 2 = [ w T x 1 − y 1 w T x 2 − y 2 . . . w T x m − y m ] [ w T x 1 − y 1 w T x 2 − y 2 . . . w T x m − y m ] = [ W T X T − Y T ] [ X W − Y ] = W T X T X W − Y T X W − W T X T Y + Y T Y = W T X T X W − 2 W T X T Y + Y T Y L(w)=\sum_{i=1}^m||w^Tx_i-y_i||^2\\=\sum_{i=1}^m(w^Tx_i-y_i)^2\\=\begin{bmatrix}w^Tx_1-y_1&&w^Tx_2-y_2&&...&&w^Tx_m-y_m\end{bmatrix}\begin{bmatrix}w^Tx_1-y_1\\w^Tx_2-y_2\\...\\w^Tx_m-y_m\end{bmatrix}\\=[W^TX^T-Y^T][XW-Y]\\=W^TX^TXW-Y^TXW-W^TX^TY+Y^TY\\=W^TX^TXW-2W^TX^TY+Y^TY L(w)=i=1mwTxiyi2=i=1m(wTxiyi)2=[wTx1y1wTx2y2...wTxmym]wTx1y1wTx2y2...wTxmym=[WTXTYT][XWY]=WTXTXWYTXWWTXTY+YTY=WTXTXW2WTXTY+YTY
因为我们采用的是最小二乘估计,所以我们希望我们的损失函数最小,所以我们求取函数导数为0的点,就是我们的最优解,有人可能有疑问,导数为0的点不一定是最值点,这里说明一下,因为我们的损失函数为凸函数,有因为凸函数是可优化的,所以该函数导数为0的点一定是最值点。

你可以想象二次函数 y = x 2 y=x^2 y=x2 ,他就是一个凸函数,显然它的导数为0的点一定是我们的最小值点,这里的损失函数为什么是最小值不予证明。

所以我们的最优解就为:
w ∗ = a r g m i n w L ( w ) w^*=argmin_wL(w) w=argminwL(w)
此时就需要对函数进行求导,令其导数为0
∂ L ( w ) ∂ w = 2 X T X W − 2 X T Y = 0 \frac{\partial L(w)}{\partial w}=2X^TXW-2X^TY=0 wL(w)=2XTXW2XTY=0
这里可能有人不会进行矩阵求导,我来讲两种方式,第一种就是损失函数不采用矩阵方式进行表达,用求和符号将其变成每个样本的损失然后求和,针对于每个样本对其求导,然后讲每个样本的导数相加,这样就避免了矩阵的求导。

我采用的是第二种方式:

我们讲原矩阵写成微分的形式:
d L ( w ) = t r ( ∂ L ∂ w T d ( w ) ) = d ( W T X T X W − Y T X W − W T X T Y + Y T Y = W T X T X W − 2 W T X T Y + Y T Y ) = d ( W T ) X T X W + W T X T X d ( W ) − 2 d ( W T ) X T Y = X T X W d ( W T ) + W T X T X d ( W ) − 2 X T Y d ( W T ) dL(w)=tr(\frac{\partial L}{\partial w}^Td(w))=d(W^TX^TXW-Y^TXW-W^TX^TY+Y^TY\\=W^TX^TXW-2W^TX^TY+Y^TY)\\=d(W^T)X^TXW+W^TX^TXd(W)-2d(W^T)X^TY\\=X^TXWd(W^T)+W^TX^TXd(W)-2X^TYd(W^T) dL(w)=tr(wLTd(w))=d(WTXTXWYTXWWTXTY+YTY=WTXTXW2WTXTY+YTY)=d(WT)XTXW+WTXTXd(W)2d(WT)XTY=XTXWd(WT)+WTXTXd(W)2XTYd(WT)
所以
∂ L ( w ) ∂ w = 2 X T X W − 2 X T Y = 0 \frac{\partial L(w)}{\partial w}=2X^TXW-2X^TY=0 wL(w)=2XTXW2XTY=0
这样我们就求出了最优解w:
w ∗ = ( X T X ) − 1 X T Y w^*=(X^TX)^{-1}X^TY w=(XTX)1XTY
然后我们就可以构造决策函数:
f ( x ) = ( w ∗ ) T x f(x)=(w^*)^Tx f(x)=(w)Tx
使用该函数就可以拟合我们的每一个样本点。

写在最后

     大家好,我是阿光,觉得文章还不错的话,记得“一键三连”哦!!!

img


http://chatgpt.dhexx.cn/article/3K6kWZdS.shtml

相关文章

线性回归例题解析

前往我的主页以获得更好的阅读体验线性回归例题解析 - DearXuan的主页https://blog.dearxuan.com/2022/03/23/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E4%BE%8B%E9%A2%98%E8%A7%A3%E6%9E%90/ 例题 调查某市出租车使用年限和该年支出维修费用(万元)&#…

windows计算机管理快捷键,windows系统常见快捷键大全

熟练电脑键盘快捷键有助于提供办公效率,但是对于一些职场的电脑小白来说,什么都不会,几分钟的工作需要几个小时来完成,如何在职场上立足呢?下面小编给您整理了常见的windows快捷键大全,让你的高效办公&…

桌面计算机休眠快捷键,电脑休眠唤醒快捷键

设置电脑休眠唤醒快捷键的方法 1、在电脑桌面空白处点击右键。 2、在新建列表中选择新建快捷方式。 3、在键入对象的位置栏中,输入rundll32.exe? powrprof.dll,SetSuspendState Hibernate。创建一个休眠命令。 4、把快捷方式的名字改为休眠即可。 设置电脑休眠键的…

修改PyCharm的快捷键

有的电脑系统中,按下一些PyCharm组合键可能会无法起作用,这是因为可能和当前系统的其他软件快捷键发生了冲突。 大家有需要可以更改下默认的快捷键,下面以Ctrl空格的自动代码补齐快捷键为例,方法是选择File——Settings&#xff…

调整计算机屏幕亮度快捷键,笔记本亮度调节的快捷键

现在小伙伴们使用电脑的时间越来越多,长时间使用电脑,对我们的眼睛伤害很大。建议大家使用一两个小时的电脑就要停下来休息10分钟,眺望远方。除此之外,电脑屏幕亮度的控制也是很有必要的。但是笔记本亮度调节的快捷键怎么使用呢&a…

立创eda快捷键

默认的快捷键列表如下。共用快捷键文档类型快捷键功能所有Space(空格键)旋转所选图形所有鼠标右键长按右键拖动画布;操作过程中按一下右键释放操作’所有Left向左滚动或左移所选图形所有Right向右滚动或右移所选图形所有Up向上滚动或上移所选图形所有Down向下滚动或…

Pycharm 常用快捷键 for Mac

格式化代码: command option L多行合并一行:control shift J快速注释/取消注释:crtl /鼠标指针上方插入空行:command option enter鼠标指针下方插入空行:shift enter上下移动选中代码: shift opti…

常用Windows快捷键大全

0. 简要 要将电脑玩的溜,快捷键是必须要掌握的技能,本文汇总了一些常用的快捷键,相信加以练习,一定能提高你的工作效率。 笔者将常用快捷键分为四个系列,如下所示: Win 系列Ctrl 系列Alt 系列F 系列 本…

vscode 快捷键 删除当前行

vscode 快捷键删除当前行默认的是 ctrlshiftk 但是会与搜狗输入法的快捷键冲突 解决办法 1.更换其他输入法 2.修改搜狗输入法的快捷键 3.修改vscode 快捷键 ,改成自己舒服的 修改vscode快捷键方法

计算机删除行快捷键,删除快捷键是什么?电脑删除快捷键有哪些?

在使用电脑的时候,除了鼠标之外,就是键盘最常用了。而在我们的日常操作中,为了操作更加方便,就有了快捷键。快捷键又称热键,指可以通过某些特定的按键和按键顺序及其组合来完成一项操作,多和Ctrl、Shift、A…

如何理解矩阵特征值

(下面的回答只涉及实数范围)。 关于特征值、特征向量可以讲的确实很多,我这里希望可以给大家建立一个直观的印象。 先给一个简短的回答,如果把矩阵看作是运动,对于运动而言,最重要的当然就是运动的速度和方…

矩阵特征值的求解例子

请点击上面公众号,免费订阅。  《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来&…

矩阵和特征值的本质

理解矩阵和特征向量的本质 原文地址 最近复习矩阵论中,又是一堆定理和证明突然发现学了这么常时间的矩阵论、线性代数,记住的只是一堆莫名其妙的定理而已,一些本质的东西都没有搞清楚。 比如,为什么要有矩阵,它仅仅是…

MATLAB矩阵的特征值与特征向量

1.矩阵特征值的数学定义 设A是n阶方阵,如果存在常数λ和n维非零列向量x,使得等式Ax λx 成立,则称λ为A的特征值,x是对应特征值λ的特征向量。 2.求矩阵的特征值与特征向量 在MATLAB中,计算矩阵的特征值与特征向量的…

线性代数教程 矩阵的特征值

CSDN 的文档显示有一些问题,一些数学符号显示不正确,想看 word文档 的可以移步到 github : LearningDocuments/学习资料/平台无关/线性代数 at master IceEmblem/LearningDocuments GitHub 矩阵的特征值与特征向量 特征值与特征向量 对于…

矩阵的特征值与特征向量 求解

矩阵特征值 定义1:设A是n阶矩阵,如果数和n维非零列向量使关系式成立,则称这样的数成为方阵A的特征值,非零向量成为A对应于特征值的特征向量。 说明:1、特征向量,特征值问题是对方阵而言的。 2、n阶方阵A的…

矩阵的特征值及特征向量理解

直观印象 如果把矩阵看作是运动,对于运动而言,最重要的是运动的速度和方向,那么: 特征值就是运动的速度特征向量就是运动的方向 既然运动最重要的两方面都被描述了,特征值、特征向量自然可以称为运动(矩…

【矩阵计算】特征值计算

一、理论基础 1、Schur分解 如果复矩阵𝐴∈𝐶^(𝑛𝑛),那么存在一个酉矩阵Q∈𝐶^(𝑛𝑛),使得 Q^H AQTDN 这里Ddiag(μ1,⋯,μ𝑛),𝑁∈𝐶^(&am…

矩阵的特征值分解

特征值分解 物理意义: 矩阵可以表示一种变换;特征向量表示矩阵变换的方向;特征值表示矩阵变换在对应特征向量方向上的变换速度; 特征值与特征向量 如下一个二维向量,这个二维空间的基向量是; 将向量左乘一个矩阵A&…

手把手教你一整套R语言数据分析+建模流程

手把手教你一整套R语言数据分析建模流程 Intro项目背景前期准备数据描述数据清洗预分析及预处理数值型数据类别型数据 特征建模模型对比 Intro 近期在整理数据分析流程,找到了之前写的一篇代码,分享给大家。这是我上学时候做的一个项目,当时…