转载于林学霸 http://linbaijiong.github.io/2018/02/01/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92-%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83/
前言
线性回归(Linear Regression)模型是机器学习的入门,本文解法的基础是最小二乘法,这在高中我们已经学习过了,当然在以后我们会使用新的方法如极大似然估计(MLE)和最大后验估计(MAP)。多元线性回归会稍微复杂一些,这涉及到向量化的思想。
一元线性回归
我们从最简单的一元线性回归开始,假设数据集D={(x(1),y(1)),(x(2),y(2)),…,(x(n),y(n))}D={(x(1),y(1)),(x(2),y(2)),…,(x(n),y(n))},我们可以画出这n个样本点的散点图,线性回归的目标就是找到一条恰当的直线来拟合这些样本点,从而当我们有一个新的样本点的x时,我们可以预测出对应的y值。
简单地说,线性回归试图找到一条直线f(x)=wx+bf(x)=wx+b,使得f(x(i))f(x(i))与y(i)y(i)尽可能的接近。这里直线的函数表达式f(x)是我们建立的模型(model),而w,b则是模型中的参数,我们要对参数w和b做估计,使得整体的模型达到最优。
因此,基于上述的分析,我们可以构造一个目标/代价函数(cost function or loss function):
这里,我们是采用f(x(i))f(x(i))和y(i)y(i)的均方误差(即预测值和真实值的均方误差)作为模型的性能度量,显然,参数w和b最佳的解是:
事实上,均方误差在几何上对应着欧式距离,因此我们最小化L(w,b)L(w,b)求出最优的参数,相当于找到一条直线,使得所有样本点到该直线的欧式距离之和最小。
我们注意到(1)式的函数是一个下凸函数(类似于一个开口向上的二次函数),即L偏导数为0的点为最优解,推导过程如下:
联立(3)(4)式,即可解得:
其中x¯=1n∑ni=1x(i)x¯=1n∑i=1nx(i),这也就是我们的最小二乘法。
多元线性回归
下面我们讨论一种更为一般的情况,假设我们x(i)x(i)由d个属性描述,即x(i)=(x(i)1,x(i)2,…,x(i)d)Tx(i)=(x1(i),x2(i),…,xd(i))T,类似地,我们试图学得:
我们可以简化为向量形式:
其中w=(w1,w2,…,wd)Tw=(w1,w2,…,wd)T
在不引起混淆的情况下,我们大可这样简化(8)式:
其中x(i)=(1,x(i)1,x(i)2,…,x(i)d)Tx(i)=(1,x1(i),x2(i),…,xd(i))T,w=(w0,w1,w2,…,wd)Tw=(w0,w1,w2,…,wd)T,这里的w0w0就相当于(8)式的b。(注意这里x(i),wx(i),w的维数)
我们把所有的x(i)x(i)合并成矩阵XX:
同样的,令y=(y(1),y(2),…,y(n))Ty=(y(1),y(2),…,y(n))T
类似(1)式,我们构造一个代价函数:
同样的,我们对L(w)L(w)关于ww求偏导数:
令(11)式为0,解得:
注意:由(11)式为0解出(12)式的前提要求XTXXTX是可逆的
总结
线性回归模型虽然简单,但整个解法体现了机器学习尤其是监督学习模型解法的一个固定套路—对目标函数做最优化(当然这是一种频率派的解法,我们还会有贝叶斯学派的做法);多元线性回归的向量化思想也是十分重要。并且许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或者高位映射得到,比如说我们把一个线性组合映射到[0,1]上,那我们可以得到一个二分类模型(即逻辑回归)。