在前一篇博客线性模型(二)之多项式拟合中介绍了一维数据的多项式拟合问题。理解多项式拟合后,再来看线性回归,会发现,如出一辙。线性回归和多项式拟合的主要区别在于:
1. 线性回归基础
- 线性回归的输入是多维的
- 线性回归模型不仅是参数的线性函数,也是输入
x
的线性函数,即不会像多项式拟合中会有
x2,x3
等高次幂出现。
线性回归的基本形式如下:
输入:数据集
D={(x1,y1),(x2,y2),..,(xN,yN)}
,其中
xi={xi1,xi2,...,xid}
,
d
表示输入数据的维度是
d
维,并且
xij∈R,yi∈R
.
输出:
f(x)=wx+b=w1x1+w2x2+...+wdxd+b
从这里可以看出,和多项式拟合是非常相似的,同样选择平方误差作为损失函数。
E(w,b)=∑i=1N[f(xi)−yi]2=∑i=1N[w1xi1+w2xi2+...+wdxid−yi]2
同理,可以用求偏导再联立方程求解。当然是用矩阵形式的最小二乘法则是通用的做法。用矩阵表示误差函数
E(w)=∥XwT−y∥2
其中,
w=[b,w1,w2,...,wd]
,将
b
吸收了,
y={y1,y2,...,yN}T
X=⎡⎣⎢⎢⎢11...1x11x21...xN1x12x22...xN2............x1dx2d...xNd⎤⎦⎥⎥⎥
和多项式拟合中,矩阵求导一样,求解得到
wT=(XTX)−1XTy
如果只是是用单纯的线性回归,容易导致模型过拟合,因此一般会使用正则化技术。在线性回归的基础上,加上
L1
正则项,就是lasso回归,而加上
L2
正则项,就构成了ridge回归。
2. ridge回归(岭回归)
ridge回归,又称之为岭回归,是在线性回归的损失函数上增加了
L2
正则项,公式如下:
E(w)=∥XwT−y∥2+∥w∥2
同样,对其求导,令导数为0,可以得到参数
w
的值。
w=(XTw+I)XTy
可见,ridge回归的求解方式和基础的线性回归时类似的。
3. lasso回归
lasso回归是在线性回归的损失函数上增加了
L1
正则化,因为
L1
正则化可以使得部分参数为0,因此可以起到特征选择的作用。损失函数变成如下的形式:
E(w)=∥XwT−y∥2+∥w∥1
在lasso回归中,损失函数不连续可导,因此无解析解,一般采用坐标轴下降法进行迭代求解。