人工智能时代前沿技术社区

首页 > 人工智能 > 热点

线性回归—求解介绍及回归扩展

作为机器学习中的线性回归,它是一个典型的回归问题,由于容易理解、可解释性强,被广泛应用于机器学习的过程中。为了深入了解线性回归相关

作者: | 2018-04-13 14:56:31

作为机器学习中的线性回归,它是一个典型的回归问题,由于容易理解、可解释性强,被广泛应用于机器学习的过程中。为了深入了解线性回归相关知识,飞马网于4月12日晚邀请到先后在1号店、飞牛网等电商企业从事算法工作的张飞老师,在线上直播中,为我们分享线性回归知识。

线性回归_页面_01.jpg 

以下本次是分享实录:

一.回归的概念

回归在我们的日常工作中经常会用到,比如预测销量、房价等,我们首先来了解一下什么是回归?

线性回归_页面_02.jpg 

二.变量之间的关系

两个变量之间的关系是怎样的呢?主要包括两种关系:确定性关系和非确定性关系。确定性关系可以通过函数表达出来,例如圆点周长与半径的关系、速度和时间与路程的关系、X与Y的函数关系等。非确定性关系表示两变量之间一种宏观上的关系,不能精确用函数关系来表达,例如青少年身高与年龄的关系、身高与体重的关系、药物浓度与反应率的关系。

线性回归_页面_03.jpg 

三.线性回归的概念

我们下面来介绍线性回归的概念。当两个变量存在准确、严格的直线关系时,可以用Y=a+bX(X为自变量,Y是因变量),表示两者的函数关系。

线性回归_页面_04.jpg 

那为什么叫“回归”呢?这里简单了解一下。高尔顿在研究人的身高时,发现父代与子代的身高不是处于两个极端,而是反映了一个规律,这两种身高父亲的儿子的身高,有向他们父辈的平均身高回归的趋势,即当父亲高于平均身高时,他们的儿子身高比他更高的概率要小于比他更矮的概率;父亲矮于平均身高时,他们的儿子身高比他更矮的概率要小于比他更高的概率,这就是所谓的回归效应。

线性回归_页面_05.jpg 

四.线性回归求解(回归参数的估计)

1.最小二乘法:

要求出a和b这两个参数,就要用到最小二乘法的计算方法,我们看下图的回归方程。最小二乘法即保证各实测点到回归直线的纵向距离的平方和最小,并使计算出的回归方程最能代表实测数据所反映出的直线趋势。

线性回归_页面_06.jpg 

我们简单了解一下最小二乘法计算过程的例子:

线性回归_页面_07.jpg 

函数模型写成矩阵式如下图。t1至tn为输入值,b0、b1做了一个矩阵乘法,y1到yn是实际的值。

线性回归_页面_08.jpg 

根据下面这张图中的战舰数据,我们求b1。

线性回归_页面_09.jpg 

具体计算过程如下:

线性回归_页面_10.jpg 

上面所讲的最小二乘法均是在二元情况下,我们再看看多元情况下的最小二乘法,也可以用矩阵式表达,如下图所示:

线性回归_页面_11.jpg 

用矩阵转置的运算方法来求解,会涉及矩阵逆的计算,就会有一个问题,如果数据量较大,计算就会非常慢,这是就要判断拟合的好坏,那我们用什么指标来衡量呢?第一个方法是我们计算出SE、SR、ST。

线性回归_页面_13.jpg 

线性回归_页面_14.jpg 

我们也可以通过另外的指标—相关系数来衡量拟合的好坏:

线性回归_页面_15.jpg 

在多元线性回归时,数据量比较大的情况下,最小二乘法求解耗费的资源较大,那我们有没有其它的方法呢?我们来看下面这张图:

线性回归_页面_16.jpg 

2.梯度下降:

由此我们引出全新的一个方法来求解线性回归参数—梯度下降,这是我们常用到的一个方法,它计算量较小,且可以得到一个相对而言的局部最优解。一起来看一下梯度下降的方法和算法过程图:

