一、线性回归是什么
线性回归是一种基本的预测建模技术,用于建立自变量与因变量之间的线性关系。该模型旨在找到一条最佳拟合直线,使预测值与实际值之间的误差最小化。线性回归模型的基本假设是,自变量和因变量之间存在线性关系,并且误差项服从正态分布。
二、线性回归的基本理解
可以通过这个表格举一个例子
特征值:工资和年龄
目 标:额度,预测银行会给我的贷款额度
思考:工资和年龄都会对额度产生影响,那么二者的权重分别是多少
- 理解
- x1和x2分别代表工资和年龄两个特征值,而y代表所预测的额度
- 线性回归要做的就是找到合适的一条线来拟合我们的数据点
设 工资的系数为β1,年龄的系数为β2,
拟合的曲面方程就是 y=β1x1+β2x2+β0 (其中β0代表误差项)
线性回归算法的目标是找到最佳拟合直线,该直线使所有数据点到回归线的距离之和最小化。这个最小化距离的过程被称为最小二乘法
三、数学公式
1.模型
假设有m个训练样本,每个训练样本有n个自变量和一个因变量,向量表示为
- 自变量矩阵X=[x1,x2,x3…xn]
- 因变量矩阵Y=[y1,y2,y3,…ym]
回归模型假设函数为:- h(x)=θ0 + θ1x1 + θ2x2 + … + θnxn
其中,θ0, θ1, θ2, …, θn是待求的参数。将自变量矩阵X和θ向量合并为一个(n+1)维向量θ:- θ = [θ0, θ1, θ2, …, θn]
价差误差向量为ε,每个样本误差- ε = h(x) - y
目标是最小化误差向量的平方和:- J(θ) = 1/2m * ∑(h(xi) - yi)^2
2.误差分析
误差分析是用来分析模型预测结果与实际结果之间的误差。误差分析可以帮助我们理解模型的优点和缺点,以及如何改进模型。
误差 ε 是独立的且具有相同的分布,服从均值为0,方差为θ^2的高斯分布
通俗一点理解
是来查看借款额度的两个人之间没有关系称为独立
来借的是用一家银行叫同分布
银行给出的额度大部分情况是合适的,也有极少部分给高给低,服从高斯分布
- 目标:让似然函数越大越好,可以采用求偏导使偏导等于0
J(θ) = 1/2m * ∑(h(xi) - yi)^2
3.评估方法
线性回归模型的评估方法主要有交叉验证和留出法。交叉验证是将数据集分成k个子集,其中一个子集作为验证集,其余的子集作为训练集,训练k次模型,每次将不同的子集作为验证集,最后将k个模型的结果取平均值。留出法是将数据集划分成训练集和测试集,训练模型后用测试集进行评估。
R^2的值越接近1,我们认为模型越好
4.梯度下降
梯度下降是一种用于求解最优化问题的迭代算法。在线性回归中,梯度下降算法用于寻找使代价函数最小化的参数。梯度下降的思路是通过不断调整参数,使代价函数不断减小。具体来说,对于目标函数J(θ),在每次迭代中,梯度下降算法通过计算代价函数对参数的偏导数,找到使代价函数下降最快的方向,即梯度的反方向。然后,根据梯度方向和学习率α来更新参数,直到达到最小化代价函数的目标。在每一次迭代中,根据当前模型参数的梯度方向,调整模型参数的取值,直到误差平方和最小。
- 目标:
θj = θj - α/m * ∑(h(xi) - yi) * xi(j) … j表示第j个参数,m是样本数,α是学习率,xi(j)表示第i个样本的第j个自变量的值。- 过程
寻找梯度下降目标函数的终点- 批量梯度下降:
每次更新全部数据,容易得到最优解,但是由于每次考虑所有样本,速度很慢- 随机梯度下降:
每次随机使用一个样本数据,每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向- 小批量梯度下降
每次更新一小部分样本数据,比较综合,推荐采用
批处理数据:32,64,128都可以,但需要考虑内存和效率- 学习率
学习率(步长),控制迭代的布长,对结果产生巨大的影响,所以一般小一点,从小开始。
梯度下降算法可能会陷入局部最优解,而无法达到全局最优解。因此,在使用梯度下降算法时,我们需要对学习率和迭代次数进行适当的调整,以避免算法陷入局部最优解。
四、总结
线性回归算法是一种基本的机器学习模型,可以用来预测未来的结果或者进行分类。在实际应用中,我们可以使用最小二乘法或梯度下降算法来求解模型参数,得到最优的预测结果。同时,我们还需要根据具体的数据集和问题来选择合适的模型和算法,以得到更好的预测效果。
下一节我们将自己写一个线性回归模型,观察单一特征和多个特征对下降损失梯度的变化的影响
希望大家多多支持,一起努力学习,后续慢慢分享更多新奇有趣的东西