机器学习--线性回归模型原理

线性回归, 是回归分析中的一种, 其表示自变量与因变量之间存在线性关系. 回归分析是从数据出发, 考察变量之间的数量关系, 并经过必定的数学关系式将这种关系描述出来, 再经过关系式来估计某个变量的取值, 同时给出该估计的可靠程度. 下面咱们从一元线性回归开始提及.算法

1. 一元线性回归

在回归分析中若是只涉及一个自变量(用来预测的变量)和一个因变量(要预测的变量), 这时就称为一元回归, 若是自变量与因变量之间存在线性关系, 那么此时的回归就称为一元线性回归.函数

1.1 模型

假设自变量x和因变量y存在线性关系, 那么x和y的线性关系函数能够表示为:学习

因为该函数是假设x和y存在线性关系, 所以该函数能够称为假设函数. 咱们把描述因变量y和自变量x关系的函数称为回归模型, 故该函数又称一元线性回归模型.其中称为模型参数, 不一样的参数将会构造不一样的模型, 所以构建模型的关键之处在于选择参数, 怎么样才能算好的参数呢?优化

因为咱们构建模型的最终目的是用来预测, 所以好参数构建的模型应该具有很好的预测能力, 也就是说预测值和实际值差别很小, 咱们把预测值h(x)与实际值y之间的差别称为偏差. 对于某个值来讲偏差就是h(xi)-yi, 对于整个模型来讲, 则是对全部偏差进行求和, 但因为偏差中有正负之分, 所以会产生偏差相互抵消, 为了不存在这种抵消问题, 对偏差进行平方求和, 再对其求平均, 故有平均偏差平方和, 其表示为spa

其中, m是样本量. h(x(i))表示第i个预测值, 与之对应的实际值则是y(i).3d

这种偏差能够认为是实际值或者指望值的损失, 故该偏差函数能够称为损失函数(有时也称为代价函数). 咱们能够根据损失函数数值最小来选出最优模型(很好的预测能力).blog

1.2. 算法

这里我将介绍两种基于损失函数最小的算法: 梯度降低法和最小二乘法.同步

1. 梯度降低法数学

什么是梯度? 引出百度百科定义:效率

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

在单个自变量函数曲线中, 梯度也就是曲线上某点处的斜率, 而对于咱们的损失函数来讲, 其有两个自变量, 故这两个自变量与损失函数将构成三维曲面.

能够将这三维曲面想象成一座山, 咱们如今的目标是山底, 咱们要想最快下山, 就须要走最陡峭的方向, 而最陡峭的方向能够当作是当前方向(下山方向)中变化最大的反方向. (其中, 变化最大的方向是指从下山改成上山, 与目标不符, 故取其反方向, 即最大的反方向).

梯度降低法与下山过程相似, 咱们的目标是求出使得损失函数数值最小的最优解. 具体过程就是给定一个初始位置, 沿着梯度的反方向(也就是负的梯度)走一个步长的距离, 更新当前位置, 如此反复, 直至找到使得损失函数最小的最优解, 能够表示为:

其中, 为学习效率, 也称为步长,  等号右边的为每次更新以前的模型参数(j=0,1), 即每走负梯度个步长, 更新一次, 并且这二者是同步更新. 具体的求解过程以下:

首先是微分的求解, 该部分须要链式法则, 公式为

因为在实际中, 每每很难直接求解z对x的微分, 但引入y这个"中介"就能够将问题转化为求z对y的微分和y对x的微分, 这就至关于分数约分的一个过程.

 

从计算过程当中能够看出, 该算法在选择负的梯度方向时考虑到所有训练数据, 故该算法又称为批量(Batch)梯度降低法. 经过以上原理也可得知, 该算法是一个迭代求最优解的过程, 下面咱们介绍一种能够直接一步到位的算法.

2. 最小二乘法

最小二乘法又称最小平方法, 即平均偏差平方和最小, 也就是咱们的损失函数数值最小. 引出百度百科费马引理定义:

函数f(x)在点ξ的某邻域U(ξ)内有定义,而且在ξ处可导,若是对于任意的x∈U(ξ),都有f(x)≤f(ξ) (或f(x)≥f(ξ) ),那么f '(ξ)=0。

简单来讲就是可导函数极值点处导数为0, 故分别对求偏导, 并令其为0, 即:

由①式可得: , 故, 代入②式中, 可得:

又因为和 , 故有:

咱们如今对一元线性回归介绍完了, 接下来看看多元线性回归.

 2. 多元线性回归

多元线性回归与一元线性回归的区别在于自变量的个数, 一元是一个, 多元则是多个.

 2.1 模型

假设多元线性回归中有多个自变量(x0, x1, x2,...xn), 那么多元线性回归模型的假设函数能够写成:

为了简化, 咱们能够将假设函数写成矩阵的形式:

其中, x0=1

对应的其损失函数表示为(m表示样本量):

下面即是介绍求解最小损失函数的算法.

2.2 算法

一样介绍两种算法: 梯度降低法和最小二乘法.

1. 梯度降低法 

与一元的方法相似, 不过这里须要注意的是对n个自变量进行同步更新.即:

2. 最小二乘法

咱们能够将损失函数转换为矩阵的形式:

 

一样地, 令的偏导为0, 对于矩阵的运算须要用到如下公式: 

而后套用公式:

 

经过以上咱们对一元和多元回归的模型以及算法均有所了解, 下面咱们来看看这两大算法的优缺点.

3. 两大算法优缺点

3.1. 梯度降低法

优势

1. 在特征变量不少时, 可以颇有效的运行

缺点

1. 容易依赖于步长和起始位置的选择, 所以须要屡次尝试寻找合适的步长和起始位置.

2. 因为在每次更新当前位置须要计算所有训练数据, 所以其迭代速度过慢.

3.2 最小二乘法

优势

1. 直接应用公式计算便可, 学习效率高

缺点

1. 训练数据拟合的函数非线性的话, 则不能使用最小二乘法.

2. 须要计算的逆矩阵, 若是逆矩阵不存在, 则无法应用最小二乘法.

3. 当的样本特征n很大时, 计算的逆矩阵将会很是耗时, 或者说无法计算.

4. 算法优化问题

4.1 梯度降低法

上面咱们介绍的梯度降低法是指批量梯度降低法, 即:

在批量梯度降低法中, 每次计算过程都考虑所有数据, 容易找到全局最优, 但数据量较大时将会很是耗费时间, 所以诞生了随机梯度降低法

随机梯度降低法则是每次随机抽取一个样本进行计算, 能够大大提升学习效率, 但因为其具备随机性且仅有一个样本, 所以每每会致使不是最优解, 鉴于此, 产生了第三种方法: 小批量梯度降低法

这是综合前两种方法产生的, 选取其中a个样本进行求解.

4.2 最小二乘法

若拟合函数非线性, 经常经过对数转换等方法将其转换为线性, 并且特征数量较少时直接运用公式进行计算便可.

4.3 小结

当训练数据特征数量较少时, 且拟合函数为线性, 则能够直接采用最小二乘法, 若是拟合函数非线性, 能够先对其进行对数转换再运用最小二乘法; 

当训练数据特征数量较多时, 因为其对拟合函数无要求, 若数据量不大, 则可选用批量梯度降低, 若数据量很大, 则能够选用小批量梯度降低.

相关文章
相关标签/搜索