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

线性回归最小二乘法公式推导「建议收藏」#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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VS找不到约束

    VS找不到约束

    2022年1月13日
    46
  • Python金融应用编程:衍生品定价和套期保值的随机过程

    Python金融应用编程:衍生品定价和套期保值的随机过程随机过程对定量融资的许多方面都很有用,包括但不限于衍生品定价,风险管理和投资管理。这些应用程序将在本文后面进一步详细讨论。本节介绍了量化融资中使用的一些流行的随机过程及其在Python中的实现。模型参数模型参数类包含以下随机过程使用的所有参数。为了便于理解,这些参数的前缀是它们所用的随机过程的名称。随机过程的校准将涉及寻找与某些历史数据相符的参数值。对于那些感兴趣的校准,将在我博客后面的后…

    2022年9月27日
    0
  • pycharm更换版本_pycharm community怎么改成中文

    pycharm更换版本_pycharm community怎么改成中文旧版本的存在mangerepositories,但是最新的社区版去除了最新方式:更换清华源,并选择相信其他源:阿里云http://mirrors.aliyun.com/pypi/simple/中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban)http://pypi.douban.com/simple/清华大学https://pypi.tuna.tsinghua.edu.cn/simple/……

    2022年8月29日
    1
  • FindWindowEx的应用

    FindWindowEx的应用HWND hWorker,hRebar,hComEx,hcom,hEdit;HWND hwndParent=::FindWindow("IEFrame",NULL);//找到IE窗口  char szError[260];hWorker=FindWindowEx(hwndParent,0,"WorkerA",NULL);//找到工作区窗口(不是internet e…

    2022年5月30日
    31
  • 软著源代码要求多少页_怎么查看源代码的编码格式

    软著源代码要求多少页_怎么查看源代码的编码格式申请软件著作权登记的时候会被要求提交60页的源代码。没有经验的开发者朋友第一次申请的时候难免会遇到因代码文档格式不正确、代码里含有其他版权信息等原因被要求补正的问题,从而导致拿证时间延误。为了帮助开发者朋友一次性顺利通过软件著作权登记的审查,下面为大家分享下自己总结的60页源代码整理攻略。第一步:请点击下载软件著作权登记源代码模板;第二步:将打算申请软著的软件名称及版本号替换模板里左上角“自助登记安卓版应用软件V1.0”;第三步:打开软件的代码文件,复制代码;第四步:回到本文档,“Ctal+A”.

    2022年9月15日
    0
  • c语言函数回调详解_c语言回调函数例子

    c语言函数回调详解_c语言回调函数例子关于静态库和动态库的使用和制作方法。http://blog.csdn.net/morixinguan/article/details/52451612今天我们要搞明白的一个概念叫回调函数。什么是回调函数?百度的权威解释如下:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实…

    2022年10月30日
    0

发表回复

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

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