线性回归——回归预测

回归简介:

       回归在数学上的意义是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归。
        用一个很简单的例子来说明回归,很多机器学习资料都会举这个例子——房屋价格预测,一座房屋的价格受很多因素影响,比如说有房屋面积,房间的数量,类型,地段,朝向等等,这些影响房屋价值的变量在机器学习中被称为特征(feature)。
       特征在机器学习中是一个很重要的概念,有很多的资料是专门探讨特征的选取和处理。在此处,为了简简化问题,假设我们的房屋价格仅仅受到房屋面积的影响。

假设有一个房屋销售的数据如下:
   面积(m^2)  销售价钱(万元)
   123            250
   150            320
   87              160
   102            220
   …               …
 我们可以做出一个散点图,x轴是房屋的面积。y轴是房屋的售价,如下:

 

 

 

     

如果来了一个新的在已知的信息中没有的面积,我们该怎么判断这座房屋的价格呢?答案是我们可以用一条曲线去尽量准确的拟合这些已知数据,然后如果有新的输入过来,我们可以在将曲线上这个点对应的值返回。如果用一条直线去拟合,可能是下面的样子:

   
绿色的点就是我们对新来面积房屋的价值预测点。

机器学习常用概念和典型机器学习流程:

首先介绍一些概念和常用的符号。

  1.   房屋销售记录表 ——— 训练集(training set)或者训练数据(training data), 是我们流程中的输入数据,一                                         般称为x。
  2.   房屋销售价钱 -——输出数据,一般称为y。
  3.   拟合的函数(模型),一般可以写做 y = h(x)
  4.   训练数据的条目数(#training set), 一条训练数据是由一对输入数据和输出数据组成的
  5.   输入数据的维度(特征的个数,#features),n

      下面是一个典型的机器学习的过程,首先给出一组输入数据(训练集),计算机会根据我们提供的算法得到一个估计的函数(模型),这个函数可以对没有出现的新数据给出一个新的估计。

  231839_mbnH_2608837.png

回归的数学建模过程

      我们用X1,X2.....Xn 去描述features(特征)里面的分量,比如x1表示房间的面积,x2表示房间的朝向,等等,我们可以做出一个估计函数:

      θ在这儿被称为参数,可以理解为每个特征的权重——即特征对预测结果的影响力大小,用上面的例子解释来说就是房屋面积对房屋价格影响更大还是房间数量对房屋价格影响更大。为了如果我们令X0 = 1,就可以用向量的方式来表示预测函数:

       在得出模型后我们需要一个方法去评估我们得出的θ是否比较好,也就是对我们得到的模型进行评估,一般这个函数称为损失函数(loss function),用来描述预测结果偏离实际结果的程度,在下面,我们称这个函数为J函数。在这儿我们可以做出下面的一个错误函数:

       这个错误估计函数是去对x(i)的估计值与真实值y(i)差的平方和作为错误估计函数,前面乘上的1/2是为了方便求导化简,一般来说J(θ)越小,预测越准确。

       如何调整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法,梯度下降法各种方法,我们这里先谈谈梯度下降法。

梯度下降法和最小二乘法

   梯度下降法是按下面的流程进行的:

  1.    首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。
  2.    改变θ的值,使得J(θ)按梯度下降的方向进行减少。

   为了更清楚,给出下面的图:

    

这是一个表示参数θ与误差函数J(θ)的关系图,红色的部分是表示J(θ)有着比较高的取值,我们需要的是,能够让J(θ)的值尽量的低。也就是深蓝色的部分。θ0,θ1表示θ向量的两个维度。 在上面提到梯度下降法的第一步是给θ给一个初值,假设随机给的初值是在图上的十字点。然后我们将θ按照梯度下降的方向进行调整,就会使得J(θ)往更低的方向进行变化,如图所示,算法的结束将是在θ下降到无法继续下降为止。

    

当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,可能是下面的情况:

 上面这张图就是描述的一个局部最小点,这是我们重新选择了一个初始点得到的,看来我们这个算法将会在很大的程度上被初始点的选择影响而陷入局部最小点  

  下面我将用一个例子描述一下梯度减少的过程,对于我们的函数J(θ)求偏导J:

 

   下面是更新的过程,也就是θi会向着梯度最小的方向进行减少。θi表示更新之前的值,减号后面的部分表示按梯度方向减少的量,α表示步长,也就是每次按照梯度减少的方向变化多少。

    

一个很重要的地方值得注意的是,梯度是有方向的,对于一个向量θ,每一维分量θi都可以求出一个梯度的方向,我们就可以找到一个整体的方向,在变化的时候,我们就朝着下降最多的方向进行变化就可以达到一个最小点,不管它是局部的还是全局的。

下面在说说最小二乘法:

最小二乘法(又称最小平方法)是一种数学优化技术。它通过【最小化误差的平方和】寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

我们使用最小二乘法的目的是选择最佳拟合曲线,使得拟合误差最小则。有以下三个标准可以选择:

        (1)用“残差和最小”确定直线位置是一个途径。但很快发现计算“残差和”存在相互抵消的问题。
        (2)用“残差绝对值和最小”确定直线位置也是一个途径。但绝对值的计算比较麻烦。
        (3)最小二乘法的原则是以“残差平方和最小”确定直线位置。用最小二乘法除了计算比较方便外,得到的估计量还具有优良特性。这种方法对异常值非常敏感。

    最常用的是普通最小二乘法( Ordinary  Least Square,OLS):所选择的回归模型应该使所有观察值的残差平方和达到最小。(Q为残差平方和)- 即采用平方损失函数。

  样本回归模型:

                                     

   其中ei为样本(Xi, Yi)的误差

   平方损失函数:

                      

      则通过Q最小确定这条直线,即确定,以为变量,把它们看作是Q的函数,就变成了一个求极值的问题,可以通过求导数得到。求Q对两个待估参数的偏导数:

                       

      根据数学知识我们知道,函数的极值点为偏导为0的点。

      解得:

                   

 

    这就是最小二乘法的解法,就是求得平方损失函数的极值点。

最小二乘法跟梯度下降法的比较:

   相同

  1.本质相同:两种方法都是在给定已知数据的前提下算出一个一般性的估值函数。然后对给定新数据的进行估算。
  2.目标相同:都是在已知数据的框架内,使得估算值与实际值的总平方差尽量更小(事实上未必一定要使用平方),估算值与实际值的总平方差的公式为:

                             

   其中为第i组数据的independent variable,为第i组数据的dependent variable,为系数向量。


   不同

  实现方法和结果不同:最小二乘法是直接对求导找出全局最小,是非迭代法。而梯度下降法是一种迭代法,先给定一个,然后向下降最快的方向调整,在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。机器学习中不使用最小二乘法的原因主要是因为涉及方阵求逆——矩阵求逆的复杂度是O(N^3),其中,N为特征数目。次要原因是因为如果特征数目大于样本数目,则方阵是奇异矩阵,逆不存在(可以通过惩罚因子来解决,这时变成了岭回归和LASSO回归)

参考资料:

http://blog.csdn.net/code_lr/article/details/51382826

https://mp.weixin.qq.com/s?__biz=MzA5ODUxOTA5Mg==&mid=210968322&idx=1&sn=2b978e7b2c1054073e851073c03192b1&scene=25#wechat_redirect

转载于:https://my.oschina.net/clgo/blog/906322

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值