机器学习-多元线性回归

假设一组包含多个特征的数据满足如下关系:

在这里插入图片描述
机器学习-多元线性回归_第1张图片
在上式中,n为特征数量,m为样本数量。(3)式又叫损失函数。

目的

通过梯度下降来确定(2)式中参数的值使(3)式的值最小。

梯度下降

由微积分的知识可知,导数的数学意义是当前点所在的斜率。
机器学习-多元线性回归_第2张图片
假设当前所处位置在1处,我们令h(x)进行如下变换
机器学习-多元线性回归_第3张图片
变换之后可以得知,h(x)会想谷底处移动。

假设当前所处位置在2处,我们也令h(x)进行如下变换
机器学习-多元线性回归_第4张图片
因为此时h(x)的导数小于0,减去起导数后,仍会使h(x)向谷底处移动。

综上,我们对损失函数求其偏导。
机器学习-多元线性回归_第5张图片
我们便可得出每一个参数的更新式子:
机器学习-多元线性回归_第6张图片

在上式中,α为学习率,j的取值在0-n之间。学习率的作用在于,控制更新速度,以免造成损失函数越过谷底的情况,如下图。
机器学习-多元线性回归_第7张图片

我们进一步对更新式进行推导
首先,h(x)可以看做两个矩阵的乘积机器学习-多元线性回归_第8张图片
则,我们将偏导式展开
机器学习-多元线性回归_第9张图片
机器学习-多元线性回归_第10张图片

机器学习-多元线性回归_第11张图片
则更新式可看做矩阵与矩阵之间的加减
在这里插入图片描述
将数学问题通过矩阵角度来思考可大大减少代码的编写速度。

正规方程

除了梯度下降以外我们还有另一种方法来找到每一个参数的值,该方法不需要预设参数值,可直接得出结果,推导如下。
机器学习-多元线性回归_第12张图片
通过上式可很轻松的得出参数值,不过考虑到求逆函数的时间复杂度一般为特征数量的三次方,在特征数量十分大时,用梯度下降效率会更高。

小技巧

当样本中的某些特征区间与其他特征相差很大时,不妨使用归一化的方法来使他们处于同一区间范围内。这样可以使得梯度下降的收敛速度更快。

归一化

归一化的方法有很多种,列如
在这里插入图片描述
即先减去当前特征的平均值,之后在除以其标准差。

以上关于梯度下降和正规方程的实现以上传至git,见下链接。

梯度下降与正规方程的实现

如有不对请指正,欢迎大家讨论。

你可能感兴趣的:(机器学习,线性回归)