吴恩达机器学习(三)正规方程(求解线性回归参数)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/82806771

目录

0. 前言

1. 正规方程(Normal Equation)

2. 不可逆矩阵的情况

3. 与梯度下降的比较


学习完吴恩达老师机器学习课程的多变量线性回归,简单的做个笔记。文中部分描述属于个人消化后的理解,仅供参考。

0. 前言

在线性回归中,通常采用梯度下降,不断迭代来降低代价函数 J(\theta),求解最佳的参数 \theta

但大量的迭代,遍历数据集,消耗的时间较大,可通过正规方程,直接求解 \theta

1. 正规方程(Normal Equation)

首先给出一个例子如下,对于 3-dimension 的数据,在其最前面增加一个 x_{0},为全1。: 

x0 x1 x2 x3 y
1 a_{1,1} a_{1,2} a_{1,3} y_{1}
1 a_{2,1} a_{2,2} a_{2,3} y_{2}
1 a_{3,1} a_{3,2} a_{3,3} y_{3}

设 X=\begin{bmatrix} 1& a_{1,1}& a_{1,2} & a_{1,3}\\ 1& a_{2,1}& a_{2,2} & a_{2,3}\\ 1& a_{3,1}& a_{3,2} & a_{3,3}\\ \end{bmatrix}y=\begin{bmatrix} y_{1}\\ y_{2}\\ y_{3}\\ \end{bmatrix},则 \theta=(X^{T}X)^{-1}X^{T}y,可直接求的 \theta 向量,包含所有参数。

一般地,我们可以令 x_{0}^{(i)}=1,对于每一个样本 x^{(i)}=\begin{bmatrix} x_{0}^{(i)}\\ x_{1}^{(i)}\\ ...\\ x_{n}^{(i)} \end{bmatrix},则 X=\begin{bmatrix} (x^{(1)})^{T}\\ (x^{(2)})^{T}\\ ...\\ (x^{(n)})^{T}\\ \end{bmatrix},可通过正规方程求解:

\large \theta=(X^{T}X)^{-1}X^{T}y

采用正规方程求解 \theta 时,可不进行特征缩放。

2. 不可逆矩阵的情况

我们知道,在正规方程求解的过程中,需要对 X^{T}X 进行矩阵求逆,但若此时矩阵不可逆(可逆矩阵定义为 XX^{T}=X^{T}X=I,其中I为单位矩阵),我们需要对特征进行处理。

  • 删除冗余的特征,如其中两个变量间存在线性关系
  • 对于太多的特征 (m\leq n),删除部分特征,或采用正则化(regularization)。

3. 与梯度下降的比较

梯度下降(Gradient Descent) 正规方程(Normal Equation)

需要选择学习率 \alpha

不需要选择学习率 \alpha 
需要多次迭代求解 \theta 不需要多次迭代求解 \theta​​​​​​​
当特征维度 n 较大时,效果较好 当特征维度 n 较大时,时间复杂度较高计算较慢

注:矩阵逆运算的时间复杂度通常为 O(n^{3}),所以当 n 较大时,建议使用梯度下降。

猜你喜欢

转载自blog.csdn.net/zhq9695/article/details/82806771