小wind的机器学习笔记(二):通俗易懂的线性回归讲解Part1

线性回归介绍

上一篇博客我们提到回归的目的是预测数值型的目标值,它的目标是接受连续数据,寻找最适合数据的方程,并能够对特定值进行预测。
回归这个词可能大家在刚接触的时候会感觉比较陌生,似乎是一个难理解的概念。其实回归很简单。举个例子,我有一套在广州天河的房子,面积135平米的(当然我现在还很穷买不起),想要出手转让,那我应该定一个怎么样的价格最合适呢?

面积价格
120213万
92177万

这时候我们就可以获取天河区的房子数据集,多少平米(详细的还有多少房间、地理位置、层数等等)对应出售价多少的数据,然后根据这些数据进行回归拟合,得到最适合数据的方程式,然后将我自己房子的信息输入进行,预测其价格应该为多少。

假设函数定义

一般而言,我们知道房子越大,价格越高。所以我们可以认为价格和房子面积是线性相关的。将横轴设为x,代表房屋面积,纵轴设为h(x),代表房屋价格。我们现在知道了房屋的面积x,可以用这种线性关系去预测房屋价格。
在这里插入图片描述
因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。公式中的 θ \theta θ是我们模型要去计算拟合的参数。个人理解上,跟自变量相乘的 θ 1 \theta_1 θ1的作用是调整直线的斜率,使得 h θ ( x ) h_{\theta}(x) hθ(x)更加拟合数据集的分布和形状,而偏置常数项 θ 0 \theta_0 θ0的作用是平移直线所在的位置在这里插入图片描述
图中蓝点是原始数据集,而红线是我们拟合出来的直线, θ 1 \theta_1 θ1是直线的斜率,而 θ 0 \theta_0 θ0的作用是使线平移至合适的位置(如果不使用 θ 0 \theta_0 θ0,则直线永远经过原点。

代价函数

我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差( modeling error)。为了更好的拟合数据完善模型,那么就要使得建模误差最小。因为我们可以引入代价函数来衡量建模误差。
在这里插入图片描述

什么是代价函数?

代价函数就是用于找到最优解的目的函数,这也是代价函数的作用,将实际数据给出的值与我们拟合出的线的对应值做差,求出我们拟合出的直线与实际的差距
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2
代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。平方误差代价函数是机器学习最常用的代价函数,个人理解的原因是平方后的代价函数其导数为顺滑的一阶导数,更方便进行梯度下降,其函数最小点也更加显而易见。如图,我们可以通过最小化代价函数找到 J θ J_{\theta} Jθ最小的点对应的 θ 1 \theta_1 θ1值。那么怎么最小化代价函数呢?

在这里插入图片描述

梯度下降初介绍

梯度下降是一个用来求函数最小值的算法,我们可以使用梯度下降算法来求出代价函数J的最小值。
这里引用吴恩达老师对梯度下降的解释:

  1. 开始时我们随机选择一个参数的组合 ( θ 0 , θ 1 , … … , θ n ) \left(\theta_{0}, \theta_{1}, \ldots \ldots, \theta_{n}\right) (θ0,θ1,,θn),计算代价函数。
  2. 然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到达一个局部最小值( local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值( global minimum)。
  3. 选择不同的初始参数组合,可能会找到不同的局部最小值。
    在这里插入图片描述

更加形象的解释就是:我们站在山中比较高的某一个地方,我想要快速下山我应该怎么做?那么最简单的,我们应该环顾四周360度,左边是上坡路,右边是比较平缓的下坡路,后面是比较斜的下坡路。如果只考虑速度的话,我们的最佳下山方向应该是比较斜的下坡路,这可以让我们走得更快。当我们往这条路走了几步后,周围的环境又变了,这是我们又需要环顾四周,判断最快的下山方向,又迈进一小步,反复循环,直到你接近局部最低点的位置。

梯度下降的公式如下,其中 α \alpha α是学习率,学习率决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,大了可能一下子踏错了,小了下山的速度就很慢。

每次梯度下降都是寻找所在位置的导数方向。公式中减去这点的导数的意义,就代表向不同方向踏步(左右)。我们学过,向右导数为正则是上升方向,代表着误差上升,就往左踏步。相反,导数为负则代表向右方向是误差下降方向,则公式中的减号会让我们往右方向踏步。
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) (  for  j = 0  and  j = 1 ) \theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad(\text { for } j=0 \text { and } j=1) θj:=θjαθjJ(θ0,θ1)( for j=0 and j=1)

这样经过大量的迭代后,代价函数的误差就会逐渐达到局部最小值甚至是全局最小值,我们拟合的直线效果越来越好,那么预测的房价也将越来越准确。具体梯度下降过程中的数学原理,我们会在Part2更进一步进行介绍!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值