2020-09-21机器学习之线性回归模型笔记(一)
机器学习之线性回归模型
1.线性回归模型
1.1 模型结构
线性回归模型是通过建立线性特征组合进行预测的回归模型。我们需要虚招一条直线来最大程度的“拟合”样本特征。
假设线性模型为:
y
=
a
x
+
b
y=ax+b
y=ax+b其中y是连续变量。
那么我们可以知道,对于任意的特征
x
i
x_i
xi都有预测值
y
^
=
a
x
i
+
b
\hat{y}=ax_i+b
y^=axi+b
其真实值为
y
y
y。
如下图,真实值
y
^
=
[
2
,
3
,
5
,
9
,
10
,
11
]
\hat{y}=[2,3,5,9,10,11]
y^=[2,3,5,9,10,11]
1.2 损失函数
对于构建的线性回归模型,我们希望
∣
y
i
−
y
i
^
∣
\mid{y_i-\hat{y_i}}\mid
∣yi−yi^∣尽量小,为了方便计算(后续公式的求导),我们引入欧拉距离
(
y
i
−
y
i
^
)
2
(y_i-\hat{y_i})^2
(yi−yi^)2,然后考虑所有的样本可得
∑
i
=
1
m
(
y
i
−
y
i
^
)
2
\sum_{i=1}^m(y_i-\hat{y_i})^2
i=1∑m(yi−yi^)2
这就是我们的损失函数。在线性回归模型中,我们 利用这个损失函数的最小值做为评判标准来找出一条直线。
1.3最小二乘法
对于多元线性回归模型,样本
x
i
=
(
1
,
x
1
i
,
x
2
i
,
.
.
.
,
x
m
i
)
x^i=(1,x_1^i,x_2^i,...,x_m^i)
xi=(1,x1i,x2i,...,xmi),有
y
(
θ
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
m
i
y(\theta)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_m^i
y(θ)=θ0+θ1x1+θ2x2+...+θmi
又有多元
Y
=
[
y
1
y
2
.
.
.
y
n
]
n
∗
1
Y=\begin{bmatrix}y^1\\y^2\\.\\.\\.\\y^n\end{bmatrix}_{n*1}
Y=⎣⎢⎢⎢⎢⎢⎢⎡y1y2...yn⎦⎥⎥⎥⎥⎥⎥⎤n∗1
那么有
X
=
[
x
1
x
2
.
.
.
x
n
]
n
∗
(
m
+
1
)
,
θ
=
[
θ
1
θ
2
.
.
.
θ
m
]
(
m
+
1
)
∗
1
X=\begin{bmatrix}x^1\\x^2\\.\\.\\.\\x^n\end{bmatrix}_{n*(m+1)},\theta=\begin{bmatrix}\theta^1\\\theta^2\\.\\.\\.\\\theta^m\end{bmatrix}_{(m+1)*1}
X=⎣⎢⎢⎢⎢⎢⎢⎡x1x2...xn⎦⎥⎥⎥⎥⎥⎥⎤n∗(m+1),θ=⎣⎢⎢⎢⎢⎢⎢⎡θ1θ2...θm⎦⎥⎥⎥⎥⎥⎥⎤(m+1)∗1
故
Y
(
θ
)
=
X
∗
θ
Y(\theta)=X*\theta
Y(θ)=X∗θ
经过以上推导,我们可以引出利用最小二乘法求解损失函数
Y
(
θ
)
=
X
∗
θ
Y(\theta)=X*\theta
Y(θ)=X∗θ
目标是找到一组
θ
0
,
θ
1
,
.
.
.
,
θ
m
\theta_0,\theta_1,...,\theta_m
θ0,θ1,...,θm,使损失函数
∑
i
=
1
m
(
y
i
−
y
i
^
)
2
\sum_{i=1}^m(y_i-\hat{y_i})^2
∑i=1m(yi−yi^)2最小。
推导一个公式,我们假设
U
=
(
u
1
,
u
2
,
.
.
.
,
u
n
)
U=(u^1,u^2,...,u^n)
U=(u1,u2,...,un),则有
∑
i
=
1
n
(
u
i
)
2
=
U
T
U
\sum_i=1^n(u^i)^2=U^TU
∑i=1n(ui)2=UTU。
那么
∑
i
=
1
n
(
y
i
−
x
i
θ
)
2
=
(
Y
−
X
θ
)
T
(
Y
−
X
θ
)
\sum_{i=1}^n(y^i-x^i\theta)^2=(Y-X\theta)^T(Y-X\theta)
i=1∑n(yi−xiθ)2=(Y−Xθ)T(Y−Xθ)
令
j
=
(
Y
−
X
θ
)
T
(
Y
−
X
θ
)
j=(Y-X\theta)^T(Y-X\theta)
j=(Y−Xθ)T(Y−Xθ)。
解法一:正规方程求解模型参数
J
=
(
Y
−
X
θ
)
T
(
Y
−
X
θ
)
=
(
Y
T
−
X
T
θ
T
)
(
Y
−
X
θ
)
=
Y
T
Y
−
Y
T
X
θ
−
θ
T
X
T
Y
+
θ
T
X
T
X
θ
J=(Y-X\theta)^T(Y-X\theta)\\=(Y^T-X^T\theta^T)(Y-X\theta)\\=Y^TY-Y^TX\theta-\theta^TX^TY+\theta^TX^TX\theta
J=(Y−Xθ)T(Y−Xθ)=(YT−XTθT)(Y−Xθ)=YTY−YTXθ−θTXTY+θTXTXθ
求导可得
δ
J
δ
θ
=
δ
(
θ
T
X
T
X
θ
)
δ
θ
−
δ
(
Y
T
X
θ
)
δ
θ
−
δ
(
θ
T
X
T
Y
)
δ
θ
\frac{\delta J}{\delta \theta} =\frac{\delta(\theta^TX^TX\theta)}{\delta\theta}-\frac{\delta(Y^TX\theta)}{\delta\theta}-\frac{\delta(\theta^TX^TY)}{\delta\theta}
δθδJ=δθδ(θTXTXθ)−δθδ(YTXθ)−δθδ(θTXTY)
此时我们再推导一组公式,
δ
(
X
T
A
X
)
δ
X
=
2
A
X
,
δ
(
A
B
)
δ
B
=
A
T
,
δ
A
T
B
δ
A
=
B
\frac{\delta(X^TAX)}{\delta X}=2AX,\frac{\delta(AB){\delta B}}=A^T,\frac{\delta A^TB}{\delta A}=B
δXδ(XTAX)=2AX,=δ(AB)δBAT,δAδATB=B。
那么
δ
J
δ
θ
=
2
X
T
X
θ
−
(
Y
T
X
)
T
−
X
T
Y
=
2
X
T
X
θ
−
2
X
T
Y
=
0
\frac{\delta J}{\delta\theta}=2X^TX\theta-(Y^TX)^T-X^TY\\=2X^TX\theta-2X^TY=0
δθδJ=2XTXθ−(YTX)T−XTY=2XTXθ−2XTY=0则
θ
=
(
X
T
X
)
(
−
1
)
X
T
Y
\theta=(X^TX)^{(-1)}X^TY
θ=(XTX)(−1)XTY
解法二:梯度下降法
梯度下降法是一种基于搜索的最优化方法,可以最小化损失函数。
J
=
∑
i
=
1
m
(
y
i
−
θ
0
−
θ
1
X
1
i
−
θ
2
X
2
i
−
.
.
.
−
θ
n
X
n
i
)
2
J=\sum_{i=1}^m(y^i-\theta_0-\theta_1X_1^i-\theta_2X_2^i-...-\theta_nX_n^i)^2
J=i=1∑m(yi−θ0−θ1X1i−θ2X2i−...−θnXni)2
那么
∇
J
(
θ
)
=
(
∇
J
(
θ
)
0
)
,
∇
J
(
θ
)
1
,
∇
J
(
θ
)
2
)
,
.
.
.
,
∇
J
(
θ
)
n
)
)
=
(
∑
i
=
1
m
2
(
y
i
−
X
b
i
θ
)
(
−
1
)
∑
i
=
1
m
2
(
y
i
−
X
b
i
θ
)
(
−
X
1
i
)
∑
i
=
1
m
2
(
y
i
−
X
b
i
θ
)
(
−
X
1
i
)
.
.
.
∑
i
=
1
m
2
(
y
i
−
X
b
i
θ
)
(
−
X
n
i
)
)
\nabla J(\theta)=(\frac{\nabla J}{(\theta)_0)},\frac{\nabla J}{(\theta)_1},\frac{\nabla J}{(\theta)_2)},...,\frac{\nabla J}{(\theta)_n)})=\begin{pmatrix}\sum_{i=1}^m2(y^i-X_b^i\theta)(-1)\\\sum_{i=1}^m2(y^i-X_b^i\theta)(-X_1^i)\\\sum_{i=1}^m2(y^i-X_b^i\theta)(-X_1^i)\\...\\\sum_{i=1}^m2(y^i-X_b^i\theta)(-X_n^i)\end{pmatrix}
∇J(θ)=((θ)0)∇J,(θ)1∇J,(θ)2)∇J,...,(θ)n)∇J)=⎝⎜⎜⎜⎜⎛∑i=1m2(yi−Xbiθ)(−1)∑i=1m2(yi−Xbiθ)(−X1i)∑i=1m2(yi−Xbiθ)(−X1i)...∑i=1m2(yi−Xbiθ)(−Xni)⎠⎟⎟⎟⎟⎞
目标是使
1
m
∑
i
=
1
m
(
y
i
−
y
^
i
)
\frac{1}{m}\sum_{i=1}^m(y^i-\hat y^i)
m1∑i=1m(yi−y^i)尽可能小。
∇ J ( θ ) = 2 m ( ∑ i = 1 m ( X b i θ − y i ) ∑ i = 1 m ( X b i θ − y i ) X 1 i ∑ i = 1 m ( X b i θ − y i ) X 1 i . . . ∑ i = 1 m ( X b i θ − y i ) X n i ) = 2 m ( X b 1 θ − y 1 , X b 2 θ − y 2 ) , . . . , X b m θ − y m ) ( X 0 1 . . . X n 1 . . . . . . . . . X 1 m . . . X n m ) = 2 m X b T ( X B θ − y ) \nabla J(\theta)=\frac{2}{m}\begin{pmatrix}\sum_{i=1}^m(X_b^i\theta-y^i)\\\sum_{i=1}^m(X_b^i\theta-y^i)X_1^i\\\sum_{i=1}^m(X_b^i\theta-y^i)X_1^i\\...\\\sum_{i=1}^m(X_b^i\theta-y^i)X_n^i\\\end{pmatrix}=\frac{2}{m}(X_b^1\theta-y^1,X_b^2\theta-y^2),...,X_b^m\theta-y^m)\begin{pmatrix}X_0^1...X_n^1\\.........\\X_1^m...X_n^m\end{pmatrix}=\frac{2}{m}X_b^T(X_B\theta-y) ∇J(θ)=m2⎝⎜⎜⎜⎜⎛∑i=1m(Xbiθ−yi)∑i=1m(Xbiθ−yi)X1i∑i=1m(Xbiθ−yi)X1i...∑i=1m(Xbiθ−yi)Xni⎠⎟⎟⎟⎟⎞=m2(Xb1θ−y1,Xb2θ−y2),...,Xbmθ−ym)⎝⎛X01...Xn1.........X1m...Xnm⎠⎞=m2XbT(XBθ−y)