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

来源:互联网 发布:阿里云备案咨询电话 编辑:程序博客网 时间:2024/06/05 17:08

1.训练集

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



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




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





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

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

  


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



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

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



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




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

   


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



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



   



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


   


   


   


   



   

   





   


   



    


阅读全文
1 0