机器学习之线性回归与代价函数

线性回归

这个算法会更了解监督学习过程完整的流程

通过一个例子来开始:(根据房屋的大小预测房屋的价格)

这个例子是预测住房价格的,我们要使用一个数据集,数据集包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。

比方说,如果你朋友的房子是 1250 平方尺大小,你要告诉他们这房子能卖多少钱。那么,你可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来看,也许你可以告诉你的朋友,他能以大约 220000(美元)左右的价格卖掉这个房子。这就是监督学习算法的一个例子。

对应的训练集:
在这里插入图片描述
通过训练集可以得到一个模型:(训练集来训练算法以达到给出房屋大小可以得出预测的价格)

ℎ 代表 hypothesis(假设),ℎ表示一个函数,输入是房屋尺寸大小,就像你朋友想出售的房屋,因此 ℎ 根据输入的 𝑥值来得出 𝑦 值,𝑦 值对应房子的价格 因此,ℎ 是一个从𝑥 到 𝑦 的函数映射

一种可能的表达方式为:ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥,因为只含有一个特征/输入变量,因此这样
的问题叫作单变量线性回归问题
在这里插入图片描述

代价函数

代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回归问题最常用的手段了

代价函数是为了使我们弄清楚如何把最有可能的直线与我们的数据相拟合。

通俗的说就是利用代价函数找到预测值与实际值差距最小的点

假设上面的线性回归中我们一个像那样的训练集,𝑚代表了训练样本的数量,比如 𝑚 = 47。

而我们的假设函数,也就是用来进行预测的函数,是这样的线性函数形式:ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥 (𝜃0 和 𝜃1为参数)

我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling error)
在这里插入图片描述
我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得代价函数J最小。
𝐽(𝜃0, 𝜃1) = 21𝑚 ∑ (ℎ𝜃(𝑥(𝑖)) − 𝑦(𝑖))2 𝑚𝑖=1
例如这样的一个图:x轴是𝜃0,y轴是𝜃1,z轴是代价函数值。可以看到该三维空间中存在一个使得𝐽(𝜃0, 𝜃1)最小的点
在这里插入图片描述

梯度下降

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数𝐽(𝜃0, 𝜃1) 的最小值

思想

思想是:开始时我们随机选择一个参数的组合(𝜃0, 𝜃1, . . . . . . , 𝜃𝑛),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。

从不同的点可以到达不同的局部最小值。

在这里插入图片描述
批量梯度下降(batch gradient descent)算法的公式为:
在这里插入图片描述

  • 𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数

    如果𝑎太小了,即我的学习速率太小,结果就是只能这样像小宝宝一样一点点地挪动,去努力接近最低点,这样就需要很多步才能到达最低点,所以如果𝑎太小的话,可能会很慢,因为它会一点点挪动,它会需要很多步才能到达全局最低点。

    如果𝑎太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移
    动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来越远,所以,如果𝑎太大,它会导致无法收敛,甚至发散。

  • 𝑎后面的东西是导数,其实就是该点的斜率。

注意:梯度下降算法在这个表达式中,如果你要更新这个等式,你需要同时更新𝜃0和𝜃1,我的意思是在这个等式。

梯度下降的线性回归

根据线性回归与梯度下降的两个公式,进行带入:

在这里插入图片描述
就可以根据两个参数的取值带入公式,便可直接根据公式进行取值:

j = 0 的时候,说明是对𝜃0求导

j = 1 的时候,说明是对𝜃1求导
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值