机器学习——单变量线性回归

Linear regression with one variable

本文主要介绍单变量线性回归的解决方法以及方法的思想。

综述

以预测房价为例,我们要进行如下步骤:

在这里插入图片描述
简单来说,我们把数据集(训练集)在二维平面上标记出来,尝试用一条直线去拟合数据并尽量拟合的好,那么我们预测房价时,只需输入x(某一特征,比如面积),就可根据那条直线得出预测的房价(y)。比如:

在这里插入图片描述
假设上面图中那条黑线就是拟合最好的直线,那么如果我们想知道一间面积为750单位的房子价格为多少,通过线性回归后我们就可以得出大概:
在这里插入图片描述
以上,就是对线性回归的大体认识,接下来开始进行一步一步的分析。

代价函数(Cost Function)

代价函数:又叫损失函数或成本函数,它是将一个或多个变量的事件阈值映射至直观地表示该事件。如果不懂,没有关系,我们只需要知道它是用来找到最优解地目的函数就行了。

在单变量线性回归中,以上面的例子为例,我们只有一个特征即房价,用来拟合数据的是一条直线,那么我们可以得出假设函数(Hypothesis):

在这里插入图片描述

而我们要做的,就是找出两个参数的值,使假设函数更好地拟合训练集。
在单变量线性回归中,我们定义代价函数如下:

在这里插入图片描述

在线性回归中,我们要解决的就是一个最小化问题,即减小来自训练集的真实值y与我们假设函数输出的预测值h(x)的差的平方,对所有训练集中的样本进行以上操作,即公式中的求和部分。不要忘了我们的目标:找到能使预测值和真实值的差的平方和的1/2m最小的两个θ值。

梯度下降(Gradient descent)

我们已经有了代价函数J,我们想要找到使J最小的两个θ值,那么我们如何做呢?这里要介绍一下一种常见的算法——梯度下降,它不仅被用在线性回归中,还被广泛适用于机器学习的众多领域。
那么梯度下降到底是什么呢?
梯度下降的思想是:

  • 我们给定两个θ的初始值,通常令两个θ等于0;
  • 我们不停地一点点改变两个θ值,使J变小,直到找到J的最小值或者局部最小值。

用例子来解释一下:

在这里插入图片描述
假如这是我们想要进行梯度下降优化的函数,假设我们此时站在左边的顶部红色区域,我们现在想要下去,我们站在顶部,环顾四周,如果要在某个方向上走一步,我应该走哪里呢?重复这个问题,直到我们下去为止,路径是这样的:

在这里插入图片描述

就是:重复至收敛
给出公式:
在这里插入图片描述

其中“:=”是一个赋值运算符,其中α为学习率:它用来控制梯度下降时,我们迈出多大的“步子”,若α很大,梯度下降会很快。对于高数好一点的同学来讲,这个公式这并不难懂,我们用单变量来理解一下:

在这里插入图片描述
红框的部分代表的就是那一点的斜率,此时斜率为负值,那么θ会变大,即往右边挪,这不正是我们想要的吗?让θ挪动至那个“碗底”。再来看一个例子:

在这里插入图片描述
此时,斜率为正数,随着迭代次数的增长,θ会变小,最终我们得到使J(θ)最小的θ值。

以上,就是梯度下降的基本思想,接下来我们就把梯度下降带到线性回归中吧!

单变量线性回归的梯度下降

我们结合梯度下降和代价函数即可得到一个线性回归算法,用直线模型来拟合数据。
结合上面那两个公式,我们可以得到:

在这里插入图片描述
如果有兴趣可以进一步算下去,毕竟这是微积分的知识,如果不会算,直接看下面然后掌握就行了:
在这里插入图片描述
记住在梯度下降时要同步更新!
另外一点:不用担心陷入局部最优的问题(即从不同的点出发会得到不同的结果),因为线性回归的代价函数总是像下图一样的弓状函数,这个函数无局部最优解,只有一个全局最优,只要使用梯度下降,它总会收敛至全局最优:

在这里插入图片描述
单变量线性回归的介绍就到这里啦!手打公式真的太麻烦了,如果觉得有用就给我个赞吧,下一次我会带大家做一个实例来更深的认识线性回归,我也会尽快更新多变量线性回归的。
我也是一名学生,如果有建议或者问题请联系[email protected],同时还请您关注我的公众号以便第一时间获取最新文章,我们一起进步!
在这里插入图片描述

感谢您的阅读!如需转载,请注明原文出处,作者:vergilben

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章