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