一、Normal Equation

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

 下面我们看看Ng 4-6 中的房价预测例子:

 其中\( m = 4, n = 4 \)。在机器学习中,线性回归一般都增加额外的一列特征\(x_0 = 1\),其中我们特征矩阵\(X\)和值向量\(y\)分别为:

\begin{bmatrix}1 & 2104 & 5 & 1 & 45 \\ 1 & 1416 & 3 & 2 & 40 \\ 1 & 1534 & 3 & 2 & 30 \\ 1 & 852 & 2 & 1 & 36 \end{bmatrix}

\begin{bmatrix}460\\ 232\\ 315\\178\end{bmatrix}

 而我们的参数\(\theta\)为:

\begin{bmatrix}\theta_0\\ \theta_1\\ \theta_2\\ ...\\\theta_n\end{bmatrix}

 那最终的参数\(\theta\)应该为:

\(\theta = (X^TX)^{-1}X^Ty\)

二、证明

 我们知道单位矩阵\(E\)有一个性质:

\( A \times A^{-1} = A^{-1} \times A = E \)

  首先:

\( y = X \cdot \theta \)

 左右同时乘\(X^T\):

\(X^Ty = X^TX \cdot \theta\)

 左右再同时乘\(X^TX^{-1}\):

\((X^TX)^{-1}X^Ty = (X^TX)^{-1}X^TX \cdot \theta\)

 而我们已知矩阵的逆乘以矩阵得到单位矩阵\(E\):

\((X^TX)^{-1}X^Ty = \theta\)

三、和梯度下降作比较

 Normal Equation有一个好处:不需要进行Feature scaling,而Feature scaling对于梯度下降是必须的

 如何来选择使用哪种方法么呢?一般如果特征维度不超过1000的话,Normal Equation还是可选的。

 此外,如果\((X^TX)^{-1}\)不可逆怎么办?

  1)确保不存在冗余特征,比如

  因为\(1m = 3.28feet\),所以\(x_1 = (3.28)^2 * x_2\),我们知道线性代数中出现这种线性相关的情况,其行列式值为0,所以不可逆,我们只需确保不会出现冗余特征即可。

  2)特征数量\(n\)过多,而样本数量\(m\)过少:解决方法为删除一部分特征,或者增加样本数量。

四、说明

 此文参考:https://blog.csdn.net/artprog/article/details/51172025

Normal Equation的更多相关文章

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

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

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

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

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

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

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

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

  5. 5种方法推导Normal Equation

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

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

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

  7. CS229 3.用Normal Equation拟合Liner Regression模型

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

  8. 正规方程 Normal Equation

    正规方程 Normal Equation 前几篇博客介绍了一些梯度下降的有用技巧,特征缩放(详见http://blog.csdn.net/u012328159/article/details/5103 ...

  9. Normal Equation of Computing Parameters Analytically

    Normal Equation Note: [8:00 to 8:44 - The design matrix X (in the bottom right side of the slide) gi ...

随机推荐

  1. Codeforces Round #423 Div. 1

    A:暴力赋值即可,并查集维护下一个未被赋值的位置. #include<iostream> #include<cstdio> #include<cmath> #inc ...

  2. 洛谷P1048采药题解

    题目 这是一个裸的01背包,因为题目中没说可以采好多次,不多说上代码, #include<iostream> using namespace std; int main() { int n ...

  3. 各种MM(存储器)含义

    1.rom:read only memory 只读存储器 只能读,不能写. 2.ram:random access memory 随机存取存储器 可读可写. 3.fifo:first in first ...

  4. sublime3添加verilog自动补全代码段

    前言 sublime默认的verilog自动补全十分垃圾,不过提供了代码段这个功能,你可以自己写个重用率高的代码段减轻工作量.写个模板当tb也很爽啦. 流程 1.打开user文件夹,创建verilog ...

  5. 【比赛】NOIP2018 填数游戏

    打表找规律.... #include<bits/stdc++.h> #define ui unsigned int #define ll long long #define db doub ...

  6. Hdoj 1003.Max Sum 题解

    Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum ...

  7. 【BZOJ4316】小C的独立集(动态规划)

    [BZOJ4316]小C的独立集(动态规划) 题面 BZOJ 题解 考虑树的独立集求法 设\(f[i][0/1]\)表示\(i\)这个点一定不选,以及\(i\)这个点无所谓的最大值 转移\(f[u][ ...

  8. [luogu3648][bzoj3675][APIO2014]序列分割【动态规划+斜率优化】

    题目大意 让你把一个数列分成k+1个部分,使分成乘积分成各个段乘积和最大. 分析 首先肯定是无法开下n \(\times\) n的数组,那么来一个小技巧:因为我们知道k的状态肯定是从k-1的状态转移过 ...

  9. Vue中的slot内容分发

    ①概述: 简单来说,假如父组件需要在子组件内放一些DOM,那么这些DOM是显示.不显示.在哪个地方显示.如何显示,就是slot分发负责的活. ②默认情况下 父组件在子组件内套的内容,是不显示的. 例如 ...

  10. 理解Spark的核心RDD

    http://www.infoq.com/cn/articles/spark-core-rdd/