参考:https://zhuanlan.zhihu.com/p/269232332

线性回归的正交方程 ( Normal Equation )推导一文中提到使用 向量投影 的方法一步就能推导出 正交方程。从向量投影的角度,体现 线性回归 的本质。

预备知识:向量投影

平面A由基向量 所张成(Span ),换言之,平面A是 的列空间。

是平面外的一点, 在平面上的投影, ,求

之间的距离 :

用人话来解释下: 构建了一个平面,平面内的任何向量,它俩均可通过 线性组合 构建出来,换言之,平面外的向量它俩就搞不定了。向量   在 构建的平面外,不论 如何组合都不可能组合出 这个问题 无解。但是,可以组合出    在平面内的投影  ,这是平面内最接近    的点,   是 之间的偏差。于是,问题就变成了:如何找到组合 ,使

线性代数的初心是解决: ,在明显无解的情况下(方程数 > 变量数,超定),退而求其次,解一个可以解决的近似问题:

垂直于

----------------------------------------------------------------------------------------------------------------------------------------------

言归正传,回到线性回归的问题:

线性回归要解决的问题是:找到合适的    ,使

实际应用中,方程的数量(样本数)经常远大于变量 / 未知数的数量(特征数),例如以下数据情况:100条数据10个字段,意味着100个方程10个未知数,显然,这样的超定方程组是无解的(over determined ),所以我们不得不改变目标,寻找一个最“接近”的近似解 使得 的列空间的投影

代入 ,将   代入 ,将 代入 ,于是就得到 Normal Equation:

翻译成线性回归的语境:由于 不在 所张成的空间内,不论 如何进行线性组合,都不可能组合出 ,但是,可以组合出 在平面内的投影 ,线性回归的目标就是找到参数 ,使

在理解了线性回归的投影本质后,使用向量投影公式,只需一步就可以得到Normal Equation:

也可以表示为: ,其中 ,被成为伪逆矩阵

---------------------------------------------------------------------------------------------------------------------------------------------------

最后从直觉的角度再来看一下 Normal Equation 和伪逆矩阵,方便记忆:

回顾我们的出发点 ,如果 可逆,两边同时乘以 ,显然

但在机器学习中,经常面对的是 超定( Overdetermined )方程,方程数( 数据点的数量,行,记录 )大于未知数( 即特征数,列,字段 ),非方阵, 不可逆。

是对称矩阵,也称 Gram 矩阵,它是 的方阵,大概率可逆,因此,我们很自然的希望在方程两边同时乘以 ,得到: ,再两边同时乘以 就能到 Normal Equation 。这个推导并不严谨, 可能不可逆,但可作为快速记忆公式的方法。

4、Normal Equation 的向量投影解法与几何和直觉解释的更多相关文章

  1. Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)

    ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , ...

  2. 5种方法推导Normal Equation

    引言: Normal Equation 是最基础的最小二乘方法.在Andrew Ng的课程中给出了矩阵推到形式,本文将重点提供几种推导方式以便于全方位帮助Machine Learning用户学习. N ...

  3. coursera机器学习笔记-多元线性回归,normal equation

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  4. Normal Equation

    一.Normal Equation 我们知道梯度下降在求解最优参数\(\theta\)过程中需要合适的\(\alpha\),并且需要进行多次迭代,那么有没有经过简单的数学计算就得到参数\(\theta ...

  5. machine learning (7)---normal equation相对于gradient descent而言求解linear regression问题的另一种方式

    Normal equation: 一种用来linear regression问题的求解Θ的方法,另一种可以是gradient descent 仅适用于linear regression问题的求解,对其 ...

  6. Normal Equation Algorithm

    和梯度下降法一样,Normal Equation(正规方程法)算法也是一种线性回归算法(Linear Regression Algorithm).与梯度下降法通过一步步计算来逐步靠近最佳θ值不同,No ...

  7. normal equation(正规方程)

    normal equation(正规方程) 正规方程是通过求解下面的方程来找出使得代价函数最小的参数的: \[ \frac{\partial}{\partial\theta_j}J\left(\the ...

  8. (三)用Normal Equation拟合Liner Regression模型

    继续考虑Liner Regression的问题,把它写成如下的矩阵形式,然后即可得到θ的Normal Equation. Normal Equation: θ=(XTX)-1XTy 当X可逆时,(XT ...

  9. 【转】Derivation of the Normal Equation for linear regression

    I was going through the Coursera "Machine Learning" course, and in the section on multivar ...

  10. 机器学习入门:Linear Regression与Normal Equation -2017年8月23日22:11:50

    本文会讲到: (1)另一种线性回归方法:Normal Equation: (2)Gradient Descent与Normal Equation的优缺点:   前面我们通过Gradient Desce ...

随机推荐

  1. Web 页面如何实现动画效果

    Web 页面可以使用多种方式实现动画效果,其中最常用的有两种: CSS 动画:通过 CSS 中的 transition 和 animation 属性来实现动画效果.CSS 动画实现起来简单,性能消耗小 ...

  2. Mybatis数据库批量操作

    1:新增 首先,Mysql插入一条记录返回主键对Mybatis版本要求低,而批量插入返回带主键的,需要升级到3.3.1 以及以上的版本. ​ 1.1:Mysql 上图需要注意加入useGenerate ...

  3. mingw + cmake + vscode

    .vscode settings.json {     "cmake.generator": "MinGW Makefiles" } cmake-kits.js ...

  4. 真·生产力「GitHub 热点速览」

    这些工具真的能极大提高生产力,节约你的时间来自(摸)我(鱼)增(划)值(水).先别提 style2paints,你给它随意画个草图,就能给你一个能交付给甲方爸爸的成品插画.如果提升 30%-40% 传 ...

  5. Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'xxx' in 'where clause'

    在使用Ruoyi管理系统中出现这个问题 Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column ...

  6. SnakeYaml的不出网反序列化利用分析

    SnakeYaml的常见出网利用方式: !!javax.script.ScriptEngineManager [ !!java.net.URLClassLoader [[ !!java.net.URL ...

  7. 取出每个分组的的第一条数据sql

    select * from(select id,detail, ROW_NUMBER()over(PARTITION By detail ORDER BY detail DESC) as rnfrom ...

  8. addeventlistener可以这样表示

    事件绑定方法1: //找到id为category的div,绑定onmouseover事件 $("#category")[0].addEventListener("mous ...

  9. Wayland比X11慢的若干解决办法

    1. 直接解决 1.1 kernel设置问题 有人测试树莓派上树莓派上Manjaro使用X11性能好于Wayland,下面解释说是kernel问题,并给出了一些修改建议,详见: X11 vs Wayl ...

  10. 深度学习框架Pytorch学习笔记

    由于工作原因,需要使用到深度学习pytorch框架,所以,跟随视频学习了深度学习框架的使用方法,视频链接如下: PyTorch深度学习快速入门教程(绝对通俗易懂!)[小土堆]_哔哩哔哩_bilibil ...