大数据-271 Spark MLib-基础线性回归详解:从原理到损失优化实战

张开发
2026/6/10 21:51:24 15 分钟阅读
大数据-271 Spark MLib-基础线性回归详解:从原理到损失优化实战
TL;DR场景机器学习入门者学习回归分析华氏度转摄氏度、房价/销售额/贷款额度预测等回归场景结论线性回归通过最小二乘法或梯度下降优化损失函数找到特征与目标值之间的最优线性关系产出掌握线性回归定义、损失函数、正规方程与梯度下降两种优化算法的原理与对比版本矩阵功能状态说明线性回归定义与公式✅ 已验证单变量回归、多元回归概念清晰线性关系分析✅ 已验证单变量与多变量线性关系图解非线性关系✅ 已验证非线性关系示意图损失函数✅ 已验证最小二乘法总损失函数公式解析解方式正规方程✅ 已验证直接求解最优解但计算复杂度高梯度下降法✅ 已验证学习率控制步长迭代收敛单变量梯度下降示例✅ 已验证J(θ)θ² 迭代计算演示多变量梯度下降示例✅ 已验证J(θ)θ₁²θ₂² 迭代计算演示梯度下降与正规方程对比✅ 已验证特征数量与样本量适用性对比线性回归场景● 房价预测● 销售额度预测● 贷款额度预测以华氏度与摄氏度之间的转换为例进行描述线性回归定义定义与公式线性回归Linear Regression是利用回归方程函数对一个或多个自变量和因变量之间关系进行建模的一种分析方式特点只有一个自变量的情况称为单变量回归多于一个自变量情况的叫做多元回归如下图的例子上面两个例子我们看到特征值与目标值之间建立了一个关系这个关系可以理解为线性模型。线性回归特征与目标关系分析线性回归当中主要两个模型一种是线性关系另一种是非线性关系。在这里我们只能画一个平面去理解所以都用单个特征或者两个特征举例子。线性关系的单变量线性关系线性关系的多变量线性关系非线性关系线性回归的损失和优化假设学习成绩例子真是的数据之间存在这样的关系真实关系最终成绩0.5x平时成绩 0.3x期末成绩那么现在呢猜测一个关系猜测关系预测最终成绩0.45x平时成绩 0.2x期末成绩可以想到真实结果与我们的预测的结果之间存在一定的误差。既然存在这个误差如何衡量误差呢损失函数总损失函数为● yi 为第i个训练样本的真实值● h(xi)为第i个训练样本特征值组合预测函数● 又称最小二乘法优化算法如何去模型当中的W使得损失最小目的是找到最小损失对应的W值线性回归经常使用的两种优化算法解析解方式正规方程 梯度下降法解析解方式理解X为特征值矩阵Y为目标值矩阵直接求到最好的结果。缺点当特征过多复杂时求解速度太慢并且得不到结果。梯度下降Gradient Descent梯度下降法的基本思想可以类比为一个下山的过程一个人被困在山上需要从山上下来比如找到山的最底点也就是山谷但此时山上的浓雾很大导致可视度很低。因此下山的路径无法确定它必须利用自己周围的信息去找到下山的路径这个时候他就可以利用梯度下降算法来帮助自己下山。具体来说以它当前所处的位置为基准寻找这个位置最陡峭的地方然后朝着山的高度下降的地方走。同理如果我们的目标是上山也就是爬山山顶那么此时应该是朝着最陡峭的方向往上走然后每走一段距离都反复采用同一个方法最后就能成功的抵达山谷。梯度下降的基本过程就和下山的场景很类似。梯度是微积分中的一个很重要的概念● 在单变量的函数中梯度其实就是函数的微分代表着函数在某个定点的切线的斜率● 再多变量函数中梯度是一个向量向量有方向梯度的方向就指定了函数在给定点的上升最快的方向● 在微积分里面对多元函数的参数求∂偏导数把求得的各个参数的偏导数以向量的形式写出来就是梯度。α 的含义α在梯度下降算法中被称作为学习率或者步长意味着我们可以通过α来控制每一步走的距离以保证不要步长跨的太大扯着蛋。其实就是不要走太快错过了最低点。同时也要保证不要走的太慢导致太阳下山了还没有走到山下。所以α的选择在梯度下降中往往是很重要的α不能太大也不能太小太小的话可能导致迟迟走不到最低点太大的话会导致错过最低点。为什么梯度要乘以一个负号梯度前加一个负号就意味着朝着梯度相反的方向前进我们在前文中提过梯度的方向实际就是函数在此点上升最快的方向自然就是负的梯度的方向所以此处需要加上负号。我们通过两个图更好理解梯度下降的过程。优化动态图演示单变量函数的梯度下降我们假设有一个单变量的函数 J(θ) θ2初始化起点为 θ0 1学习率 α 0.4我们开始进行梯度下降的迭代计算过程如果经过四次的运算也就是走了四步基本就抵达了函数的最低点也就是山底。多变量函数的梯度下降我们假设有一个目标函数J(θ) θ12 θ22现在要通过梯度下降法计算这个函数的最小值我们通过观察就能发现最小值其实就是0,0点。但是接下来我们会从梯度下降算法开始一步步计算到这个最小值我们假设初始的起点为θ0 (1, 3)。初始的学习率为 α 0.1函数的梯度为J(θ) 2θ1 ,2θ2进行多次迭代我们发现已经基本靠近函数的最小值点梯度下降和正规方程的对比错误速查卡症状根因定位修复梯度下降迟迟无法收敛学习率 α 设置过小观察损失函数曲线下降速度适当增大学习率梯度下降越过最低点来回震荡学习率 α 设置过大观察损失函数曲线发散模式减小学习率或使用衰减学习率正规方程求解耗时过长特征矩阵维度太高n过大观察特征数量与样本量比值改用梯度下降法正规方程无解或数值不稳定XTX 矩阵奇异或接近奇异检查特征是否存在多重共线性添加正则项或删除冗余特征预测结果为 NaN特征值未标准化/学习率过大检查输入数据范围先标准化数据减小学习率过拟合训练集好测试集差模型过于复杂/特征过多对比训练集与测试集误差增加正则化或减少特征

更多文章