正则化的线性回归
在矩阵运算的博文中,推导了局部加权线性回归,其实它是为了解决过拟合(over-fitting)和欠拟合(under-fitting)的问题.这里介绍另外一种线性回归解决该问题的方法——正则化的线性回归(Regularized linear regression)$ $
原理推导
首先看一下数据:
对于上面的数据,如果我们使用一条直线来拟合,那么肯定是欠拟合;但是如果我们使用高次方程,那么会不会出现过拟合的问题了?
假设方程为:
\[ h_{\theta}(x)=\theta_{0}+\theta_{1}x+\theta_{2}x^{2}+\theta_{3}x^{3}+\theta_{4}x^{4}+\theta_{5}x^{5} \]
按照最小二乘法,有:
\[ J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2} \]
那我们是怎么解决上述的过拟合问题了?
其实也很简单,就是在\(J(\theta)\)中加入正则化项:
\[ J(\theta)=\frac{1}{2m}[\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}+\lambda \sum_{j=1}^{n}\theta_{j}^{2}] \]
不过值得注意的是正则化的\(\theta\)是从1开始而不是0
接下来还是要给出矩阵的表达式:
\[ \begin{align} &J(\theta)=\frac{1}{2m}[(X\theta-y)^{T}(X\theta-y)+\lambda \phi^{T}\phi]\\ 其中:\\ &\phi=\begin{bmatrix} 0\\ \theta_{1}\\ \theta_{2}\\ \theta_{3}\\ \theta_{4}\\ \theta_{5} \end{bmatrix}=\begin{bmatrix} 0& & & & \\ & 1& & & \\ & & 1& & \\ & & & 1& \\ & & & & 1 \end{bmatrix}*\begin{bmatrix} \theta_{0}\\ \theta_{1}\\ \theta_{2}\\ \theta_{3}\\ \theta_{4}\\ \theta_{5} \end{bmatrix}=\begin{bmatrix} 0& & & & \\ & 1& & & \\ & & 1& & \\ & & & 1& \\ & & & & 1 \end{bmatrix}*\theta\\ 令:\\ &A=\begin{bmatrix} 0& & & & \\ & 1& & & \\ & & 1& & \\ & & & 1& \\ & & & & 1 \end{bmatrix} \end{align} \]
综上:
\[ J(\theta)=\frac{1}{2m}[(X\theta-y)^{T}(X\theta-y)+\lambda\theta^{T}A\theta] \]
最后还是归结于求偏导数的问题:
\[ \begin{align} \frac{\partial J(\theta)}{\partial \theta}&=\frac{1}{2m}[2X^{T}X\theta-2X^{T}y+2\lambda A\theta]\\ \\ &=\frac{1}{m}[X^{T}X\theta-X^{T}y+\lambda A\theta]\\ \\ &=0 \end{align} \]
最后:
\[ \begin{align} \theta&=(X^{T}X+\lambda A)^{-1}X^{T}y\\ \\ &=(X^{T}X+\lambda \begin{bmatrix} 0 & & & & \\ & 1& & & \\ & & 1& & \\ & & & 1& \\ & & & & 1 \end{bmatrix})^{-1}X^{T}y \end{align} \]
代码实现
这里使用normal equation的实现方法,需要说明的是\(\lambda\)是很关键的