2019独角兽企业重金招聘Python工程师标准>>>

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

以下本次是分享实录:

一.回归的概念

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

二.变量之间的关系

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

三.线性回归的概念

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

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

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

1.最小二乘法:

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

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

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

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

具体计算过程如下:

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

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

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

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

2.梯度下降:

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

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

①梯度下降Feature Scaling

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

下面是一个练习题:

②梯度下降 多元

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

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

下面我们来看一下例子:

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

③随机梯度下降

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

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

它的公式如图所示:

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

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

五.回归扩展

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

1.岭回归:

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

2.Lasso回归:

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

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

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

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

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

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

3.归一化怎么应用?

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

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

转载于:https://my.oschina.net/u/3799785/blog/1796991

线性回归—求解介绍及回归扩展相关推荐

  1. 回归算法 - 线性回归求解 θ(最大似然估计求解)

    回顾线性回归的公式:θ是系数,X是特征,h(x) 是预测值. h(x) = θ0 + θ1x1 + θ2x2 + - + θnxn h(x) = Σ θixi( i=0~n ) h(x) = θTX ...

  2. 基于Python的线性回归预测模型介绍及实践

    基于Python的线性回归预测模型介绍及实践 这是一篇学习的总结笔记 参考自<从零开始学数据分析与挖掘> [中]刘顺祥 著 完整代码及实践所用数据集等资料放置于:Github 线性回归预测 ...

  3. 机器学习算法——以癌症分类为例子介绍 逻辑回归(sklearn实现)

    目录 1.逻辑回归介绍 1.1.逻辑回归的应用场景 1.2.逻辑回归的原理 1.2.1 输入: 1.2.2 激活函数 1.3.损失以及优化 1.3.1 损失 1.3.2 优化 总结: 2.逻辑回归ap ...

  4. 十二、案例:加利福尼亚房屋价值数据集(多元线性回归) Lasso 岭回归 分箱处理非线性问题 多项式回归

    案例:加利福尼亚房屋价值数据集(线性回归)& Lasso & 岭回归 & 分箱处理非线性问题 点击标题即可获取文章源代码和笔记 1. 导入需要的模块和库 from sklear ...

  5. 线性回归的改进-岭回归

    线性回归的改进-岭回归 1 API sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", ...

  6. R语言广义线性模型函数GLM、R中有几种泊松回归扩展和变异、变时段泊松回归、零膨胀泊松回归、鲁棒泊松回归、pscl包的zeroinfl拟合零膨胀泊松回归、robust包中的glmRob函数拟合鲁棒模型

    R语言广义线性模型函数GLM.glm函数构建泊松回归模型.R中有几种泊松回归扩展和变异.变时段泊松回归.零膨胀泊松回归.鲁棒泊松回归.pscl包的zeroinfl拟合零膨胀泊松回归.robust包中的 ...

  7. R语言广义线性模型函数GLM、R中有几种logistic回归扩展和变异、robust包中的glmRob函数鲁棒logistic回归、ms包中的lrm函数拟合序数逻辑回归

    R语言广义线性模型函数GLM.glm函数构建逻辑回归模型(Logistic regression).R中有几种logistic回归扩展和变异.robust包中的glmRob函数鲁棒logistic回归 ...

  8. ML之LiRLassoR:利用boston房价数据集(PCA处理)采用线性回归和Lasso套索回归算法实现房价预测模型评估

    ML之LiR&LassoR:利用boston房价数据集(PCA处理)采用线性回归和Lasso套索回归算法实现房价预测模型评估 目录 利用boston房价数据集(PCA处理)采用线性回归和Las ...

  9. 【转】动态模型及其求解介绍–番外篇

    上一篇文章(中篇)里 面,我用的示意图是因子图,而里面也出现了Psi函数,本来应该当时就解释清楚的,但实在没有精力写那么多东西,所以就想放到下篇讲的.后来发现,讲条件 随机场要结合有向无向图和inde ...

最新文章

  1. 本土化App名稱和icon
  2. 遭遇Web print
  3. 共享寒冬中的常青树,2 次获得阿里投资的衣二三“欲隐藏”的数据真相 | 深度案例...
  4. python回归方程系数计算_线性回归中的正规方程将θ系数返回为“NaN”
  5. 使用PHP建立SVN的远程钩子,使用exec命令自动更新SVN的代码
  6. oracle 查询N秒之前的数据
  7. 图论 —— 图的连通性 —— 有桥连通图加边变边双连通图
  8. 修改mysql用户家目录,Linux 更改MySQL目录
  9. Hellohao全网对象存储图床源码
  10. es6 Proxy.revocable()方法
  11. STL 源代码分析 算法 stl_algo.h -- includes
  12. 详解Guitar Pro的自动化编辑器之节拍自动化
  13. mcgs组态连接oracle数据库,昆仑通态专题(九):MCGS组态软件的实时数据库
  14. 前端面试 - 项目流程
  15. 阿里云服务器搭建java环境详细步骤4
  16. JJ斗地主记牌器java开发,【欢乐斗地主记牌器制作】遇到两个问题
  17. gitlab 多人协同工作
  18. Windows下4K屏mobaxterm远程桌面设置
  19. instancetype 与 id for Objective-C
  20. 这篇文章告诉你图片转语音免费软件有哪些?

热门文章

  1. 如何提升自身能力?不再平庸
  2. VS2008与Office2007冲突解决办法
  3. gittortoise使用ssh秘钥
  4. 2020计算机二级报名时间表下半年山东,2020年3月山东省计算机二级报名时间|网上报名入口【12月20日9:00开通】...
  5. 幼儿园管理系统c语言,【资源学习】c语言程序代码,登录幼儿园200个小朋友的数据...
  6. 携手酷依恋6元韩版服饰共享财富
  7. oracle连接打印机,使用 CUPS 命令设置网络打印机
  8. html5 端午节 龙舟,端午节赛龙舟的作文(精选10篇)
  9. Python的数据科学函数包(二)——pandas(series dataframe)(loc iloc ix)(csv文件)
  10. python 自动点赞_python实现在有漏洞的网站实现自动注册、登录、点赞