线性回归的正规方程
- 本文阐述线性回归的正规方程推导过程,为满足广义性,采用多变量的线性回归代价函数进行推导。
多变量线性回归的梯度下降算法是用来求其代价函数最小值的算法,但是对于某些线性回归问题,可以直接使用正规方程的方法来找出使得代价函数最小的参数,即∂∂θjJ(θ)=0\frac{\partial}{\partial\theta_j}J(\theta)=0∂θj∂J(θ)=0。
梯度下降与正规方程的比较:
优缺点 | 梯度下降 | 正规方程(标准方程) |
---|---|---|
是否需要引入其他参数 | 需要选择学习率α\alphaα | 不需要 |
迭代或运算次数 | 需要多次迭代 | 一次运算得出 |
特征数量是否有影响 | 当特征数量nnn大时也能较好适用 | 需要计算(XTX)−1(X^TX)^{-1}(XTX)−1如果特征数量nnn较大则运算代价大,因为矩阵逆的计算时间复杂度为O(n3)O(n^3)O(n3),通常来说nnn小于10000时还是可以接受的 |
适用模型类 | 适用于各种类型的模型 | 只适用于线性模型,不适合逻辑回归模型等其他模型 |
首先给出线性回归的**代价函数(Cost Function)**的向量化表示:
J(θ)=12m∑i=1m(hθ(x(i))−y(i))2J(\theta) = \frac{1}{2m}\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
其中假设函数hθ(x)=θTX=θ0+θ1x1+θ2x2+...+θnxnh_\theta(x) = \theta^TX=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_nhθ(x)=θTX=θ0+θ1x1+θ2x2+...+θnxn
mmm为样本总数,参数θ\thetaθ与特征矩阵XXX均为n+1n+1n+1维列向量。
将假设函数代入,并将向量表达式转化为矩阵表达式,即将∑i=1m\sum\limits_{i=1}^mi=1∑m写成矩阵相乘的形式:
J(θ)=12(Xθ−y)2J(\theta) = \frac{1}{2}(X\theta-y)^2J(θ)=21(Xθ−y)2
其中XXX为mmm行n+1n+1n+1列的矩阵,mmm为样本个数,n+1n+1n+1为特征个数,θ\thetaθ为n+1n+1n+1维行向量,yyy为mmm维行向量。
由于XXX非方阵,不存在逆矩阵,固对J(θ)J(\theta)J(θ)进行如下变换:
J(θ)=12(Xθ−y)T(Xθ−y)J(\theta) = \frac{1}{2}(X\theta-y)^T(X\theta-y)J(θ)=21(Xθ−y)T(Xθ−y)
=12[(Xθ)T−yT](Xθ−y) = \frac{1}{2}[(X\theta)^T-y^T](X\theta-y)=21[(Xθ)T−yT](Xθ−y)
=12(θTXT−yT)(Xθ−y) = \frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)=21(θTXT−yT)(Xθ−y)
=12(θTXTXθ−θTXTy−yTXθ+yTy) = \frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty)=21(θTXTXθ−θTXTy−yTXθ+yTy)
接下来对J(θ)J(\theta)J(θ)求偏导,需要用到以下几个矩阵对矩阵的分母布局求导法则:
①dAXdX=AT\frac{dAX}{dX}=A^TdXdAX=AT
②dXTAXdX=2AX\frac{dX^TAX}{dX}=2AXdXdXTAX=2AX
③dXTAdX=A\frac{dX^TA}{dX}=AdXdXTA=A
首先化简∂∂θJ(θ)\frac{\partial}{\partial\theta}J(\theta)∂θ∂J(θ)
∂∂θJ(θ)=12[2XTXθ−XTy−(yTX)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]
=12[2XTXθ−XTy−XTy+0]=\frac{1}{2}[2X^TX\theta-X^Ty-X^Ty+0]=21[2XTXθ−XTy−XTy+0]
=XTXθ−XTy=X^TX\theta-X^Ty=XTXθ−XTy
再令∂∂θJ(θ)=XTXθ−XTy=0\frac{\partial}{\partial\theta}J(\theta)=X^TX\theta-X^Ty=0∂θ∂J(θ)=XTXθ−XTy=0
XTXθ−XTy=0X^TX\theta-X^Ty=0XTXθ−XTy=0
XTXθ=XTyX^TX\theta=X^TyXTXθ=XTy
不难发现,(XTX)(X^TX)(XTX)为方阵,则有(XTX)(X^TX)(XTX)的逆矩阵(XTX)−1(X^TX)^{-1}(XTX)−1,固在等式两边同时左乘(XTX)−1(X^TX)^{-1}(XTX)−1,并求出θ\thetaθ
(XTX)−1XTXθ=(XTX)−1XTy(X^TX)^{-1}X^TX\theta=(X^TX)^{-1}X^Ty(XTX)−1XTXθ=(XTX)−1XTy
(XTX)−1(XTX)θ=(XTX)−1XTy(X^TX)^{-1}(X^TX)\theta=(X^TX)^{-1}X^Ty(XTX)−1(XTX)θ=(XTX)−1XTy
Eθ=(XTX)−1XTyE\theta=(X^TX)^{-1}X^TyEθ=(XTX)−1XTy
θ=(XTX)−1XTy\theta=(X^TX)^{-1}X^Tyθ=(XTX)−1XTy
至此,完成线性回归的正规方程推导。