Home 线性回归小结
Post
Cancel

线性回归小结

线性回归可以说是机器学习中最基本的问题类型了,这里就对线性回归的原理和算法做一个小结。

1. 线性回归的模型函数和损失函数

线性回归遇到的问题一般是这样的。我们有m个样本,每个样本对应于n维特征和一个结果输出,如下:

  $(x_1^{(0)}, x_2^{(0)}, …x_n^{(0)}, y_0), (x_1^{(1)}, x_2^{(1)}, …x_n^{(1)},y_1), … (x_1^{(m)}, x_2^{(m)}, …x_n^{(m)}, y_n)$

我们的问题是,对于一个新的$(x_1^{(x)}, x_2^{(x)}, …x_n^{(x)})$, 他所对应的$y_x$是多少呢? 如果这个问题里面的y是连续的,则是一个回归问题,否则是一个分类问题。

对于n维特征的样本数据,如果我们决定使用线性回归,那么对应的模型是这样的:

  $h_\theta(x_1, x_2, …x_n) = \theta_0 + \theta_{1}x_1 + … + \theta_{n}x_{n}$, 其中$\theta_i (i = 0,1,2… n)$为模型参数,$x_i (i = 0,1,2… n)$为每个样本的n个特征值。这个表示可以简化,我们增加一个特征$x_0 = 1$ ,这样$h_\theta(x_0, x_1, …x_n) = \sum\limits_{i=0}^{n}\theta_{i}x_{i}$。

进一步用矩阵形式表达更加简洁如下:

​ $h_\mathbf{\theta}(\mathbf{X}) = \mathbf{X\theta}$

其中, 假设函数$h_\mathbf{\theta}(\mathbf{X})$为mx1的向量,$\mathbf{\theta}$为nx1的向量,里面有n个代数法的模型参数。$\mathbf{X}$为mxn维的矩阵。m代表样本的个数,n代表样本的特征数。

得到了模型,我们需要求出需要的损失函数,一般线性回归我们用均方误差作为损失函数。损失函数的代数法表示如下:

    $J(\theta_0, \theta_1…, \theta_n) = \sum\limits_{i=0}^{m}(h_\theta(x_0, x_1, …x_n) - y_i)^2$

进一步用矩阵形式表达损失函数:

    $J(\mathbf\theta) = \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y})$

由于矩阵法表达比较的简洁,后面我们将统一采用矩阵方式表达模型函数和损失函数。

2. 线性回归的算法

对于线性回归的损失函数$J(\mathbf\theta) = \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y})$,我们常用的有两种方法来求损失函数最小化时候的$\mathbf{\theta}$参数:一种是梯度下降法,一种是最小二乘法。由于已经在其它篇中单独介绍了梯度下降法和最小二乘法,可以点链接到对应的文章链接去阅读。

如果采用梯度下降法,则$\mathbf{\theta}$的迭代公式是这样的:

   $\mathbf\theta= \mathbf\theta - \alpha\mathbf{X}^T(\mathbf{X\theta} - \mathbf{Y})$

通过若干次迭代后,我们可以得到最终的$\mathbf{\theta}$的结果

如果采用最小二乘法,则$\mathbf{\theta}$的结果公式如下:

    $\mathbf{\theta} = (\mathbf{X^{T}X})^{-1}\mathbf{X^{T}Y}$

当然线性回归,还有其他的常用算法,比如牛顿法和拟牛顿法,这里不详细描述。

3.线性回归的推广:多项式回归

回到我们开始的线性模型,$h_\theta(x_1, x_2, …x_n) = \theta_0 + \theta_{1}x_1 + … + \theta_{n}x_{n}$, 如果这里不仅仅是x的一次方,比如增加二次方,那么模型就变成了多项式回归。这里写一个只有两个特征的p次方多项式回归的模型:

   $ h_\theta(x_1, x_2) = \theta_0 + \theta_{1}x_1 + \theta_{2}x_{2} + \theta_{3}x_1^{2} + \theta_{4}x_2^{2} + \theta_{5}x_{1}x_2$

我们令$x_0 = 1, x_1 = x_1, x_2 = x_2, x_3 =x_1^{2}, x_4 = x_2^{2}, x_5 = x_{1}x_2$ ,这样我们就得到了下式:

    $h_\theta(x_1, x_2) = \theta_0 + \theta_{1}x_1 + \theta_{2}x_{2} + \theta_{3}x_3 + \theta_{4}x_4 + \theta_{5}x_5$

可以发现,我们又重新回到了线性回归,这是一个五元线性回归,可以用线性回归的方法来完成算法。对于每个二元样本特征$(x_1,x_2)$,我们得到一个五元样本特征$(1, x_1, x_2, x_{1}^2, x_{2}^2, x_{1}x_2)$,通过这个改进的五元样本特征,我们重新把不是线性回归的函数变回线性回归。

