线性回归的正规方程
- 本文阐述线性回归的正规方程推导过程,为满足广义性,采用多变量的线性回归代价函数进行推导。
多变量线性回归的梯度下降算法是用来求其代价函数最小值的算法,但是对于某些线性回归问题,可以直接使用正规方程的方法来找出使得代价函数最小的参数,即
∂
∂
θ
j
J
(
θ
)
=
0
\frac{\partial}{\partial\theta_j}J(\theta)=0
∂θj∂J(θ)=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=1∑m(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=1∑m写成矩阵相乘的形式:
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θ)T−yT](Xθ−y)
=
1
2
(
θ
T
X
T
−
y
T
)
(
X
θ
−
y
)
= \frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)
=21(θTXT−yT)(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θ−θTXTy−yTXθ+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θ−XTy−XTy+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
至此,完成线性回归的正规方程推导。