线性回归
标签(空格分隔): 机器学习
基本形式:给定d个属性的示例 x = ( x 1 ; x 2 ; ⋯   ; x d ) x= (x_1 ; x_2 ; \cdots; x_d) x=(x1;x2;⋯;xd),其中, x 1 x_1 x1 是 x x x在第个 i i i属性上的取值。
f ( x ) = ω 1 x 1 + ω 2 x 2 + ⋯ + ω n x n + b f(x) = \omega_1x_1 + \omega_2x_2 + \cdots + \omega_nx_n + b f(x)=ω1x1+ω2x2+⋯+ωnxn+b
即 f ( x ) = ω T x + b f(x) = \omega^Tx + b f(x)=ωTx+b
其中 ω = ( ω 1 ; ω 2 ; ⋯   ; ω d ) \omega = (\omega_1;\omega_2;\cdots;\omega_d) ω=(ω1;ω2;⋯;ωd)
1. 最简单的线性回归
给定数据集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
m
,
y
m
)
}
D =\{ (x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m) \}
D={(x1,y1),(x2,y2),⋯,(xm,ym)},其中
x
i
=
(
x
i
1
;
x
i
2
;
⋯
 
;
x
i
d
)
x_i = ({x_i}_1;{x_i}_2;\cdots;{x_i}_d)
xi=(xi1;xi2;⋯;xid),
y
i
∈
R
y_i \in R
yi∈R 。目标是学得模型预测输出,算法思路如下:
f
(
i
)
=
ω
x
i
+
b
f(_i)=\omega x_i + b
f(i)=ωxi+b 使得
f
(
x
i
)
≃
y
i
f(x_i)\simeq y_i
f(xi)≃yi
( ω ∗ , b ∗ ) = arg min ( ω , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg min ( ω , b ) ∑ i = 1 m ( y i − ω x i − b ) 2 (\omega^* ,b^* ) = \underset{(\omega, b)}{\arg\min}\sum_{i=1}^m (f(x_i)-y_i)^2 \\ = \underset{(\omega, b)}{\arg\min}\sum_{i=1}^m(y_i-\omega x_i - b)^2 (ω∗,b∗)=(ω,b)argmini=1∑m(f(xi)−yi)2=(ω,b)argmini=1∑m(yi−ωxi−b)2
最小二乘法:上式(西瓜书54 公式(3.4)) 基于最小化均方误差作为目标函数进行求解模型。
解:
E
(
ω
,
b
)
E_{(\omega, b)}
E(ω,b) 分别对
ω
\omega
ω 和
b
b
b 求偏导
∂
E
(
ω
,
b
)
∂
ω
=
∑
i
=
1
m
2
(
y
i
−
ω
x
i
−
b
)
(
−
x
i
)
=
2
∑
i
=
1
m
(
ω
x
i
2
+
(
y
i
−
b
)
(
−
x
i
)
)
=
2
(
ω
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
(
y
i
−
b
)
x
i
)
\frac{\partial E_(\omega, b)}{\partial \omega} = \sum_{i=1}^m 2 (y_i - \omega x_i - b)(-x_i) \\ =2 \sum_{i=1}^m (\omega x_i^2 + (y_i - b)(-x_i))\\ =2(\omega \sum_{i=1}^m x_i^2 - \sum_{i=1}^m (y_i - b) x_i)
∂ω∂E(ω,b)=i=1∑m2(yi−ωxi−b)(−xi)=2i=1∑m(ωxi2+(yi−b)(−xi))=2(ωi=1∑mxi2−i=1∑m(yi−b)xi)
∂
E
(
ω
,
b
)
∂
b
=
∑
i
=
1
m
2
(
y
i
−
ω
x
i
−
b
)
(
−
1
)
=
2
∑
i
=
1
m
(
b
−
(
y
i
−
ω
x
i
)
)
=
2
(
m
b
−
∑
i
=
1
m
(
y
i
−
ω
x
i
)
)
\frac{\partial E_(\omega, b)}{\partial b} = \sum_{i=1}^m 2 (y_i - \omega x_i - b)(-1) \\ =2 \sum_{i=1}^m (b - (y_i - \omega x_i))\\ =2(mb - \sum_{i=1}^m (y_i - \omega x_i))
∂b∂E(ω,b)=i=1∑m2(yi−ωxi−b)(−1)=2i=1∑m(b−(yi−ωxi))=2(mb−i=1∑m(yi−ωxi))
参数估计: 将目标函数分别对w 和 b 求偏导,然后令偏导数结果都为零(依据凸函数最优解的性质),可求出w和b 最优解的闭式解。
令上述两个偏导数为零可求得
ω
\omega
ω 和
b
b
b 最优解的闭式解:
首先,
E
(
ω
,
b
)
E_{(\omega, b)}
E(ω,b) 对
b
b
b 的偏导为零,得
b
=
1
m
∑
i
=
1
m
(
y
i
−
ω
x
i
)
)
b = \frac{1}{m} \sum_{i=1}^m (y_i - \omega x_i))
b=m1i=1∑m(yi−ωxi))
然后, 将
b
b
b 代入
E
(
ω
,
b
)
E_{(\omega, b)}
E(ω,b) 对
ω
\omega
ω 的偏导再求解:
∂
E
(
ω
,
b
)
∂
ω
=
0
\frac{\partial E_(\omega, b)}{\partial \omega} = 0
∂ω∂E(ω,b)=0
先展开
ω
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
x
i
y
i
+
∑
i
=
1
m
b
x
i
=
0
\omega \sum_{i=1}^m x_i^2 - \sum_{i=1}^m x_i y_i + \sum_{i=1}^m b x_i = 0
ωi=1∑mxi2−i=1∑mxiyi+i=1∑mbxi=0
后代入b:
ω
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
x
i
y
i
+
∑
i
=
1
m
(
1
m
∑
i
=
1
m
(
y
i
−
ω
x
i
)
)
x
i
=
0
\omega \sum_{i=1}^m x_i^2 - \sum_{i=1}^m x_i y_i+\sum_{i=1}^m (\frac{1}{m} \sum_{i=1}^m(y_i - \omega x_i))x_i = 0
ωi=1∑mxi2−i=1∑mxiyi+i=1∑m(m1i=1∑m(yi−ωxi))xi=0 ;
ω
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
x
i
y
i
+
1
m
∑
i
=
1
m
x
i
∑
i
=
1
m
(
y
i
−
ω
x
i
)
=
0
\omega \sum_{i=1}^m x_i^2 - \sum_{i=1}^m x_i y_i+ \frac{1}{m} \sum_{i=1}^m x_i \sum_{i=1}^m(y_i - \omega x_i) = 0
ωi=1∑mxi2−i=1∑mxiyi+m1i=1∑mxii=1∑m(yi−ωxi)=0;
ω
∑
i
=
1
m
x
i
2
−
∑
i
=
1
m
x
i
y
i
+
(
1
m
∑
i
=
1
m
x
i
)
∑
i
=
1
m
y
i
−
(
1
m
∑
i
=
1
m
x
i
)
ω
∑
i
=
1
m
x
i
=
0
\omega \sum_{i=1}^m x_i^2 - \sum_{i=1}^m x_i y_i+ (\frac{1}{m} \sum_{i=1}^m x_i) \sum_{i=1}^m y_i - (\frac{1}{m} \sum_{i=1}^m x_i) \omega \sum_{i=1}^m x_i = 0
ωi=1∑mxi2−i=1∑mxiyi+(m1i=1∑mxi)i=1∑myi−(m1i=1∑mxi)ωi=1∑mxi=0;
ω
=
∑
i
=
1
m
y
i
(
x
i
−
x
ˉ
)
∑
i
=
1
m
x
i
2
−
1
m
∑
i
=
1
m
x
i
∑
i
=
1
m
x
i
\omega = \frac{\sum_{i=1}^m y_i (x_i - \bar x)}{\sum_{i=1}^m x_i^2 - \frac{1}{m} \sum_{i=1}^m x_i \sum_{i=1}^m x_i}
ω=∑i=1mxi2−m1∑i=1mxi∑i=1mxi∑i=1myi(xi−xˉ)
=
∑
i
=
1
m
y
i
(
x
i
−
x
ˉ
)
∑
i
=
1
m
x
i
2
−
1
m
(
∑
i
=
1
m
x
i
)
2
= \frac{\sum_{i=1}^m y_i (x_i - \bar x)}{\sum_{i=1}^m x_i^2 - \frac{1}{m} (\sum_{i=1}^m x_i)^2 }
=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)
最后,代回原函数 f ( x ) = ω T x + b f(x) = \omega^Tx + b f(x)=ωTx+b 得到最简单的线性模型。
2. 多元线性回归
f
(
x
i
)
=
ω
T
x
i
+
b
f(x_i) = \omega^Tx_i + b
f(xi)=ωTxi+b 使 $f(x_i)\simeq y_i $
数据集D的参数矩阵:
X
=
(
x
1
1
x
1
2
⋯
x
1
d
1
x
2
1
x
2
2
⋯
x
2
d
1
⋮
⋮
⋱
⋮
⋮
x
m
1
x
m
2
⋯
x
m
d
1
)
=
(
x
1
T
1
x
2
T
1
⋮
⋮
x
m
T
1
)
X = \begin{pmatrix} {x_1}_1 & {x_1}_2 & \cdots & {x_1}_d & 1 \\ {x_2}_1 & {x_2}_2 & \cdots & {x_2}_d & 1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ {x_m}_1 & {x_m}_2 & \cdots & {x_m}_d & 1 \\ \end{pmatrix} = \begin{pmatrix} {x_1}^T & 1 \\ {x_2}^T & 1 \\ \vdots & \vdots \\ {x_m}^T & 1 \\ \end{pmatrix}
X=⎝⎜⎜⎜⎛x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1Tx2T⋮xmT11⋮1⎠⎟⎟⎟⎞
参数向量:
ω
^
=
(
x
1
T
x
2
T
⋮
x
m
T
b
)
\hat \omega =\begin{pmatrix} {x_1}^T \\ {x_2}^T \\ \vdots \\ {x_m}^T \\ b \\ \end{pmatrix}
ω^=⎝⎜⎜⎜⎜⎜⎛x1Tx2T⋮xmTb⎠⎟⎟⎟⎟⎟⎞
输出向量:
y
=
(
y
1
y
2
⋮
y
m
)
y = \begin{pmatrix} {y_1} \\ {y_2} \\ \vdots \\ {y_m} \\ \end{pmatrix}
y=⎝⎜⎜⎜⎛y1y2⋮ym⎠⎟⎟⎟⎞
最小二乘法估算
ω
和
b
\omega 和 b
ω和b:
ω
^
∗
=
arg
min
(
w
,
b
)
(
y
−
X
ω
^
)
T
(
y
−
X
ω
^
)
\hat \omega^* = \mathop{\arg\min}_{(w,b)} (y - X\hat \omega)^T(y - X\hat \omega)
ω^∗=argmin(w,b)(y−Xω^)T(y−Xω^)
(即相当于最小化
∣
∣
y
−
X
ω
^
∣
∣
2
||y - X \hat \omega||^2
∣∣y−Xω^∣∣2)
令
E
(
ω
^
)
=
(
y
−
X
ω
^
)
T
(
y
−
X
ω
^
)
E_{(\hat\omega)} = (y - X\hat \omega)^T(y - X\hat \omega)
E(ω^)=(y−Xω^)T(y−Xω^) ,对
ω
^
{\hat \omega}
ω^ 求导得:
∂ E ω ^ ∂ ω ^ = 2 X T ( X ω ^ − y ) \frac{\partial E_{\hat\omega} }{\partial \hat \omega} = 2 X^T(X\hat\omega - y) ∂ω^∂Eω^=2XT(Xω^−y)
上式根据查表 或者 这篇blog 可以计算出偏导,但对于矩阵和向量求导还是不够熟练。
分类讨论:
- 如果
X
T
X
X^TX
XTX 为满秩矩阵或者正定矩阵时,令上式结果为零,得
ω ^ ∗ = ( X T X ) − 1 X T y \hat\omega^* = (X^TX)^{-1}X^Ty ω^∗=(XTX)−1XTy
因 x ^ i = ( x i ; 1 ) ; ω ^ = ( ω ; b ) \hat x_i = (x_i; 1) ; \hat\omega = (\omega ; b) x^i=(xi;1);ω^=(ω;b) ,所求的线性回归模型为:
f ( x ^ i ) = x ^ i T ( X T X ) − 1 X T y f(\hat x_i) = \hat x_i^T (X^TX)^{-1} X^T y f(x^i)=x^iT(XTX)−1XTy - 如果
X
T
X
X^TX
XTX 不是满秩矩阵时,这时主要由归纳偏好决定,常见的做法是引入正则化项(regularization)
( 此 处 不 懂 正 则 化 项 是 如 何 能 够 做 到 偏 好 归 纳 ? 懂 的 人 详 细 赐 教 ) \color {red}{(此处不懂正则化项是如何能够做到偏好归纳?懂的人 详细赐教)} (此处不懂正则化项是如何能够做到偏好归纳?懂的人详细赐教)
…不再展开