目录
  1. 正规方程
  2. 与梯度下降比较
  3. 矩阵不可逆时的情况
  4. 附:正则方程推导过程
线性回归的正规方程法

正规方程


正规方程是通过求解下面的方程来找出使得代价函数最小的参数的: $\frac{\partial}{\partial \theta_j} J(\theta_i) = 0$

假设我们的训练集特征矩阵为 $X$(包含了 𝑥0 = 1)并且我们的训练集结果为向量 $y$,则利
用正规方程解出向量

比如如下的数据:
在这里插入图片描述




正规方程的Python实现:

1
2
3
4
5
import numpy as np 

def normalEqn(X, y):
theta = np.linalg.inv(X.T@X)@X.T@y #X.T@X等价于 X.T.dot(X)
return theta



与梯度下降比较


梯度下降 正规方程
需要选择学习率𝛼 不需要
需要多次迭代 一次运算得出
当特征数量𝑛大时也能较好适用 需要计算$(X^TX)^-1$。如果特征数量𝑛较大则 运算代价大,
因为矩阵逆的计算时间复杂度 为𝑂(𝑛3)
适用于各种类型的模型 只适用于线性模型,不适合逻辑回归模型等其他模型


矩阵不可逆时的情况


$(X^TX)$会出现不可逆的情况。
原因可能有:

  1. 有多余的特征变量成了线性相关关系
    比如一个特征是厘米单位的长度,而另一个特征是毫米单位的长度,两列数据在自乘之后成了100倍的线性关系。
    这时就需要把多余的特征量删除。
  2. 有太多的特征量(m << n) 有时还会导致‘过拟合(overfit)’的现象
    比如m = 10, n = 100时的情况,则需要在10个训练样本中找出101个参数,这是一种比较复杂且容易出问题的任务。
    解决方法有:
    ①删除一些特征量
    正则化

附:正则方程推导过程




转化为矩阵表示则有:




接下来对$\theta$求偏导。要用到几个矩阵求导法则:
$\frac{dAB}{dB} = A^T$、$\frac{dA^TXA}{dX}=2AX$

所以有:

令其=0,可得:

文章作者: Irimsky
文章链接: /2019/07/28/线性回归的正规方程法/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Irimsky's Blog

评论