机器学习笔记01-单变量线性回归以及代价函数

开篇:一枚热爱机器学习的菜鸟程序员,通过学习吴恩达教授的机器学习课程,总结归纳一些重要知识点及自己的感悟。文中有错误或不足之处,希望大家批评指正!内容较浅显,适合和我一样的萌新…
在这里插入图片描述

常见名词

在机器学习过程中会遇到很多数学公式、字母、英文单词等,记住一些常见名词还是很有必要滴,这样在后续的学习过程中,能帮助我们快速理解一些公式的含义。
话不多说,直接上图,图中是一个”俄勒冈州的波特兰“(地区)房价与房屋大小关系的例子。其中涉及5个参数,分别为 m m m x x x y y y x ( i ) x^{(i)} x(i) y ( i ) y^{(i)} y(i),只是普遍表示形式,并不是所有的都以此为准。
吴恩达机器学习笔记图
m m m:表示训练样本数量。比如现在已知有47对房屋大小与对应房价,那么此时样本数量 m m m就等于47;
x x x:表示自变量。也就是图中所示的输入特征房屋大小;
y y y:表示因变量。也就是图中所示的输出特征房屋价格,它随着 x x x(房屋大小)的改变而改变;
x ( i ) x^{(i)} x(i):表示训练样本中第 i i i个自变量对应的值。如图 x ( 1 ) x^{(1)} x(1)=2104;
y ( i ) y^{(i)} y(i):表示训练样本中第 i i i个因变量对应的值。如图 y ( 1 ) y^{(1)} y(1)=460。
好了,大概了解一下就进入今天的主题:最基础的监督学习模型之一线性回归模型

监督学习

为什么说线性回归是监督学习中最基础的模型之一呢?当然是因为它简单了,就和数学中的函数一样,一次函数最基础也最好学。如果连这个都搞不懂的话,emmm,那指定是没好好学!
监督学习:我的理解就是借鉴之前已有的经验去完成某件事。重点就是需要有已有的经验,也就是说需要有训练样本。我们依照经验分析完成这件事并得到结果的过程,其实就是监督学习所要做的事情。

正规点的解释“监督学习”:利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,称为监督训练,该过程中有指导者。对于给出的数据集中的每个样本有相应的“正确答案”。
监督学习主要有两种:分类(classification)和回归(regression)。

现在再来理解一下我给出的解释,分析一下样本、输入、输出分别是什么呢?
样本:已有的经验,比如有三个朋友在同一城市分别买了80平(100w)、90平(110w)、110平(160w)的房子;
输入:这件事,比如这件事就是我想了解该城市100平房子的价格;
输出:完成这件事的结果,通过朋友买房的经验,我推测该城市100平房子为140w。
[注]:此处的栗子只是监督学习中的一种,属于监督学习中的回归问题。

线性回归

线性回归:吴恩达教授在授课中解释“回归”指的是可以预测出一个具体的数值输出,那么如何预测出具体输出呢?就是依据输入和输出之间呈现的线性关系。
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
以房屋大小与价格为例, 如上图所示,图中横坐标 x x x为房屋大小, y y y为对应尺寸的价格,图中红色×为已知的数据集(图1);此时,我们想知道数据集中从未出现过的房屋大小(100平)的价格是多少该怎么办呢?其实我们只需要根据已有的数据集,大致推断出一个模型就可以了(图2中的绿色线);根据这个模型我们可以大致推断出100平房屋的价格是100w(图3所示)。
总结一下也就是下边这张图,我们输入训练集给学习算法,学习算法会输出一个假设函数 h h h(hypothesis),它的作用就是我们输入一个房屋大小, h h h函数会输出对应价格。图2中的绿色线其实就代表 h h h函数,也就是单变量线性回归函数。表示为:
h y p o t h e s i s : h θ ( x ) = θ 0 + θ 1 x 等 价 于 : h ( x ) = θ 0 + θ 1 x \begin{array}{l} hypothesis:h_{\theta(x)}=\theta_{0}+\theta_{1} x \\ 等价于:h_{(x)}=\theta_{0}+\theta_{1} x \end{array} hypothesishθ(x)=θ0+θ1xh(x)=θ0+θ1x是不是很眼熟,没错,其实就和一次函数 y = k x + b y=kx+b y=kx+b一样。
吴恩达机器学习笔记图

代价函数

前边我们已经了解线性回归函数: h θ ( x ) = θ 0 + θ 1 x h_{\theta(x)}=\theta_{0}+\theta_{1} x hθ(x)=θ0+θ1x,它其实和一次函数 y = k x + b y=kx+b y=kx+b一样,众所周知k表示斜率,b表示截距。在我看来线性回归函数中 θ 1 \theta_{1} θ1 θ 0 \theta_{0} θ0与k和b是一一对应的,只不过在机器学习中 θ 1 \theta_{1} θ1 θ 0 \theta_{0} θ0被称为模型参数。
那么我们该如何选择合适的参数,让我们的模型更加准确呢?换句话说,当 θ 1 \theta_{1} θ1 θ 0 \theta_{0} θ0分别等于多少时, h θ ( x ) = θ 0 + θ 1 x h_{\theta(x)}=\theta_{0}+\theta_{1} x hθ(x)=θ0+θ1x函数预测的结果更加准确。我们所期望的当然是预测的结果和实际结果差距越小越好,在函数中差距是如何体现的呢?差距就是实际值与预测值之间的距离。
在这里插入图片描述
所以在线性回归中我们要解决的是一个最小化问题,即让我们的模型预测的结果与实际对应结果误差最小。
在数据集(样本)中,第 i i i个样本的实际值表示为 y ( i ) y^{(i)} y(i),根据 h h h函数预测的第 i i i个样本的值表示为 h θ ( x ( i ) ) h_{\theta(x^{(i)})} hθ(x(i)),它们的差值表示为 h θ ( x ( i ) ) − y ( i ) h_{\theta(x^{(i)})} - y^{(i)} hθ(x(i))y(i),当然差值有正有负,但是我们只关系距离不关心正负,因此添加平方,即 ( h θ ( x ( i ) ) − y ( i ) ) 2 (h_{\theta(x^{(i)})} - y^{(i)})^{2} (hθ(x(i))y(i))2。因为我们有 m m m个样本,所以我们应该保证 m m m个样本最终得到的误差和最小,即:
∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 , ∑ i = 1 m 表 示 取 i 从 1 到 m 的 结 果 之 和 。 \sum_{i=1}^{m}\left(h_{\theta}(x^{(i)})-y^{(i)}\right)^{2},\sum_{i=1}^{m}表示取i从1到m的结果之和。 i=1m(hθ(x(i))y(i))2,i=1mi1m
最后再把误差和平均到 m m m个样本,即:
1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}(x^{(i)})-y^{(i)}\right)^{2} m1i=1m(hθ(x(i))y(i))2
最终表示为:
1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}(x^{(i)})-y^{(i)}\right)^{2} 2m1i=1m(hθ(x(i))y(i))2
除以2的原因不是很懂,都是这么写的…好像是和求导有关,有明白的大佬指导一下。(在第3节公式推导中可以看出来。)
该函数其实就是代价函数,当代价函数越小时,模型越准确。
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}(x^{(i)})-y^{(i)}\right)^{2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值