4.线性回归的推广:广义线性回归

在上一节的线性回归的推广中,我们对样本特征端做了推广,这里我们对于特征y做推广。比如我们的输出$\mathbf{Y}$不满足和$\mathbf{X}$的线性关系,但是$ln\mathbf{Y} $和$\mathbf{X}$满足线性关系,模型函数如下:

    $ln\mathbf{Y} = \mathbf{X\theta}$

这样对与每个样本的输入y,我们用 lny去对应, 从而仍然可以用线性回归的算法去处理这个问题。我们把 Iny一般化,假设这个函数是单调可微函数$\mathbf{g}(.)$,则一般化的广义线性回归形式是:

    $\mathbf{g}(\mathbf{Y}) = \mathbf{X\theta} $或者 $\mathbf{Y} = \mathbf{g^{-1}}(\mathbf{X\theta}) $

这个函数$\mathbf{g}(.)$我们通常称为联系函数。

5.线性回归的正则化

为了防止模型的过拟合,我们在建立线性模型的时候经常需要加入正则化项。一般有L1正则化和L2正则化。

线性回归的L1正则化通常称为Lasso回归,它和一般线性回归的区别是在损失函数上增加了一个L1正则化的项,L1正则化的项有一个常数系数$\alpha$来调节损失函数的均方差项和正则化项的权重,具体Lasso回归的损失函数表达式如下: \(J(\mathbf\theta) = \frac{1}{2n}(\mathbf{X\theta} -\mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y}) + \alpha||\theta||_1\) 其中n为样本个数,$\alpha$为常数系数,需要进行调优。$||\theta||_1$为L1范数。

Lasso回归可以使得一些特征的系数变小,甚至还是一些绝对值较小的系数直接变为0。增强模型的泛化能力。

Lasso回归的求解办法一般有坐标轴下降法(coordinate descent)和最小角回归法( Least Angle Regression),由于它们比较复杂,在这篇文章单独讲述: 线程回归的正则化-Lasso回归小结

线性回归的L2正则化通常称为Ridge回归,它和一般线性回归的区别是在损失函数上增加了一个L2正则化的项,和Lasso回归的区别是Ridge回归的正则化项是L2范数,而Lasso回归的正则化项是L1范数。具体Ridge回归的损失函数表达式如下:
\(J(\mathbf\theta) = \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y}) + \frac{1}{2}\alpha||\theta||_2^2\) 其中$\alpha$为常数系数,需要进行调优。 $||\theta||_2$为L2范数。

Ridge回归(岭回归)在不抛弃任何一个特征的情况下,缩小了回归系数,使得模型相对而言比较的稳定,但和Lasso回归比,这会使得模型的特征留的特别多,模型解释性差。

Ridge回归的求解比较简单,一般用最小二乘法。这里给出用最小二乘法的矩阵推导形式,和普通线性回归类似。

令$J(\mathbf\theta)$的导数为0,得到下式:

    $\mathbf{X^T(X\theta - Y) + \alpha\theta} = 0$

整理即可得到最后的$\theta$的结果:

    $\mathbf{\theta = (X^TX + \alpha E)^{-1}X^TY}$

其中E为单位矩阵。

 

除了上面这两种常见的线性回归正则化,还有一些其他的线性回归正则化算法,区别主要就在于正则化项的不同,和损失函数的优化方式不同,这里就不累述了。

6. 进一步思考

  1. 为什么线性回归是无偏估计,而ridge是有偏估计

答:一般基于最小二乘法的回归都是无偏估计。这是因为:

\[\begin{align*} θ' &= (X^TX)^{-1}X^TY \\ &= (X^TX)^{-1}X^T(Xθ + U) \\ &= (X^TX)^{-1}X^TXθ + (X^TX)^{-1}X^TU \\ &= θ + (X^TX)^{-1}X^TU \end{align*}\]

两边取期望有:

$E(θ’) = θ + (X^TX)^{-1}X^TE(U) = θ$

由于最小二乘法的残差符合正态分布,所以这里$E(U) = 0$

而Ridge回归

\[\begin{align*} θ' &= (X^TX+\alpha E)^{-1}X^TY \\ &= (X^TX+\alpha E)^{-1}X^T(Xθ + U) \\ &= (X^TX+\alpha E)^{-1}X^TXθ + (X^TX+\alpha E)^{-1}X^TU \end{align*}\]

两边取期望有:

$E(θ’) = (X^TX+\alpha E)^{-1}X^TXθ$不等于θ


参考文献:https://www.cnblogs.com/pinard/p/6004041.html

This post is licensed under CC BY 4.0 by the author.

梯度下降小结

逻辑回归小结