线性回归

线性回归是利用回归分析来确定各变量之间关系的算法,属于线性模型。当变量之间的关系满足如下表达式:

$w_1x_1+w_2x_2+\ldots+w_mx_m+w_0=0\tag{1}$

即表明变量$\vec{x}$满足线性关系。在建立这种关系后只要确定$\vec{w}$,线性模型便得以确定。

给定数据集$D=\{(\vec{x_1},y_1),(\vec{x_2},y_2),\ldots,(\vec{x_m},y_m)\}$,其中$\vec{x_i}=\{x_i^1;x_i^2;\ldots;x_i^n\}$。$\vec{x_i}$是样本特征,$y_i$是样本标记。线性回归即是找到$\vec{x}$与$y$存在的线性关系,从而对新的特征$\vec{x_{new}}$,来对其标记$y_{new}$进行预测。

线性回归所假设的模型为:

$h(\vec{x})=\vec{w}^T\vec{x}+w_0\tag{2}$

即输入样本特征$\vec{x}$,通过线性模型$h(\vec{x})$来对其标记$y$进行预测。考虑最简单的一元线性模型:

$h(x_i)=wx_i+w_0\tag{3}$

对应的样本点与线性模型如图1所示:

图1 一元线性模型拟合的样本

在图1中,蓝色的圆点表示一元线性模型要去拟合的样本$x_i$,黄色的线表示对样本$x_i$进行回归拟合后的线性模型。具体地,一元线性回归的任务为找到式(3)中参数$w$与$w_0$的最优解,使得所假设的线性模型能够在很好的拟合样本数据的同时,对于新的数据$x_{new}$,同样能够给出准确的预测。

式(3)中,模型对于数据集中$x_i$的预测值为$h(x_i)$,样本$x_i$的真实值为$y$,$h(x_i)-y$表达了预测值与真实值之间的距离,可以使用平方误差来衡量模型预测值与真实值之间的差距。使用最小二乘法来对式(3)进行参数估计,对其平方误差进行最小化来求解$w$与$w_0$,记损失函数为$J$:

$
\begin{align}
​J(w)&=\sum_{i=1}^m(h(x_i)-y_i)^2\\
&=\sum_{i=1}^m(w{x_i}+w_0-y_i)^2\tag{4}
\end{align}
$

$J(w)$分别对$w_0$和$w$求偏导,得:

$
\begin{align}
\frac{\partial{J(w)}}{\partial{w_0}}&=2(mw_0-\sum_{i=1}^m(y_i-wx_i))\tag{5}\\
\frac{\partial{J(w)}}{\partial{w}}&=2({w\sum_{i=1}^mx_i^2-\sum_{i=1}^m(y_i-w_0)x_i})\tag{6}
\end{align}
$

令式(5)为零,得:

$
\begin{align}
&2(mw_0-\sum_{i=1}^m(y_i-wx_i))=0\\
\Rightarrow&mw_0=\sum_{i=1}^m(y_i-wx_i))\\
\Rightarrow&w_0=\frac{1}{m}\sum_{i=1}^m(y_i-wx_i)\tag{7}
\end{align}
$

令式(6)为零,得:

$
\begin{align}
&2({w\sum_{i=1}^mx_i^2-\sum_{i=1}^m(w_0-y_i)})=0\\
\Rightarrow&w\sum_{i=1}^mx_i^2=\sum_{i=1}^m(w_0-y_i))\\
\Rightarrow&w\sum_{i=1}^mx_i^2=\sum_{i=1}^mx_iy_i-\sum_{i=1}^mw_0x_i\\
\Rightarrow&w\sum_{i=1}^mx_i^2=\sum_{i=1}^mx_iy_i-\sum_{i=1}^m(\frac{1}{m}\sum_{i=1}^m(y_i-wx_i))x_i\\
\Rightarrow&w\sum_{i=1}^mx_i^2=\sum_{i=1}^mx_iy_i-\sum_{i=1}^m\frac{1}{m}\sum_{i=1}^my_i+\sum_{i=1}^mx_iw\frac{1}{m}\sum_{i=1}^mx_i\\
\Rightarrow&w\sum_{i=1}^mx_i^2-w\frac{1}{m}(\sum_{i=1}^m)^2=\sum_{i=1}^mx_iy_i-\frac{1}{m}\sum_{i=1}^my_i\\
\Rightarrow&w(\sum_{i=1}^mx_i^2-\frac{1}{m}(\sum_{i=1}^mx_i)^2)=\sum_{i=1}^mx_iy_i-\sum_{i=1}^m\bar{x}y_i\\
\Rightarrow&w=\frac{\sum\limits_{i=1}^my_i(x_i-\bar{x})}{\sum\limits_{i=1}^mx_i^2-\frac{1}{m}(\sum\limits_{i=1}^mx_i)^2}\tag{8}
\end{align}
$

式(7)为$w_0$的最优解,式(8)为$w$的最优解。将$w_0$与$w$带入式(3)假设$h$中即可得到拟合数据集的线性回归模型。

可以设该模型的损失函数为:

$J(w)=\frac{1}{2}\sum\limits_{i=1}^m(h(\vec{x_i})-y_i)^2$

使损失函数最小化便可使线性模型最大程度拟合数据。使用梯度下降法来进行参数$\vec{w}$的求解,具体的,参数$\vec{w}$的更新公式为:

$w_j:=w_j-\alpha\frac{\partial{J(\vec{w})}}{\partial{w_j}}$

上式中,$\alpha$为学习率。$w_j$的更新需要确定$\frac{\partial{J(\vec{w})}}{\partial{w_j}}$,对$J(\vec{w})$求$w_j$的偏导:

$\frac{\partial{J(\vec{w})}}{\partial{w_j}}$

版权声明:本文为博主原创文章,未经博主允许禁止转载。

如转载,请经过博主允许,请注明出处:http://www.akoukou.com/linear-regression/

Leave a Reply

Close Menu