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