机器学习笔记——线性回归
第一章 机器学习简介
第二章 感知机
第三章 支持向量机
第四章 朴素贝叶斯分类器
第五章 Logistic回归
第六章 线性回归和岭回归
第七章 多层感知机与反向传播【Python实例】
第八章 主成分分析【PCA降维】
第九章 隐马尔可夫模型
第十章 奇异值分解
一、线性回归模型
线性回归是一种线性模型,线性模型形式简单、易于建模。许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或者高维映射而得。
首先给定一个训练集
X
=
[
x
1
⋯
x
n
]
T
=
[
x
1
T
⋮
x
n
T
]
x
i
∈
R
d
,
X=\left[\begin{array}{lll} x_{1} & \cdots & x_{n} \end{array}\right]^{T}=\left[\begin{array}{c} x_{1}^{T} \\ \vdots \\ x_{n}^{T} \end{array}\right] \quad x_i \in \mathbb{R}^{d},
X=[x1⋯xn]T=
x1T⋮xnT
xi∈Rd,和样本的标签
Y
=
[
y
1
⋯
y
n
]
T
,
y
∈
R
.
Y=\left[\begin{array}{lll} y_{1} & \cdots & y_{n} \end{array}\right]^{T}, \quad y \in \mathbb{R}.
Y=[y1⋯yn]T,y∈R.线性回归尝试用一个线性模型来拟合以上数据:
f
(
x
)
=
w
T
x
+
b
,
w
∈
R
d
,
b
∈
R
f(x)=w^{T} x+b, \quad w \in \mathbb{R}^{d},b\in\mathbb{R}
f(x)=wTx+b,w∈Rd,b∈R
线性回归目的是能够根据给定的
x
x
x 以尽可能准确的输出预测值, 上面的
w
,
b
w,b
w,b 是模型的参数。
参数估计
如何利用训练数据来估计线性回归模型的参数 w , b w,b w,b,频率学派和贝叶斯学派有不同的方法。
- 频率学派的观点是,对于一个概率模型,参数是固定的、未知的常量——因为参数就在那里,我们只需要按某种方法去达到它,最后可以看作是一个优化问题。
- 贝叶斯学派的观点是,参数是未知的变量,它自身也是遵循某个概率分布的,我们只有它的先验分布,需要根据观察到的数据来进行调整。
下面我们介绍频率学派的参数估计方法,贝叶斯学派的参数估计方法见贝叶斯线性回归。
二、 频率学派参数估计
1 最小二乘法
为了讨论方便,对 w = ( w ( 1 ) , w ( 2 ) , ⋯ , w ( d ) ) T w=(w^{(1)},w^{(2)},\cdots,w^{(d)})^T w=(w(1),w(2),⋯,w(d))T进行扩充,把 b b b作为其最后一个元素
w = ( w ( 1 ) , w ( 2 ) , ⋯ , w ( d ) , b ) T . w=(w^{(1)},w^{(2)},\cdots,w^{(d)},b)^T. w=(w(1),w(2),⋯,w(d),b)T.同时对每个 x i = ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( d ) ) T x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(d)})^T xi=(xi(1),xi(2),⋯,xi(d))T进行扩充,把1作为其最后一维元素得到
x
i
=
(
x
i
(
1
)
,
x
i
(
2
)
,
⋯
,
x
i
(
d
)
,
1
)
T
.
x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(d)},1)^T.
xi=(xi(1),xi(2),⋯,xi(d),1)T.首先从频率学派的角度出发,为了寻找最优的参数,定义一个损失函数:
L
(
w
)
=
∑
i
=
1
n
(
w
T
x
i
−
y
i
)
2
(
1
)
L(w)=\sum^n_{i=1}(w^Tx_i-y_i)^2 \qquad (1)
L(w)=i=1∑n(wTxi−yi)2(1)下面化简函数(其实就是写成矩阵形式方便求导):
L
(
w
)
=
∑
i
=
1
n
(
w
T
x
i
−
y
i
)
2
=
(
w
T
x
1
−
y
1
)
2
+
(
w
T
x
2
−
y
2
)
2
+
…
+
(
w
T
x
n
−
y
n
)
2
=
[
w
T
x
1
−
y
1
⋯
w
T
x
n
−
y
n
]
[
w
T
x
1
−
y
1
⋮
w
T
x
n
−
y
n
]
=
(
w
T
[
x
1
⋯
x
n
]
−
Y
T
)
(
[
x
1
T
⋮
x
n
T
]
w
−
Y
)
=
(
w
T
X
T
−
Y
T
)
(
X
w
−
Y
)
=
w
T
X
T
X
w
−
w
T
X
T
Y
−
Y
T
X
w
+
Y
T
Y
=
w
T
X
T
X
w
−
2
w
T
X
T
Y
+
Y
T
Y
=
∥
X
w
−
Y
∥
2
2
\begin{aligned} L(w)&=\sum_{i=1}^{n}\left(w^{T} x_{i}-y_{i}\right)^{2} \\ &=\left(w^{T} x_{1}-y_{1}\right)^{2}+\left(w^{T} x_{2}-y_{2}\right)^{2}+\ldots+\left(w^{T} x_{n}-y_{n}\right)^{2}\\ &=\left[\begin{array}{lll}w^{T} x_{1}-y_{1} & \cdots & w^{T} x_{n}-y_{n}\end{array}\right]\left[\begin{array}{c}w^{T} x_{1}-y_{1} \\ \vdots \\ w^{T} x_{n}-y_{n}\end{array}\right]\\ &=\left(w^{T}\left[\begin{array}{lll}x_{1} & \cdots & x_{n}\end{array}\right]-Y^{T}\right)\left(\left[\begin{array}{c}x_{1}^{T} \\ \vdots \\ x_{n}^{T}\end{array}\right] w-Y\right)\\ &=\left(w^{T} X^{T}-Y^{T}\right)(X w-Y)\\ &=w^{T} X^{T} X w-w^{T} X^{T} Y-Y^{T} X w+Y^{T} Y\\ &=w^{T} X^{T} X w-2 w^{T} X^{T} Y+Y^{T} Y\\ &=\|Xw-Y\|_2^2 \end{aligned}
L(w)=i=1∑n(wTxi−yi)2=(wTx1−y1)2+(wTx2−y2)2+…+(wTxn−yn)2=[wTx1−y1⋯wTxn−yn]
wTx1−y1⋮wTxn−yn
=(wT[x1⋯xn]−YT)
x1T⋮xnT
w−Y
=(wTXT−YT)(Xw−Y)=wTXTXw−wTXTY−YTXw+YTY=wTXTXw−2wTXTY+YTY=∥Xw−Y∥22
接着, 求最优参数:
w
^
=
arg
min
w
L
(
w
)
=
arg
min
w
w
T
X
T
X
w
−
2
w
T
X
T
Y
+
Y
T
Y
=
arg
min
w
w
T
X
T
X
w
−
2
w
T
X
T
Y
\begin{aligned} \hat{w} &=\arg \min _{w} L(w) \\ &=\arg \min _{w} w^{T} X^{T} X w-2 w^{T} X^{T} Y+Y^{T} Y \\ &=\arg \min _{w} w^{T} X^{T} X w-2 w^{T} X^{T} Y \end{aligned}
w^=argwminL(w)=argwminwTXTXw−2wTXTY+YTY=argwminwTXTXw−2wTXTY对上式求导并令倒数为 0 :
∂
L
(
w
)
∂
w
=
2
X
T
X
w
−
2
X
T
Y
=
0
\frac{\partial L(w)}{\partial w}=2 X^{T} X w-2 X^{T} Y=0
∂w∂L(w)=2XTXw−2XTY=0得到:
X
T
X
w
=
X
T
Y
⇒
w
^
=
(
X
T
X
)
−
1
X
T
Y
X^{T} X w =X^{T} Y \\ \Rightarrow \quad\hat{w}=\left(X^{T} X\right)^{-1} X^{T} Y
XTXw=XTY⇒w^=(XTX)−1XTY这样就通过最小二乘法得到了参数
w
w
w ,注意上式假设
X
T
X
X^TX
XTX可逆,若不可逆,可以用广义逆。
2 极大似然估计
接着, 换一个角度来看线性回归。上面通过最小二乘法虽然拟合出了一条线能够较好的体现数据的内在规律, 但是与绝大部分样本的真实值相比, 还是有偏差的:
如上图所示, 对于这种偏差, 我们可以将它看作一个是一个噪声, 一个服从高斯分布的随机变量, 对于给定的
x
x
x, 它的真实值从下面的过程得到:
f
(
x
)
=
w
T
x
+
ϵ
\begin{aligned} f(x)&=w^{T} x+\epsilon \end{aligned}
f(x)=wTx+ϵ其中
ϵ
∼
N
(
0
,
σ
2
)
\epsilon \sim \mathcal{N}\left(0, \sigma^{2}\right)
ϵ∼N(0,σ2) 是噪声,
x
x
x 是给定的,
w
w
w 虽然是末知的, 但是也是固定的, 所以
w
T
x
w^{T} x
wTx 是 一个常量, 因此
y
y
y 也可以看作是一个关于随机变量
ϵ
\epsilon
ϵ 的函数,
y
=
g
(
ϵ
)
,
y=g(\epsilon),
y=g(ϵ),由此可以得到
y
y
y 的均值:
E
[
y
]
=
E
[
g
(
ϵ
)
]
=
E
[
w
T
x
+
ϵ
]
=
E
[
w
T
x
]
+
E
[
ϵ
]
=
w
T
x
.
\begin{aligned} \mathbb{E}[y] &=\mathbb{E}[g(\epsilon)] \\ &=\mathbb{E}\left[w^{T} x+\epsilon\right] \\ &=\mathbb{E}\left[w^{T} x\right]+\mathbb{E}[\epsilon] \\ &=w^{T} x. \end{aligned}
E[y]=E[g(ϵ)]=E[wTx+ϵ]=E[wTx]+E[ϵ]=wTx.方差(噪声显然与
w
T
x
w^{T} x
wTx 是独立的):
Var
[
y
]
=
Var
[
g
(
ϵ
)
]
=
Var
[
w
T
x
+
ϵ
]
=
Var
[
w
T
x
]
+
Var
[
ϵ
]
=
σ
2
,
\begin{aligned} \operatorname{Var}[y] &=\operatorname{Var}[g(\epsilon)] \\ &=\operatorname{Var}\left[w^{T} x+\epsilon\right] \\ &=\operatorname{Var}\left[w^{T} x\right]+\operatorname{Var}[\epsilon] \\ &=\sigma^{2}, \end{aligned}
Var[y]=Var[g(ϵ)]=Var[wTx+ϵ]=Var[wTx]+Var[ϵ]=σ2,所以
y
∼
N
(
w
T
x
,
σ
2
)
y \sim \mathcal{N}\left(w^{T} x, \sigma^{2}\right)
y∼N(wTx,σ2) 。接着就可以通过最大似然估计来求解
w
w
w, 首先定义对数似然函数:
ℓ
(
w
)
=
log
P
(
Y
∣
X
,
w
)
=
log
∏
i
=
1
n
P
(
y
i
∣
x
i
,
w
)
=
log
∏
i
=
1
n
1
2
π
σ
exp
(
−
1
2
σ
(
y
i
−
w
T
x
)
2
)
=
log
1
(
2
π
)
n
2
σ
n
+
∑
i
n
(
−
1
2
σ
(
y
i
−
w
T
x
)
2
)
.
\begin{aligned} \ell(w) &=\log P(Y \mid X, w) \\ &=\log \prod_{i=1}^{n} P\left(y_{i} \mid x_{i}, w\right) \\ &=\log \prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{1}{2 \sigma}\left(y_{i}-w^{T} x\right)^{2}\right) \\ &=\log \frac{1}{(2 \pi)^{\frac{n}{2}} \sigma^{n}}+\sum_{i}^{n}\left(-\frac{1}{2 \sigma}\left(y_{i}-w^{T} x\right)^{2}\right). \end{aligned}
ℓ(w)=logP(Y∣X,w)=logi=1∏nP(yi∣xi,w)=logi=1∏n2πσ1exp(−2σ1(yi−wTx)2)=log(2π)2nσn1+i∑n(−2σ1(yi−wTx)2).最大化似然函数,求解最优值:
w
^
=
arg
max
w
ℓ
(
w
)
=
arg
max
w
log
1
(
2
π
)
n
2
σ
n
+
∑
i
n
(
−
1
2
σ
(
y
i
−
w
T
x
i
)
2
)
=
arg
max
w
−
1
2
σ
∑
i
n
(
y
i
−
w
T
x
i
)
2
=
arg
min
w
∑
i
n
(
y
i
−
w
T
x
i
)
2
=
arg
min
w
L
(
w
)
.
\begin{aligned} \hat{w} &=\arg \max _{w} \ell(w) \\ &=\arg \max _{w} \log \frac{1}{(2 \pi)^{\frac{n}{2}} \sigma^{n}}+\sum_{i}^{n}\left(-\frac{1}{2 \sigma}\left(y_{i}-w^{T} x_{i}\right)^{2}\right) \\ &=\arg \max _{w}-\frac{1}{2 \sigma} \sum_{i}^{n}\left(y_{i}-w^{T} x_{i}\right)^{2} \\ &=\arg \min _{w} \sum_{i}^{n}\left(y_{i}-w^{T} x_{i}\right)^{2} \\ &=\arg \min _{w} L(w). \end{aligned}
w^=argwmaxℓ(w)=argwmaxlog(2π)2nσn1+i∑n(−2σ1(yi−wTxi)2)=argwmax−2σ1i∑n(yi−wTxi)2=argwmini∑n(yi−wTxi)2=argwminL(w).可以看到, 最后得到了和式 (1) 一样的结果, 后面求导的过程都是一样的, 就不展开了。
三、岭回归
线性回归算法的最小二乘估计通过最小化残差平方和来对参数进行估计.
- 基于最小二乘估计得到的线性回归模型具有预测偏差小而方差大的特点;
- 为了增强模型对数据扰动的容忍能力,需要对模型的预测偏差和方差进行权衡。
以权重参数 w w w的函数 Ω ( w ) \Omega(w) Ω(w)作为惩罚项,通过最小化正则化的残差平方和 min w ∑ i = 1 N ( y i − w ⋅ x i ) 2 + λ Ω ( w ) \min_{w}\sum_{i=1}^N(y_i-w\cdot x_i)^2+\lambda \Omega(w) wmini=1∑N(yi−w⋅xi)2+λΩ(w)来改善线性回归模型的泛化性能,这里 λ ≥ 0 \lambda\geq0 λ≥0用于权衡 Ω ( w ) \Omega(w) Ω(w)和残差平方和。
岭回归(Ridge Regression)方法就是通过所谓的收缩方法来缩减某些维特征对应的权重系数来降低预测方差的线性回归方法,采用权重参数向量 w w w的 L 2 L_{2} L2范数的平方作为惩罚项。
将最优化问题写成
min
w
F
r
(
w
)
=
∥
X
w
−
Y
∥
2
2
+
λ
∥
w
∥
2
2
.
\min_w F_r(w)=\parallel Xw-Y\parallel_2^2+\lambda\parallel w\parallel_2^2.
wminFr(w)=∥Xw−Y∥22+λ∥w∥22.这里
λ
>
0
\lambda>0
λ>0是正则化系数。将目标函数关于的
w
w
w偏导数置为0,则得到
∂
F
r
∂
w
=
2
X
T
(
X
w
−
Y
)
+
2
λ
w
=
0
\frac{\partial F_r}{\partial w}=2X^T(Xw-Y)+2\lambda w=0
∂w∂Fr=2XT(Xw−Y)+2λw=0即
(
X
T
X
+
λ
I
)
w
=
X
Y
(X^TX+\lambda I)w=XY
(XTX+λI)w=XY这里
I
I
I是
n
×
n
n\times n
n×n单位矩阵。注意到
X
X
T
+
λ
I
XX^T+\lambda I
XXT+λI是可逆的,则得到岭回归模型参数的估计
w
^
=
(
X
T
X
+
λ
I
)
−
1
X
Y
.
\hat{w}=(X^TX+\lambda\mathbf{I})^{-1}XY.
w^=(XTX+λI)−1XY.我们可以看到岭回归相对于线性回归的
w
w
w的估计中,对
X
T
X
X^TX
XTX加上了一个扰动,从数值角度来说,即使
X
X
T
XX^T
XXT是奇异的,加上这个扰动后,使得整个
X
T
X
+
λ
I
X^TX+\lambda\mathbf{I}
XTX+λI是可逆的,这样能有效解决多变量线性回归中的多重共线性问题。
多重共线性(Multicollinearity)是指多变量线性回归中,变量之间由于存在精确相关关系或高度相关关系而使回归估计不准确。
更详细的介绍可以见第一个参考资料。