线性回归最小二乘法公式推导「建议收藏」

线性回归最小二乘法公式推导「建议收藏」#1.符号表示首先我们将训练样本的**特征矩阵X**进行表示,其中N为样本个数,p为特征个数,每一行表示为每个样本,每一列表示特征的每个维度:

大家好,又见面了,我是你们的朋友全栈君。

1. 符号表示

首先我们将训练样本的特征矩阵X进行表示,其中N为样本个数,p为特征个数,每一行表示为每个样本,每一列表示特征的每个维度:
X = ( x 11 x 12 . . . x 1 p x 21 x 22 . . . x 2 p . . . . . . . . . . . . x N 1 x N 2 . . . x N p ) N ⋅ p X= \begin{gathered} \begin{pmatrix} x_{11} & x_{12} & … & x_{1p} \\ x_{21} & x_{22} & … & x_{2p} \\ … & … &… &… \\ x_{N1} & x_{N2} & … & x_{Np} \end{pmatrix} \quad \end{gathered}_{N\cdot p} X=x11x21...xN1x12x22...xN2............x1px2p...xNpNp

然后我们对训练样本的标签向量Y权重向量w进行表示,其中权重向量指的是线性回归中各个系数形成的向量。
Y = ( y 1 y 2 . . . y N ) Y = \begin{gathered} \begin{pmatrix} y_{1} \\ y_{2} \\ … \\ y_{N} \end{pmatrix} \quad \end{gathered} Y=y1y2...yN

w = ( w 1 w 2 . . . w p ) w = \begin{gathered} \begin{pmatrix} w_{1} \\ w_{2} \\ … \\ w_{p} \end{pmatrix} \quad \end{gathered} w=w1w2...wp
为了方便运算,我们把 y i = x i w + b y_{i} = x_{i}w + b yi=xiw+b中的b也并入到w和x中。则上述的符号表示则为:

X = ( x 10 x 11 x 12 . . . x 1 p x 20 x 21 x 22 . . . x 2 p . . . . . . . . . . . . . . . x N 0 x N 1 x N 2 . . . x N p ) N ⋅ p X= \begin{gathered} \begin{pmatrix} x_{10} & x_{11} & x_{12} & … & x_{1p} \\ x_{20} & x_{21} & x_{22} & … & x_{2p} \\ … & … &… &… &… \\ x_{N0} & x_{N1} & x_{N2} & … & x_{Np} \end{pmatrix} \quad \end{gathered}_{N\cdot p} X=x10x20...xN0x11x21...xN1x12x22...xN2............x1px2p...xNpNp

w = ( w 0 w 1 w 2 . . . w p ) w = \begin{gathered} \begin{pmatrix} w_{0} \\ w_{1} \\ w_{2} \\ … \\ w_{p} \end{pmatrix} \quad \end{gathered} w=w0w1w2...wp

2. 公式推导

L ( w ) = ∑ i = 1 N ( x i w − y i ) 2 L(w) = \sum^{N}_{i =1 } (x_{i}w – y_{i})^{2} L(w)=i=1N(xiwyi)2
w = arg ⁡ min ⁡ L ( w ) = arg ⁡ min ⁡ ∑ i = 1 N ( x i w − y i ) 2 w = \operatorname { arg } \operatorname { min }L(w) = \operatorname { arg } \operatorname { min } \sum^{N}_{i =1 } (x_{i}w – y_{i})^{2} w=argminL(w)=argmini=1N(xiwyi)2
为什么是转置乘以原矩阵,这是由于Y是列向量,则 ( X W − Y ) (XW – Y) (XWY)则也是列向量。根据矩阵乘法的定义,只有行向量乘以列向量,最终结果才是一个常数。
L ( w ) = ( X W − Y ) T ( X W − Y ) L(w) = (XW-Y)^{T} (XW-Y) L(w)=(XWY)T(XWY)

L ( w ) = ( W T X T − Y T ) ( X W − Y ) L(w) = (W^{T}X^{T} – Y^{T})(XW-Y) L(w)=(WTXTYT)(XWY)

L ( w ) = ( W T X T X W − 2 W T X T Y + Y T Y ) L(w) = (W^{T}X^{T}XW-2W^{T}X^{T}Y+Y^{T}Y) L(w)=(WTXTXW2WTXTY+YTY)

∂ L ( w ) ∂ w = 2 X T X W − 2 X T Y = 0 \frac { \partial L(w)} {\partial w} = 2X^{T}XW – 2X^{T}Y = 0 wL(w)=2XTXW2XTY=0

W = ( X T X ) − 1 X T Y W = {(X^{T}X)}^{-1}X^{T}Y W=(XTX)1XTY

  后记:其实求非线性回归的时候也可以使用该最小二乘法来计算多项式系数 w w w,只要把高次项添加到原始的 X X X后面即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145499.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [Android] ImageView.ScaleType设置图解

    [Android] ImageView.ScaleType设置图解ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。设置的方式包括:1.在layoutxml中定义android:scaleType=”CENTER”2.或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);接下来,将对Scal

    2022年6月15日
    30
  • Gradle下载慢解决方案

    Gradle下载慢解决方案参考:阿里云公共代理库首先我们来看看google官方的依赖方式:buildscript{repositories{mavenCentral()jcenter()google()}dependencies{classpath’com.android.tools.build:gradle:3.0.1′}}allprojects{repositories{

    2022年6月15日
    27
  • 小米手机-解BL锁+开ROOT权限

    小米手机-解BL锁+开ROOT权限在小米社区和网址https://miuiver.com/上,有MIUI的历史版本,还有刷机教程等等本文是参考上述的教程,并结合自己在刷机过程中,出现的问题进行记录并得到解决方案下面主要是,重要部分,同时还有一些容易出错的地方解BL锁要提前,在设置–更多设置–开发者模式–设备解锁状态中,绑定账号和设备,注意的地方,不要重复绑定设备,不然时间会重新计算的,吃亏了2次。只要登陆过一个小米账号,点击绑定一次即可。如果没有找到开发者模式,就先设置–我的设备–全部参数–.

    2022年6月10日
    73
  • Python之用虚拟环境隔离项目,并重建依赖关系

    下面将以安装django和mysqlclient介绍如何用虚拟环境隔离项目,并重建依赖关系。操作系统:windows10;python版本:python3.71.安装python虚拟环境(1)

    2021年12月30日
    41
  • UART协议详解

    UART使用的是异步,串行通信。   串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。   异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。    数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送…

    2022年4月4日
    88
  • CSS中的em运用详解,1em等于多少像素?

    今天要看完它:使用CSS也好久了,但一直都是在使用“px”来设置Web元素的相关属性,未敢使用“em”。主要原因是,对其并不什么了解,只知道一点概念性的东西,前段时间在项目中要求使用“em”作为单位设置元素,所以从头对“em”学习了一回。稍为有一点理解,今天特意整理了一份博文与大家一起分享,希望对童子们有些许的帮助。这篇教程将引导大家如何使用“em”来创建一个基本的弹性布局,从而学习其如何计算?又

    2022年4月4日
    76

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号