1.什么是线性回归?
线性回归是试图在一堆数据中训练得到自变量x和因变量y中一组线性关系,如 y = w x + b y=wx+b y=wx+b。例如把人脚底板长度作为自变量,身高作为因变量,那么在这两种数据之间就可以做一个简单线性回归,可以得到脚底板长度和身高的关系式。
维基百科:线性回归
在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。周志华:机器学习
基于均方误差最小化来进行模型求解的方法称为“最小二乘法”,线性回归中最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
2. 线性回归的目标函数
要想求得这组线性关系,即求得相应的回归系数的值。那么先讲解一下线性回归的目标函数。
假设一堆数据中因变量为y,自变量为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,对其进行线性回归,求得结果会如下所示:
y = w 0 + w 1 x 1 + w 2 x 2 + . . . + w n x n = ∑ i = 0 n w i x i = w T x y=w_0+w_1x_1+w_2x_2+...+w_nx_n=\sum_{i=0}^nw_ix_i=w^Tx y=w0+w1x1+w2x2+...+wnxn=i=0∑nwixi=wTx
其中w0是x0=1的系数,表示为全局偏移量,在平面直线中的具体意义为截距,也作为自变量的一个维度,其中w就是我们需要求得的。那么怎么去求得这个w呢?假设一共有m个样本,对于第i个数据,有
y ( i ) = w T x ( i ) + ξ ( i ) y^{(i)}=w^Tx^{(i)}+\xi^{(i)} y(i)=wTx(i)+ξ(i)
对于一个样本来说, y ( i ) − w T x ( i ) y^{(i)}-w^Tx^{(i)} y(i)−wTx(i)为一个样本存在的误差。显然求得需要的w的方法,就是找出使误差最小的w,然而使用这个误差的简单累加将使得正差值和复差值抵消,所以我们采用均方误差,那么对于全部的m个样本来说,总误差为
J ( w ) = ∑ i = 1 m ( y ( i ) − w T x ( i ) ) 2 J(w)=\sum_{i=1}^{m}(y^{(i)}-w^Tx^{(i)})^2 J(w)=i=1∑m(y(i)−wTx(i))2
均方误差是回归任务中最常用的性能度量,有非常好的几何意义,它对应了常用的欧几里得距离或简称“欧氏距离”
显然我们需要这个总误差的值为最小,所以取目标函数为
J ( w ) = ∑ i = 1 m ( y ( i ) − w T x ( i ) ) 2 J(w)=\sum_{i=1}^{m}(y^{(i)}-w^Tx^{(i)})^2 J(w)=i=1∑m(y(i)−wTx(i))2
求这个目标函数最小值时的w,就是我们需要的w了。
3. 求目标函数得回归系数
3.1 梯度下降算法
对于求最小值的问题,我们能想到的第一个应该是梯度下降算法。在实验过程中发现,在对上述的目标函数进行梯度下降时,需要把步长设置的很小很小才行,为此我们先将目标函数改为如下形式
J ( w ) = 1 2 m ∑ i = 1 m ( y ( i ) − w T x ( i ) ) 2 J(w)=\frac{1}{2m}\sum_{i=1}^{m}(y^{(i)}-w^Tx^{(i)})^2 J(w)=2m1i=1∑m(y(i)−wTx(i))2
之后我们使用梯度下降算法来求这个目标函数的最小值。该目标函数的梯度为
∇ J ( w ) = ( ∂ J ( w ) ∂ w 1 , ∂ J ( w ) ∂ w 2 , . . . , ∂ J ( w ) ∂ w n + 1 ) \nabla J(w) = (\frac{\partial J(w)}{\partial w_1},\frac{\partial J(w)}{\partial w_2},...,\frac{\partial J(w)}{\partial w_{n+1}}) ∇J(w)=(∂w1∂J(w),∂w2∂J(w)