前言
回归方法是为了对连续性的数据做出预测,其中最简单的方法当然就是线性回归。顾名思义,线性回归就是用线性方程来对已知的线性方程进行拟合,用拟合出的线性方程对未知数据做出预测。线性回归的优点就是计算公式简单,计算结果容易理解;缺点就是对非线性的数据拟合程度不够好。例如用线性函数 f(x)=wx+b 去拟合二次函数 f(x)=x2 ,效果都不是太好。为了解决这些问题,出现了局部加权线性回归(locally weighted linear regression),岭回归(ridge regression),LASSO和前向逐步线性回归(forward stagewise linear regression)等等。
基本形式
给定由 d 个属性描述的示例 x=(x1,x2,...,xd) ,其中 xi 是 x 在第 i 个属性上的取值,线性回归试图学得一个通过属性的线性组合来进行预测的函数,即
f(x)=w1x1+w2x2+...+wdxd+b
可写成向量形式
f(x)=wTx+b
其中
w=(w1,w2,...,wd) ,
w 和
b 学得之后,模型也就确定了。
线性模型形式简单、易于建模,但是却蕴含了机器学习中一些重要的基本思想,许多功能强大的非线性模型就是在线性模型的基础上通过引入层级结构或高维映射得到的。此外,由于
w 直观表达了各属性在预测中的重要性,因此线性模型具有很好的可解释性,例如在西瓜问题中学得“
f好瓜(x)=0.2⋅x色泽+0.5⋅x根蒂+0.3⋅x敲声+1 ”,则意味着可通过综合色泽、根蒂和敲声来判断瓜好不好,其中根蒂最为重要,而敲声比色泽重要一些。
模型求解
一元线性回归
给定数据集 D={(x1,y1),(x2,y2),...,(xm,ym)} ,其中 xi=(xi1,xi2,...,xid) , yi∈R 。先考虑一种简单的情况:输入属性只有一个,即 D={(xi,yi)}mi=1 ,其中 xi∈R 。
线性回归试图学得
f(xi)=wxi+b,使得f(xi)≃yi
如何确定
w 和
b 呢,关键在于如何衡量
f(x) 与
y 之间的差别。均方误差是回归任务最常用的性能度量,均方误差也称平方损失(square loss),因此我们可试图让均方误差最小化,即
(w∗,b∗)=argmin(w,b)∑i=1m(f(xi)−yi)2
=argmin(w,b)∑i=1m(yi−wxi−b)2
w∗,b∗ 表示
w 和
b 的解。均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称“欧式距离”。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method)。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离最小。
求解
w 和
b 使
E(w,b)=∑mi=1(yi−wxi−b)2 最小化的过程,称为线性回归模型的最小二乘“参数估计”。将
E(w,b) 分别对
w 和
b 求导,得到
∂E(w,b)∂w=2(w∑i=1mx2i−∑i=1m(yi−b)xi)
∂E(w,b)∂b=2(mb−∑i=1m(yi−wxi))
令导数等于零可得到
w 和
b 最优解的闭式解也称为解析解
w=∑mi=1yi(xi−x¯)∑mi=1x2i−1m(∑mi=1)2
b=1m∑i=1m(yi−wxi)
其中
x¯=1m∑mi=1xi 为
x 的均值。
多元线性回归
更一般的情形是数据集中的数据是高维的。此时我们试图学得
f(xi)=wTxi+b,使得f(xi)≃yi
其中
w,xi∈Rd 。这称为“多元线性回归”。
类似的,可利用最小二乘法来对
w 和
b 进行估计。为便于讨论,我们把
w 和
b 放进向量形式
wˆ=(w,b) ,相应的,把数据集
D 表示为一个
m×(d+1) 大小的矩阵
X ,其中每一行对应于一个示例,该行前
d 的元素对应于示例的
d 个属性值,最后一个元素恒置为1,即
X=⎡⎣⎢⎢⎢x11x21...xm1x12x22...xm2............x1dx2d...xmd11...1⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢xT1xT2...xTm11...1⎤⎦⎥⎥⎥⎥
把类别标签也写成向量形式
y=(y1,y2,...,ym) ,由均方误差最小化准则,我们得到
wˆ∗=argminwˆ(y−Xwˆ)T(y−Xwˆ)
令
Ewˆ=(y−Xwˆ)T(y−Xwˆ) ,对
wˆ 求导得到
∂Ewˆ∂wˆ=2XT(Xwˆ−y)
具体的求导过程,可参考这篇文章
令上式为零可得到
wˆ 最优解的闭式解,但是由于涉及到矩阵逆的计算,比一元情形要复杂一些。下面我们做一些简单的讨论。
当
XTX 为满秩矩阵或正定矩阵时
wˆ∗=(XTX)−1XTy
其中
(XTX)−1 是矩阵
(XTX) 的逆矩阵。令
xˆi=(xi,1) ,则最终学得的线性回归模型为
f(xˆi)=xˆTi(XTX)−1XTy
然而,现实任务中
XTX 往往不是满秩的。例如我们在实际场景中,经常会遇到这样的数据集,数据的属性超过样例数,导致
X 的列数大于行数,
XTX 显然不满秩。此时可解出多个
wˆ ,他们都能使均方误差最小化。这是,通常的做法是引入正则化项,求解出最优解
wˆ 。也可以这样理解,当数据属性远多于样例数时,更容易出现过拟合,通过引入正则化项,得到稀疏解,降低过拟合的风险。
推广