线性回归算法学习
线性回归(Linear Regression)是利用被陈伟线性回归方程的最小平方函数对一个或多个自变量和应变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为一元回归,大于一个自变量情况的叫做多元回归。
以下就以一元线性回归为例,简要说明何为回归:
如下表1为随机生成的车辆行驶距离(m)与其预计行驶时间(s)的一个数据集(部分)。该数据集中,只有一个自变量——行驶距离和一个因变量——预计行驶时间。因此我们可以将其在二维坐标系中标记出来,如图1所示。利用该数据集,我们的目的是训练出一个线性方程,使得其能无限逼近所有数据。在本例中,训练所得的线性方程绘图后图像如图2所示。
表1 行驶距离与预计行驶时间对应的数据集
车辆行驶距离(m) | 车辆预计行驶时间(s) |
---|---|
1000 | 58 |
735 | 44 |
图1 车辆行驶距离与预计行驶时间对应关系图
图2 线性逼近图示
同时,我们可得线性方程如下:
多元线性回归:
针对多元线性回归,如果在上述例子中新增一个自变量:沿途经过路口数,那么数据集将如表2所示。
表2 距离、时间与路口数对应关系数据集
行驶距离(m) | 经过路口数(个) | 预计行驶时间(s) |
---|---|---|
1000 | 2 | 58 |
那么,所得到的线性方程应如下所示:
因此,无论是一元还是多元线性方程,都可以写成如下格式的方程:
其中
损失函数:
对于参数
其中系数
最小二乘法与梯度下降算法:
-
最小二乘法
采用最小二乘法求解θ 时,我们定义训练特征为X矩阵,结果为y 向量,则θ 可由下列公式求得:θ=(XTX)−1XTy⃗
最小二乘法在原理上比较简单,但其要求X 满秩,且涉及矩阵运算,在实际中处理大量数据会很慢。 -
梯度下降算法
梯度下降法可以规避最小二乘法在求解θ 时的局限性,但其解得的θ 为近似值,在对于求解θ 精度不高的情况下可以采用该方法计算。- 批量梯度下降算法
对于J(θ) 函数,求θT 的问题就变成了求J(θ) 函数的极小值问题。在梯度下降法中梯度方向由J(θ) 对θ 的偏导决定,又由于求的是极小值,梯度方向为偏导数的负方向,如下式:θj:=θj−α∂∂θjJ(θ)
其中式中α 为学习效率,当α 过大时,梯度下降过程中可能越过最小值;而当α 过小时,迭代收敛速度会较慢。此时需要针对数据实际情况设置合理的α 值。
由于一般情况下样本数量不为0,因此将J(θ) 函数带入上式,可得:θj:=θj+α∑i=1m[y(i)−hθ(x(i))]x(i)j
令θT 初值为0,再使用该式迭代计算θT 中每个参数直至收敛。 - 随机梯度下降算法
由于样本数据量m可能十分大,我们对迭代方式加以改进,在每次迭代计算的时候不再如同批量梯度下降算法使用整个样本集,而是读取其中一条数据对θT 进行更新。这样做的好处就是可能不需要读取所有的数据就能达到收敛值,迭代公式如下:θj:=θj+α[y−hθ(x)]xj
注:
判断收敛的方法如下:
1.当参数θT 的变化距离为0或小于某一设定阈值
2.在最求计算精度时,主要验证J(θ) 是否会变化,或者变化小于某一设定阈值,但该方法要求的计算复杂度就相对较高了
- 批量梯度下降算法