机器学习之线性回归原理
1 线性回归简介
在机器学习中,线性回归可解释为求解连续变量与因变量之间的线性关系的数学表达式。假设该数据集总共有 m m m列特征, n n n个数据,那么其形式为:
h w ( x 1 , x 2 . . . x m ) = w 0 + w 1 x 1 + w 2 x 2 + . . . w m x m h_w(x_1,x_2...x_m) = w_0+w_1x_1+w_2x_2+...w_mx_m hw(x1,x2...xm)=w0+w1x1+w2x2+...wmxm
矩阵表达形式为 H W ( X ) = X W H_W(X) = XW HW(X)=XW
这里偏置值 b b b为 w 0 w_0 w0,并且在矩阵形式中对在矩阵X左边添加了一列1,做了简化,方便推导
其中的模型参数序列 { w 0 , w 1 , . . . w m w_0,w_1,...w_m w0,w1,...wm} ,则是我们求解的重点。那么到底如何求解它们呢,主流的两种方法为标准方程法或梯度下降法。
2 损失函数
在具体了解两种方法,标准方程法与梯度下降法之前先介绍一下衡量线性回归模型好坏的损失函数。线性回归中使用的形式为均方差误差(MSE),假设数据集有m个特征,n个样本,那么其形式为:
J ( w 0 , w 1 , . . . w m ) = ∑ i = 1 n ( h x i ( w 0 , w 1 , . . . w m ) − y i ) 2 J(w_0,w_1,...w_m) = \sum_{i=1}^n\ (h_{x^i}(w_0,w_1,...w_m) - y_i)^2 J(w0,w1,...wm)=i=1∑n (hxi(w0,w1,...wm)−yi)2
其矩阵表达形式为 J ( W ) = ( X W − Y ) T ( X W − Y ) J(W)=(XW−Y)^T(XW−Y) J(W)=(XW−Y)T(XW−Y)
其实如果是均方差误差,上面两个公式右边都要左乘 1 n \cfrac{1}{n} n1,但是为了推导方便,并没有加上,实际影响也不大
另外线性回归的损失函数是凸函数,加上正则项(Norm)后仍是凸函数,这也是为什么不管用什么方法都能对线性回归求解到全局最优解。(不了解凸函数可以查找其他资料,实际内容也是比较简单的)
3 两种求解方法
求解参数序列{ w 0 , w 1 , . . . w m w_0,w_1,...w_m w0,w1,...wm}的准则就是使得我们将数据集带入损失函数,损失函数的值最小。
① 标准方程法
标准方程法的推导是基于矩阵表达形式的,因为我们要求解 J ( W ) J(W) J(W) 的最小值,由于 ( X W − Y ) T ( X W − Y ) (XW−Y)^T(XW−Y) (XW−Y)T(XW−Y) 是一个半正定二次型,那么当取得最小值时,其一阶微分为零矩阵,也是类似于求解二次函数的最小值。
推导过程如下:
∂ ( X W − Y ) T ( X W − Y ) ∂ W = 0 \frac{\partial (XW−Y)^T(XW−Y)}{\partial W} = 0 ∂W∂(XW−Y)T(XW−Y)=0
∂ ( W T X T X W − W T X T Y − Y T X W + Y T Y ) ∂ W = 0 \frac{\partial (W^TX^TXW- W^TX^TY-Y^TXW+Y^TY)}{\partial W} = 0 ∂W∂(WTXTXW−WTXTY−YTXW+YTY)=0
2 X T X W − X T Y − X T Y + 0 = 0 2X^TXW-X^TY-X^TY+0=0 2XTXW−XTY−XTY+0=0
最后将 W W W提取出来就是:
W = ( X T X ) − 1 X T Y W = (X^TX)^{-1}X^TY W=(XTX)−1XTY
在这里要提一下半正定矩阵 X T X X^TX XTX不可逆的情况:
1. 部分特征值之间存在线性相关性
2. 样本数小于特征数
解决 X T X X^TX X