线性回归_页面_17.jpg 

梯度下降本质上是求出一个函数的最小值,使得它的损失函数最小,因此针对损失函数用梯度下降,就能够使梯度下降和线性回归整合,看下图:

线性回归_页面_18.jpg 

①梯度下降Feature Scaling

为了加快梯度下降的执行速度,我们就要将特征标准化,常用的标准化方法如下:

线性回归_页面_19.jpg 

下面是一个练习题:

线性回归_页面_20.jpg 

②梯度下降 多元

在实际问题中,我们的特征不可能只有两个,也许会有很多个,这边举了一个房价的例子:

线性回归_页面_21.jpg 

它的损失函数和之前一样,只是变成了在多元情况下,梯度求解也是由之前的一元改为多元情况,把对应的值求出来,我们来看图:

线性回归_页面_22.jpg 

下面我们来看一下例子:

线性回归_页面_23.jpg 

在实际工作中,这个方法常被用于进行机器算法求解,或者是转置矩阵的形式。

③随机梯度下降

梯度下降有一个扩展性问题,当样本点很大的时候,计算起来就会很慢,所以接下来又提出了随机梯度下降算法。

随机梯度下降算法计算起来很快,但是收敛的过程比较曲折,整体效果上,大多数时候它只能接近局部最优解,而无法真正达到局部最优解,适合用于较大训练集的情况。

它的公式如图所示:

线性回归_页面_24.jpg 

3.比较最小二乘法与梯度下降:

介绍完最小二乘法和梯度下降之后,我们把两者进行一个比较:

线性回归_页面_25.jpg 

五.回归扩展

最后一部分是对于线性回归的扩展,主要介绍岭回归与Lasso回归。

1.岭回归:

其实就是在原本的方程里加入了I2范数,为什么要加I2范数呢?I2范数就是一个惩罚项,使得模型的泛化能力更强,防止我们把参数求解出来之后,在预测过程中所产生模型训练过拟合现象,在预测结果上达到预定效果。

线性回归_页面_26.jpg 

2.Lasso回归:

它是加入了I1范数,I1的好处是存文档时,把某些待估系数输送到邻之间。从下图中可以很直观地看出岭回归与Lasso回归的区别。

线性回归_页面_27.jpg 

以上五大部分就是张老师要讲解的主要内容,下面是最后的问答环节,我们一起来看看都有些什么问题。

1.请问函数的推导过程是不是都要记清楚,还是能运用模型就可以了?

张老师:我们在学习算法时,对算法的基本原理要清楚,像线性回归的求参过程、最小二乘法、梯度下降法,对这些知识的掌握都要比较熟练,至于函数的推导过程不需要完全掌握,但对它的原理一定要清楚,否则就达不到预期效果,不知道如何去调优。

2.为什么最小二乘法是最优方法?

张老师:最小二乘法只是求解线性回归的一种方法,这种方法是求坐标轴实际值与目标值之间的差的平方,它的精度比较弱,适用的模型只有线性回归,在特征非常多时,求解速度也会非常慢,导致模型无法求解成功,一般情况下,我们都是运用梯度下降法来求解参数值,它能逼近局部最优解,所以我们更推荐梯度下降法。

3.归一化怎么应用?

张老师:归一化有很多方法,用当前值减去平均值再除以最大值减最小值,这个是比较简单的方法,但这个方法有一定的局限性,比如样本里面出现异常值,可能会对归一化的顺序产生一定影响,还有其它的一些方法。至于怎么去应用,我们要根据具体的应用场景去选择相应的方法。

 

以上就是本次线上直播的全部内容,相信通过本次学习,在实际工作当中,大家能更熟练地去运用线性回归算法。想了解更多更详细内容的小伙伴们,可以关注服务号:FMI飞马网,点击菜单栏飞马直播,即可进行学习。

 

 

服务号.jpg