Machine Learning课程笔记2 线性回归

来源:互联网 发布:vscode php 知乎 编辑:程序博客网 时间:2024/04/27 22:17
1、单变量的线性回归
      依然以房价问题为例,以面积为变量。
      训练集相关的几个说明:m 训练数据的个数
                                               x1 ,x2 ,x3 ....xm          input/features   这里是面积值
                                               y1 ,y2 ,y3 ....ym          output/target     这里是房价值
      模型描述
               
            h(x)的一种表达方式是
                                                          
            即用一条直线来拟合。
            因为只含有一个特征变量,所以称为单变量线性回归问题。

            代价函数
            接下来我们需要找到合适的参数值sita来使得直线最大程度fit to the data
            模型所预测的值与实际值的差距就是modeling error,所以我们的目标是找到使得误差的平方和最小的模型参数,即使得cost function J 最小。
          
             改变参数的值得到的代价函数大小不一样,假设只有一个参数时可以简化出下图的变化情况:
              
             如果有两个参数sita 0和1,则下面的等高线图:
可以想到如果变量更多的话是很难用这种直观地图来表示的,更不可能人来自己选择最佳的参数值,所以我们需要使用合适的算法能够自动找出使得代价函数J最小的参数值。

梯度下降
     梯度下降通常也称为最速下降法,开始时我们随机选择参数们的初始值,计算代价函,然后寻找下一个能让代价函数下降最大的参数值,重复做下去知道找到一个局部最优解。
    
     注:阿尔法表示学习率,它决定了每次下降的步幅。步幅太小会导致收敛时间过长,很慢;步幅太大可能会无法收敛;
             这里的J不一定是线性回归问题中的代价函数,也可以是其它问题;
             
     梯度下降存在的问题:靠近极小值时收敛速度减慢(导数值很小);不同初始值可能会收敛得到不同的极小值。
     
     对线性回归问题运用梯度下降
     代入线性回归的代价函数J,(单变量)对J求偏导如下后得到:
     
          
     上面所说的是“ 批量梯度下降” 算法。因为每一步都要考虑m个样本,复杂度为O(m*n),当训练集非常大时通常都太慢了,所以提出了随机梯度下降(增量梯度下降)算法,即每一次只考虑一个训练项,
      复杂度为O(n).。但是增量梯度下降算法可能不会精确收敛于最小值而是接近最小值,但是考虑到效率问题在实际中应用更多一些。

       上述使用了迭代的方法求最小值,实际上对于这类特定的最小二乘回归问题,或者普通最小二乘问题,存在其他方法给出最小值,后面将介绍正规方程组的方法。

0 0
原创粉丝点击