概述
- 优点:容易计算,易于理解和实现
- 缺点:容易欠拟合
- 适用数据类型:数值型和标称型
口头描述
线性回归试图构造一个线性函数,去拟合尽可能多的样本点。重点是如何确定线性函数的参数,使得该函数尽量穿过样本点,一般使用均方误差最小化来作为参数拟合效果的标准。
算法推导(解方程的方法)
- 给定训练数据集D={(xi,yi)}i=1m,样本xi由d个属性描述,线性模型为:
f(xi)=ωTxi+b,f(xi)⋍yi
- 使用均方误差衡量f(x)与y之间的差别,我们的目标是使他们的差别最小化。
Es(squareloss)=i=1∑m(f(xi)−yi)2
- 使用矩阵进行表达
- 参数向量矩阵:
ω^=(ω;b)=⎣⎢⎢⎢⎢⎡ω1ω2...ωdb⎦⎥⎥⎥⎥⎤
注意: ω^是d+1行1列的
- 数据集矩阵:
X=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2…...⋱…x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x1Tx2T⋮xmT11⋮1⎦⎥⎥⎥⎤
注意:最后一列全是1,前d个元素对应样本的d个属性值
- 标记矩阵:
y=⎣⎢⎢⎢⎡y1y2⋮ym⎦⎥⎥⎥⎤
- 则均方误差为:
Es=(y−Xω^)T(y−Xω^)
- 令Eω^=(y−Xω^)T(y−Xω^),对ω^求导得:
∂ω^∂Eω^=2XT(Xω^−y)
令上式为零可得ω^的最优解的闭式解
ω^∗=(XTX)−1XTy
解出上式,也就得到了模型的公式:
f(xi^)=xi^T(XTX)−1XTy
其中,
xi^=⎣⎢⎢⎢⎢⎢⎡xi1xi2⋮xid1⎦⎥⎥⎥⎥⎥⎤
算法推导(梯度下降)
目标是使均方误差最小化,即:
minE(squareloss)=2m1i=1∑m(fω^(xi)−yi)2
这里的2m1是为了方便求偏导
对误差函数做偏导,对于每个特征(ωn),其梯度(偏导)为:
∂ωn∂E=m1i=1∑m(fω^(xi)−yi)⋅xin
这里是对每一个特征进行了求导,因为
fω^(xi)=ω0xi0+ω1xi1+⋯+ωnxin(xi:theithdata)
则梯度下降的流程就是:
重复此过程直到收敛{
ω0:=ω0−αm1i=1∑m(fω^(xi)−yi)⋅xi0
ω1:=ω1−αm1i=1∑m(fω^(xi)−yi)⋅xi1
⋮
ωn:=ωn−αm1i=1∑m(fω^(xi)−yi)⋅xin
}
解释一下,∑i=1m(fω^(xi)−yi)的意思是计算每个预测值与实际值的差别的总和。另外,对每个ωi进行更新都是独立的,应当把所有的ωi全部计算出来后再对其进行赋值更新。
XTX的要求
当矩阵XTX是满秩矩阵的时候,上述最优解成立,但是很多情况下XTX往往不是满秩矩阵,此时可以解出ω^,他们都能使均方误差最小化,选择哪一个作为输出,将由学习算法的归纳偏好决定,常见的做法是引入正则化项。
对数线性回归
我们希望回归模型去逼近lny不是y时,模型变为
lny=ωTx+b
这就是对数线性回归
