引子
看到线性回归这个名字会让人想到另一个词,就是线性代数中的线性组合,浅显直接一点就是多个向量进行一个加权的比例运算,最终得到一个新的向量。即:
α
1
,
α
2
,
α
3
,
α
4........
α
n
alpha1,alpha2,alpha3,alpha4........alpha n
α1,α2,α3,α4........αn共n个列向量,由线性组合通过一个比例系数运算得到一个新的向量
β
eta
β
[
α
1
α
2
.
.
.
.
.
.
.
.
α
n
]
[
ω
1
ω
2
.
.
.
.
.
.
ω
n
]
=
β
egin{bmatrix}alpha_1&alpha_2........alpha_n end{bmatrix}egin{bmatrix}omega_1 \ omega_2\......\omega_n end{bmatrix}=eta
[α1α2........αn]⎣⎢⎢⎡ω1ω2......ωn⎦⎥⎥⎤=β
预测模型
在线性回归中类似,只不过这里的向量有了具体的意义即表示对应的属性,多个属性参与进行线性组合,最终得到一个预测值。并且实际中结果往往可能在所有属性之外含有一个固定的偏移量b,所以最终的模型如下:
[
x
1
x
2
.
.
.
.
.
.
.
.
x
n
1
]
[
ω
1
ω
2
.
.
.
.
.
.
ω
n
b
]
=
β
egin{bmatrix}x_1&x_2........x_n &1end{bmatrix}egin{bmatrix}omega_1 \ omega_2\......\omega_n \bend{bmatrix}=eta
[x1x2........xn1]⎣⎢⎢⎢⎢⎡ω1ω2......ωnb⎦⎥⎥⎥⎥⎤=β
也就是(
x
n
x_n
xn为相应的属性,
β
eta
β为最终的预测值):
x
1
ω
1
+
x
2
ω
2
+
.
.
.
.
.
.
.
+
x
n
ω
n
+
b
=
β
x_1 omega_1+x_2 omega_2+.......+x_n omega_n+b=eta
x1ω1+x2ω2+.......+xnωn+b=β
对应属性的个数不同分为一元回归与多元回归:
一元回归仅有一个属性加上一个偏移量有:
x
ω
+
b
=
β
xomega+b=eta
xω+b=β
多元回归不止一个属性即:
x
1
ω
1
+
x
2
ω
2
+
.
.
.
.
.
.
.
+
x
n
ω
n
+
b
=
β
x_1 omega_1+x_2 omega_2+.......+x_n omega_n+b=eta
x1ω1+x2ω2+.......+xnωn+b=β
评价模型
如何对产生的预测值进行评价,这里也是比较直观的方式使用欧式距离即预测值与实际值差的平方,假设预测值为
f
(
x
)
f(x)
f(x),对应的x为相关的测试用例,
y
i
y_i
yi为实际值,于是代价函数为:
H
(
ω
,
b
)
=
∑
i
=
1
n
(
f
(
x
i
)
−
y
i
)
2
H(omega,b)=sum_{i=1}^{n}(f(x_i)-y_i)^2
H(ω,b)=∑i=1n(f(xi)−yi)2
为了使模型的预测结果更加接近于实际结果,我需要这个代价函数取最小值。
一元线性回归
对应
ω
,
b
omega,b
ω,b保证其最小值,也就是最小二乘法有:
∂ H ( ω , b ) ∂ ω = 2 ( ω ∑ i = 1 n x i 2 − ∑ i = 1 n ( y i − b ) x i ) = 0 frac{partial H(omega,b)}{partial omega}=2(omegasum_{i=1}^{n}x_i^2-sum_{i=1}^{n}(y_i-b)x_i)=0 ∂ω∂H(ω,b)=2(ω∑i=1nxi2−∑i=1n(yi−b)xi)=0
∂ H ( ω , b ) ∂ b = 2 ( n b − ∑ i = 1 n ( y i − ω x i ) ) = 0 frac{partial H(omega,b)}{partial b}=2(nb-sum_{i=1}^{n}(y_i-omega x_i))=0 ∂b∂H(ω,b)=2(nb−∑i=1n(yi−ωxi))=0
解出 ω , b omega,b ω,b的最优解有:
ω = ∑ i = 1 n y i ( x i − x ˉ ) ∑ i = 1 n x i 2 − n x ˉ 2 omega=frac{sum_{i=1}^{n}y_i(x_i-ar{x})}{sum_{i=1}^{n}x_i^2-nar{x}^2} ω=∑i=1nxi2−nxˉ2∑i=1nyi(xi−xˉ)
b = ∑ i = 1 n ( y i − ω x i ) n b=frac{sum_{i=1}^{n}(y_i-omega x_i)}{n} b=n∑i=1n(yi−ωxi)
x ˉ = ∑ i = 1 n x i n ar{x}=frac{sum_{i=1}^{n}x_i}{n} xˉ=n∑i=1nxi
多元线性回归
x 1 ω 1 + x 2 ω 2 + . . . . . . . + x n ω n + b = β x_1 omega_1+x_2 omega_2+.......+x_n omega_n+b=eta x1ω1+x2ω2+.......+xnωn+b=β
对应每一个 x i x_i xi训练集展开有:
X = [ x 11 x 12 . . . . x 1 d 1 x 21 x 22 . . . . x 2 d 1 . . . . . . . . . . . . . . . . . . . . x n 1 x n 2 . . . . x n d 1 ] X=egin{bmatrix}x_{11} & x_{12} &....&x_{1d} & 1\ x_{21} & x_{22} &....&x_{2d} & 1\ .... & .... &....&.... & ....\ x_{n1} & x_{n2} &....&x_{nd} & 1end{bmatrix} X=⎣⎢⎢⎡x11x21....xn1x12x22....xn2................x1dx2d....xnd11....1⎦⎥⎥⎤ [ ω 1 ω 2 . . . . b ] = [ f ( x 1 ) f ( x 2 ) . . . . f ( x n ) ] egin{bmatrix}omega_1 \ omega_2\....\ bend{bmatrix}=egin{bmatrix} f(x_1) \ f(x_2)\....\ f(x_n)end{bmatrix} ⎣⎢⎢⎡ω1ω2....b⎦⎥⎥⎤=⎣⎢⎢⎡ f(x1)f(x2)....f(xn)⎦⎥⎥⎤
将原先的属性扩展一个维度固定为1,用于匹配对应的偏移量b,保持形式的一致性。对应只含有 ω i omega_i ωi的未知参数,对应的代价函数为:
w = [ ω 1 ω 2 . . . . b ] w=egin{bmatrix}omega_1 \ omega_2\....\ bend{bmatrix} w=⎣⎢⎢⎡ω1ω2....b⎦⎥⎥⎤
H ( w ) = ( y − X w ) T ( y − X w ) H(w)=(y-Xw)^T(y-Xw) H(w)=(y−Xw)T(y−Xw)
同样由最小二乘法有对应的最优解为:
∂ H ( w ) ∂ w = 2 X T ( X w − y ) = 0 frac{partial H(w)}{partial w}=2X^T(Xw-y)=0 ∂w∂H(w)=2XT(Xw−y)=0
w = ( X T X ) − 1 X T y w=(X^TX)^{-1}X^Ty w=(XTX)−1XTy,( X T X X^TX XTX可逆的条件下)
优化模型
这里介绍的是计算方法中的梯度下降法,梯度对应描述的是函数的变化趋势,对应是以偏导数的形式体现的(训练集代价函数偏导的均值):
∂ H ( ω ) ∂ ω = 1 ∣ δ ∣ ∑ i = 1 ∣ δ ∣ ∂ H ( ω i ) ∂ ω i frac{partial H(omega)}{partial omega}=frac{1}{mid deltamid}sum_{i=1}^{mid deltamid}frac{partial H(omega_i)}{partial omega_i} ∂ω∂H(ω)=∣δ∣1∑i=1∣δ∣∂ωi∂H(ωi)
ω
i
=
ω
i
−
η
∣
δ
∣
∑
i
=
1
∣
δ
∣
∂
H
(
ω
i
)
∂
ω
i
omega_i=omega_i-frac{eta}{mid deltamid}sum_{i=1}^{mid deltamid}frac{partial H(omega_i)}{partial omega_i}
ωi=ωi−∣δ∣η∑i=1∣δ∣∂ωi∂H(ωi)
每次迭代取的方向是对应函数下降的方向(负值)(目的是代价函数的最小值),在若干次的迭代后可以得到一个局部最优值。其中的
η
eta
η用于控制每次迭代时的下降速度,也叫学习率。速度过大会在最优值两侧不断徘徊,速度过小便要很多次迭代才能达到最优。
优化的过程中一般是取部分的训练样本,小批量的进行,其中
δ
delta
δ便是对应小批量中的样本数量。