1. 前言
线性回归,对于学习过数理统计的同学而言已经再熟悉不过了,可是线性回归仅仅只是我们表面所理解的那样么?如果你也和之前的我一样觉得线性回归是最简单的机器学习算法的话,那么想必你也不懂她……
为了深入了解线性回归,本文将首先介绍简单的一元线性回归及其最小二乘解法;然后介绍多元线性回归,并用最小二乘法、梯度下降法进行求解,最后重点讨论多元线性回归多种解法的优缺点。
2. 线性回归之最小二乘求解
2.1 一元线性回归与最小二乘法
简单来说,一元线性回归就是寻求一个因变量与一个自变量之间的线性关系,而这种线性关系则是通过一元线性回归方程y'=a+bx来反映。
为了确定a,b的值,一般采用最小二乘法(最小化误差的平方和)进行求解。假设有n个样本
,那么有总样本误差平方和
通过化简构造,最后可求出a,b的值。求解过程如下:
以上就是我们在高中阶段就已经学习过的一元线性回归及最小二乘解法,下面我们将重点讨论多元线性回归。多元线性回归指的是一个因变量与多个自变量之间的线性关系,也可用最小二乘进行求解。关于多元回归的最小二乘解法,我们可以采用Normal Equation(标准方程或正规方程)和投影矩阵两种方式。
2.2 Normal Equation
已知Ax = b, 其中A为m*n的样本矩阵(m表示样本数,n表示特征个数),x为n*1的特征向量。为了求出最优的x,我们只需要最小化误差的平方和即可,误差的平方和用矩阵形式表示如下:
然后对其求关于x的偏导,最后令偏导为0即可求出x。推导过程如下:
其中,
称之为Normal Equation,一般翻译成正规方程或者标准方程。
2.3 投影矩阵
A平面上的一个向量p上,进一步使p与b靠近,当p和b最近时的x即为最优解。把Ax投影到p上,就是令p=Ax;让p接近与b,就是误差b-p最小;而p和b最近时,就是向量p所在平面与b垂直,即AT(b-Ax)=0,最后求得x=(ATA)-ATb。关于投影矩阵的介绍,请参考最小二乘法的本质是什么? - 阿狸的回答 - 知乎。
3. 线性回归之梯度下降求解
θ(x)=θx, 那么我们的代价函数可以定义为
进一步求出代价函数关于的θ偏导(即梯度),最后按照梯度反方向来更新θ。公式推导如下:
4. 小结
至此,已经介绍完多元线性回归的最小二乘解法(正规方程)和梯度下降法。那么这两种方法各自有什么特点呢?我们平时求解时该选择哪一种呢?
对于正规方程而言,一次运算即可求解,但是矩阵的逆运算也是相当复杂(求解n阶方阵的逆的复杂度为O(n^3)),同时也存在奇异阵无法求解的情况。当出现奇异阵无法求解,我们可采用通过删除共线的特征等方法进行处理。
对于梯度下降而言,由于多元线性回归是收敛的,因此梯度下降求得的局部最优一定是全局最优的,但是在求解时需要进行特征收缩、设置learing rate,并且需要多次迭代直至代价函数收敛。
一般当问题规模小于1000时,我们采用正规方程进行求解,反之则采用梯度下降进行求解。关于梯度下降,除了上文中提及的梯度下降,还有随机梯度下降、batch梯度下降、mini-batch 梯度下降,感兴趣的可以自行查阅资料了解。
线性回归:你懂我了吗?