线性回归--原理

作者: 0a88ac7ea4a4 | 来源:发表于2019-01-17 15:04 被阅读13212次

通常我们学习机器学习都是从线性回归模型开始的。线性回归模型形式简单、易于建模,但是我们可以从中学习到机器学习的一些重要的基本思想。

回归一词的由来:

这个术语是英国生物学家兼统计学家高尔顿在1886年左右提出来的。人们大概都注意到,子代的身高与其父母的身高有关。高尔顿以父母的平均身高X作为自变量,其一成年儿子的身高Y为因变量。他观察了1074对父母及其一成年儿子的身高,将所得(X, Y)值标在直角坐标系上,发现二者的关系近乎一条直线,总的趋势是X增加时Y倾向于增加,这是意料中的结果.有意思的是,高尔顿对所得数据做了深入一层的考察,而发现了某种有趣的现象。

高尔顿算出这1074个X值的算术平均为68英寸(1英寸为2.54厘米),而1074个Y值的算术平均为69英寸,子代身高平均增加了1英寸,这个趋势现今人们也已注意到。以此为据,人们可能会这样推想:如果父母平均身高为a英寸,则这些父母的子代平均身高应为a+1英寸,即比父代多1英寸。但高尔顿观察的结果与此不符,他发现:当父母平均身高为72英寸时,他们的子代身高平均只有71英寸,不仅达不到预计的72+1=73英寸,反而比父母平均身高小了。反之,若父母平均身高为64英寸,则观察数据显示子代平均身高为67英寸,比预计的64+1=65英寸要多。

高尔顿对此的解释是:大自然有一种约束机制,使人类身高分布保持某种稳定形态而不作两极分化。这就是种使身高“回归于中心“的作用。例如,父母身高平均为72英寸,比他们这一代平均身高68英寸高出许多,“回归于中心”的力量把他们子代的身高拉回来些:其平均身高只有71英寸,反比父母平均身高小,但仍超过子代全体平均69英寸。反之,当父母平均身高只有64英寸,远低于他们这代的平均值68英寸时,“回归于中心”的力量将其子代身高拉回去一些,其平均值达到67英寸,增长了3英寸,但仍低于子代全体平均值69英寸。

正是通过这个例子,高尔顿引人了“回归”这个名词。

线性回归的模型形如:

线性回归得出的模型不一定是一条直线,在只有一个变量的时候,模型是平面中的一条直线;有两个变量的时候,模型是空间中的一个平面;有更多变量时,模型将是更高维的。

线性回归模型有很好的可解释性,可以从权重W直接看出每个特征对结果的影响程度。

线性回归适用于X和y之间存在线性关系的数据集,可以使用计算机辅助画出散点图来观察是否存在线性关系。例如我们假设房屋价格和房屋面积之间存在某种线性关系,画出散点图如下图所示。

看起来这些点分布在一条直线附近,我们尝试使用一条直线来拟合数据,使所有点到直线的距离之和最小。实际上,线性回归中通常使用残差平方和,即点到直线的平行于y轴的距离而不用垂线距离,残差平方和除以样本量n就是均方误差。均方误差作为线性回归模型的代价函数(cost function)。使所有点到直线的距离之和最小,就是使均方误差最小化,这个方法叫做最小二乘法

代价函数:

其中,

下面求使J最小的W和b:

1.偏导数法

偏导数法是非常麻烦的,需要一个一个地计算w。为了方便,这里以单变量线性回归为例。

2.正规方程法

正规方程使用矩阵运算,可以一次求出W向量。但是当变量(feature)个数大于数据个数时,会导致xTx不可逆,这时候就不能用此方法了。

使用正规方程法,如果希望得到的模型带有偏置项b,就要先给数据集X增加全为1的一列,这样才会把b包含在W中;如果不添加,那么模型是强制过原点的。

3.梯度下降

这里的代价函数J海森矩阵H是半正定的,因此J一定有全局最小值,所以也可以使用梯度下降法来求解。梯度下降法是一种迭代解法,不仅可以求解最小二乘问题,也适用于其它代价函数的问题。但是需要设置学习率α,α设置的过大或过小,都不能很好地训练出模型,而且梯度下降法需要对数据集进行特征缩放。一般会在数据集特别大的时候或者xTx不可逆的时候使用梯度下降法,后面再做介绍。

4.其他

还有一些方法就不一一列举了。例如奇异值分解,QR分解,乔姆斯基分解等等。

计算出的模型如下图。

再放一个两个变量的情况的,如下图。

相关文章

  • 线性回归--sklearn框架实现

    线性回归--原理 线性回归--python实现(不使用框架) 线性回归--sklearn框架实现 这里使用skle...

  • 线性回归--python实现(不使用框架)

    线性回归--原理 线性回归--python实现(不使用框架) 线性回归--sklearn框架实现 这里使用pyth...

  • 线性回归--原理

    线性回归--原理 线性回归--python实现(不使用框架) 线性回归--sklearn框架实现 通常我们学习机器...

  • 线性回归代码实现

    线性回归是比较常用的模型。本文会简单介绍线性回归的原理,以及如何用代码实现线性回归模型。 什么是线性回归 简单举一...

  • 线性模型—— 一元线性回归算法推导

    目录 一、线性模型原理 二、线性回归与最小二乘法 三、一元线性回归公式推导 四、总结 线性模型原理:给定d个属性x...

  • Logistic回归

    (一)Logistic回归原理: ① 将数据做线性回归,得到线性回归函数:h(x) = θX;② 将h(x)做si...

  • Day 3 -- 线性模型(上篇)

    第三章线性模型 本节文章主要讨论线性模型的回归,属于线性模型上篇,主要介绍线性模型的基本形式,线性模型的回归原理以...

  • DataWhale-01-线性回归

    线性回归的概念 1、线性回归的原理 线性回归的一般形式: 有数据集,其中,其中n表示变量的数量,d表示每个变量的维...

  • Logistic Regression

    Logistic Regression原理 逻辑回归模型本质上属于对数线性模型 下面对逻辑回归模型的原理进行介绍,...

  • 线性回归

    线性回归是机器学习中最基础最简单的回归算法了,现在关于线性回归的原理做一个总结。 关于线性的概念,其实在高中就有了...

网友评论

    本文标题:线性回归--原理

    本文链接:https://www.haomeiwen.com/subject/sreidqtx.html