《机器学习基石》9-Linear Regression

这一节主要介绍线性回归算法。

Linear Regression Problem

对于输出空间 Y=R 的一类问题,一个比较简单的想法就是:将 Linear Classification 的决策函数中的 sign 函数去掉,使用各种特征的加权结果来表示 y

yi=0dwixi=wTx
这就是线性回归算法,它的假设空间为
h(x)=wTx
线性回归的目标是寻找一条直线 (R2) 或者一个平面 (R3)或者超平面(Rn),使得误差最小,常用的误差函数是平方误差
Ein(w)=1Nn=1N(h(xn)yn)2
Eout(w)=ϵ(x,y)P(wTxy)

Linear Regression Algorithm

Ein 写成矩阵形式

Ein(w)=1Nn=1N(h(xn)yn)2=1Nx1Twy1x2Twy2xNTwyN2=1NXwy2

其中
X=[x1T,1x2T,1xNT,1]RN×(d+1)
wR(d+1)×1
yRN×1

我们的目标是找到一个 w,使得 Ein(w) 尽可能小。因此,将 Ein(w)w 求导,得到:
Ein(w)=2NXT(Xwy)
Ein(w)=0,得到 w 的最优解
wLIN=(XTX)1XTy=Xy
其中
X=(XTX)1XT
称为矩阵 X 的伪逆,于是
h(x)=wLINTx

将上面做一个小结,得到 Linear Regression 算法的流程如下:
《机器学习基石》9-Linear Regression

Generalization Issue

下面我们来分析一下 Linear Regression 的 Ein

Ein(wLIN)=1N||yy^||2=1N||yXXy||2=1N||(IH)y||2
其中 H=XX 是投影矩阵,把 y 投影到 Xd+1 个向量构成的平面上,H 有如下的性质:

  • 对称性 H=HT
  • 幂等性 H2=H
  • 半正定性 λi0
  • trace(IH)=N(d+1)

《机器学习基石》9-Linear Regression
假设 y=f(X)+noise,f(x)span,那么如上图所示,有

Ein(wLIN)=1N||(IH)y||2=1N||(IH)noise||2=1Ntrace(IH)||noise||2=1N(N(d+1))||noise||2
得到:
Ein(wLIN)=||noise||2(1d+1N)
Eout(wLIN)=||noise||2(1+d+1N)

《机器学习基石》9-Linear Regression
两者最终都向 σ2 (noise level)收敛,差距是 2(d+1)N,因此说明算法是可行的。

Linear Regression for Binary Classification

对比一下 Linear Classification 与 Linear Regression:

  • Linear Regression
    • 用于分类问题
    • Y={+1,1}
    • h(x)=sign(wTx)
    • NP-hard,难于求解
  • Linear Regression
    • 用于回归问题
    • Y=R
    • h(x)=wTx
    • 易于求解

因为

err0/1=[[sign(wTx)y]]errsqr=(wTxy)2
所以可以将 Linear Regression 用于分类问题上:

  1. run Linear Regression on binary classification data D
  2. return g(x)=sign(wLINTx)

以上便是 Linear Regression 的内容。