机器学习笔记(二) 单变量线性回归

1.训练集

   有训练样例(training example)组成的集合就是训练集。


   如上图所示,右边两列数据就是训练集。一个(x,y)就是一个训练样例。我们用一些特定的字母表示术语:


   m:代表训练集中实例的数量;

   x:代表特征/输入变量;

   y:代表目标变量/输出变量;

   (x,y):代表训练集中的实例;

   (x(i),y(i)):代表第i个训练实例;

   h:代表学习算法的解决方案或者函数,也称为假设;


2.假设函数(Hypothesis Function)

     

   上图是监督学习算法的工作方式,实际上我们是要将训练集喂给学习算法,通过学习得到假设函数,标记是h。如上图所示,通过训练集和学习算法,我们的假设函数可以用房屋面积去计算得到房屋的大致估价。

   那么该怎么表示假设函数h?


   在房屋的这个例子中,只有一个变量就是房屋的面积,我们的假设函数可以表达为:h(x)=θ0+θ1 X 。这个就叫做单变量的线性回归。


3.代价函数

   在这个假设函数中,有两个参数θ0和θ1。如果两个参数θ0和θ1的取值不相同,我们的假设函数会有不同的效果。


   这两个参数在选择的过程中,要使得每个样例的估计值与真实值之间的差的平方的均值最小。以上面的房价为例,就是选择θ0和θ1,对训练样例(x,y),h(x)最接近y。下面是代价函数的公式,目的是让代价值最小。

   


   我们在分析的过程中,可以令θ0为0,简化代价函数。此时假设函数为h(x)=θ1 X。


   令θ1=1,h(x)=x,假设函数如下图左,三个红叉代表训练样例,计算得到J(θ)=0,在右图中表示出来就是(1,0)。

   重复上面的步骤,令θ1=0.5,计算h(θ),J(θ)。

   对不同的θ1,可以得到不同的假设函数h(θ),于是便有不同的J(θ)的值,我们把得到的结果连起来。当θ1等于1的时候,J(θ)的值最小,目标达成。



   以上的结果是在令θ0=0的情况下得到的,但是θ0不等于0呢?比如说,取θ0等于0.5,这时就有两个变量,自然地,J(θ0,θ1)是一个曲面。

   

   我们可以用等高线代替对3维图像的分析,往里走代表J(θ0,θ1)的值小。编写程序,不断利用程序去调整,找到最佳的h(θ),最佳的θ0和θ1,使得J(θ0,θ1)的值最小。




3.梯度下降算法(Gradient Descent)

   梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数的额最小值。

   梯度下降的思想:开始时随机选择某一个具体的θ0和θ1,计算代价函数,然后寻找下一个能让代价函数值下降最多的参数组合。持续这么做,直到到一个局部最小值。选择不同的初始参数组合,可能会有不同的局部最小值,所以在没有尝试完所有的参数组合,不能确定得到的局部最小值是否是全局最小值。

   如下图所示,从某一点开始,每次沿着一定的梯度下降直到达到一个极小值为止。梯度下降和下山一样,坡度不一样,下降的速度就不一样,而且有可能走向不同的最低点。下降梯度算法可以帮助我们改变θ0,θ1的值。(α称为学习率,后面的偏导是梯度)



   这里要特别注意的是,θ0,θ1的值是同时改变的,如果想右边所示改变就出现错误。


   令θ0=0,假设θ1在最低点的右侧,此时梯度是正数,根据梯度下降算法更新θ1,它的值会不断减小,靠近最低点。

  

   同理假设θ1在最低点的左侧,此时梯度是一个负数,根据算法更新θ1,值会增大,靠近最低点。


   如果一开始θ1在最合适的位置,根据算法更新时,值不会有改动。


   学习率α也会影响梯度的下降。α太小,θ的变化会很小,梯度下降会很慢。相反,α太大,θ的变化会很大,可能越过最低点,可能永远没法达到最低点。


   但是如果越来越接近最低点,那么斜率会逐渐减小,每次下降程度会越来越小,所以不需要改变α的值来减小下降程度。



   我们把梯度下降算法应用到线性回归模型中去,其中关键的一个步骤就是计算其中的偏导数项。

   

   可以得到如下结果(梯度下降算法):


   简要看下梯度下降算法的迭代过程:



   


   最终得到最优解,我们可以用最优解对应的假设函数对房价进行预测。比如说,1250平方英尺的房子大约能卖到270k美元,如下图:


    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值