线性回归的正规方程

线性回归的正规方程

  • 本文阐述线性回归的正规方程推导过程,为满足广义性,采用多变量的线性回归代价函数进行推导。

多变量线性回归的梯度下降算法是用来求其代价函数最小值的算法,但是对于某些线性回归问题,可以直接使用正规方程的方法来找出使得代价函数最小的参数,即 ∂ ∂ θ j J ( θ ) = 0 \frac{\partial}{\partial\theta_j}J(\theta)=0 θjJ(θ)=0
梯度下降与正规方程的比较:

优缺点 梯度下降 正规方程(标准方程)
是否需要引入其他参数 需要选择学习率 α \alpha α 不需要
迭代或运算次数 需要多次迭代 一次运算得出
特征数量是否有影响 当特征数量 n n n大时也能较好适用 需要计算 ( X T X ) − 1 (X^TX)^{-1} (XTX)1如果特征数量 n n n较大则运算代价大,因为矩阵逆的计算时间复杂度为 O ( n 3 ) O(n^3) O(n3),通常来说 n n n小于10000时还是可以接受的
适用模型类 适用于各种类型的模型 只适用于线性模型,不适合逻辑回归模型等其他模型

首先给出线性回归的**代价函数(Cost Function)**的向量化表示:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m}\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2
其中假设函数 h θ ( x ) = θ T X = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_\theta(x) = \theta^TX=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n hθ(x)=θTX=θ0+θ1x1+θ2x2+...+θnxn
m m m为样本总数,参数 θ \theta θ与特征矩阵 X X X均为 n + 1 n+1 n+1维列向量。

将假设函数代入,并将向量表达式转化为矩阵表达式,即将 ∑ i = 1 m \sum\limits_{i=1}^m i=1m写成矩阵相乘的形式:
J ( θ ) = 1 2 ( X θ − y ) 2 J(\theta) = \frac{1}{2}(X\theta-y)^2 J(θ)=21(Xθy)2
其中 X X X m m m n + 1 n+1 n+1列的矩阵, m m m为样本个数, n + 1 n+1 n+1为特征个数, θ \theta θ n + 1 n+1 n+1维行向量, y y y m m m维行向量。
由于 X X X非方阵,不存在逆矩阵,固对 J ( θ ) J(\theta) J(θ)进行如下变换:

J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta) = \frac{1}{2}(X\theta-y)^T(X\theta-y) J(θ)=21(Xθy)T(Xθy)
= 1 2 [ ( X θ ) T − y T ] ( X θ − y ) = \frac{1}{2}[(X\theta)^T-y^T](X\theta-y) =21[(Xθ)TyT](Xθy)
= 1 2 ( θ T X T − y T ) ( X θ − y ) = \frac{1}{2}(\theta^TX^T-y^T)(X\theta-y) =21(θTXTyT)(Xθy)
= 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) = \frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty) =21(θTXTXθθTXTyyTXθ+yTy)

接下来对 J ( θ ) J(\theta) J(θ)求偏导,需要用到以下几个矩阵对矩阵的分母布局求导法则:
d A X d X = A T \frac{dAX}{dX}=A^T dXdAX=AT
d X T A X d X = 2 A X \frac{dX^TAX}{dX}=2AX dXdXTAX=2AX
d X T A d X = A \frac{dX^TA}{dX}=A dXdXTA=A

首先化简 ∂ ∂ θ J ( θ ) \frac{\partial}{\partial\theta}J(\theta) θJ(θ)
∂ ∂ θ J ( θ ) = 1 2 [ 2 X T X θ − X T y − ( y T X ) T + 0 ] \frac{\partial}{\partial\theta}J(\theta)=\frac{1}{2}[2X^TX\theta-X^Ty-(y^TX)^T+0] θJ(θ)=21[2XTXθXTy(yTX)T+0]
= 1 2 [ 2 X T X θ − X T y − X T y + 0 ] =\frac{1}{2}[2X^TX\theta-X^Ty-X^Ty+0] =21[2XTXθXTyXTy+0]
= X T X θ − X T y =X^TX\theta-X^Ty =XTXθXTy

再令 ∂ ∂ θ J ( θ ) = X T X θ − X T y = 0 \frac{\partial}{\partial\theta}J(\theta)=X^TX\theta-X^Ty=0 θJ(θ)=XTXθXTy=0
X T X θ − X T y = 0 X^TX\theta-X^Ty=0 XTXθXTy=0
X T X θ = X T y X^TX\theta=X^Ty XTXθ=XTy

不难发现, ( X T X ) (X^TX) (XTX)为方阵,则有 ( X T X ) (X^TX) (XTX)的逆矩阵 ( X T X ) − 1 (X^TX)^{-1} (XTX)1,固在等式两边同时左乘 ( X T X ) − 1 (X^TX)^{-1} (XTX)1,并求出 θ \theta θ
( X T X ) − 1 X T X θ = ( X T X ) − 1 X T y (X^TX)^{-1}X^TX\theta=(X^TX)^{-1}X^Ty (XTX)1XTXθ=(XTX)1XTy
( X T X ) − 1 ( X T X ) θ = ( X T X ) − 1 X T y (X^TX)^{-1}(X^TX)\theta=(X^TX)^{-1}X^Ty (XTX)1(XTX)θ=(XTX)1XTy
E θ = ( X T X ) − 1 X T y E\theta=(X^TX)^{-1}X^Ty Eθ=(XTX)1XTy
θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
至此,完成线性回归的正规方程推导。

你可能感兴趣的:(机器学习)