目录

导入

回归问题的定义和分类

定义

分类

参数求解思路

梯度下降法

核心思想

3个关键概念

基本步骤


导入

我们之前讲过的感知机算法和k近邻算法解决的都是分类问题,就是根据现有数据集来判断待预测样本属于哪一类。比如:判断一张图片中是否含有猫(二分类问题),根据学生的考试分数,划分成绩等级为“优秀”“良好”“及格”“不及格”(多分类问题)。

而还有一类问题是这样的:如何根据房屋的面积、房间数量,预测房屋的售价?”“手机的使用时长与剩余电量之间是否存在可量化的关系?”这些就是我们的回归问题

回归问题的定义和分类

定义

给定已知的特征数据,构建模型预测未知的、可连续变化的数值结果,强调“连续值”是核心标志。

分类

这里我们按模型拟合的函数形式分类

线性回归(Linear Regression)

假设特征与结果之间存在线性关联,即模型拟合的函数为一次多项式形式,数学表达式为 y = w_1x_1 + w_2x_2 + ... + w_nx_n + b

非线性回归(Non-linear Regression)

假设特征与结果之间存在非线性关联,模型拟合的函数为二次及以上多项式、指数函数、对数函数等非一次形式,例如y = w_1x^2 + w_2x + b(二次回归)、y = ae^{bx} + c(指数回归)。

参数求解思路

“参数求解” 的核心目标是找到一组最优模型参数(如我们上面线性回归中的权重 w 和偏置 b),使模型对已知数据的拟合误差最小化,同时避免过拟合以保证对未知数据的泛化能力。
参数求解过程

主要以下几步:

  1. 定义损失函数(Loss Function):损失函数是量化 “模型预测值” 与 “真实值” 之间差异的指标,是参数优化的 “目标导向”—— 我们的最终目的是让损失函数值最小化。

  2. 确定优化目标:即 “最小化损失函数”。

  3. 选择优化策略:根据模型参数的数量、损失函数的可微性、模型结构复杂度,选择不同的求解方法(如解析法、梯度下降法、启发式搜索等),这是参数求解的核心差异点。

梯度下降法

这里我们发现当数据量巨大,特征巨多时,直接求解参数太复杂了,这时候梯度下降法就可以派上用场了。它就像“下山找最低点”一样,通过不断迭代调整w和b,逐步靠近损失函数的最小值,高效求出线性回归的参数。

核心思想

核心思想就是下山,站在山的某位置(当前参数),通过判断“最陡下坡方向”(梯度反方向),一步步向山脚(损失函数最小值点)移动,最终找到最优参数。

3个关键概念

1. 梯度: 梯度是损失函数对所有参数的“偏导数向量”,它描述了损失函数在当前参数点变化率最大的方向(即“最陡上坡方向”)。例如,线性回归中参数为 \theta = [w, b] ,梯度就是\nabla L(\theta) = [\frac{\partial L}{\partial w}, \frac{\partial L}{\partial b}],每个元素对应一个参数的变化率。

2. 负梯度方向:由于我们的目标是“最小化损失函数”(下山),而非“最大化”(上山),因此需要沿梯度的反方向(负梯度方向)更新参数——这是让损失函数下降最快的方向。

3. 学习率:学习率是“每一步下山的步长”:步长太小,收敛速度慢(下山要走很多步);步长太大,可能越过山脚(损失函数震荡,甚至无法收敛)。

基本步骤

  1. 初始化参数:给模型参数赋初始值(如随机赋值、全设为0),得到初始参数 \theta_0
  2.  计算梯度:用当前参数\theta_t计算损失函数L(\theta_t),再通过求导得到损失对参数的梯度 \nabla L(\theta_t)
  3. 更新参数:沿负梯度方向调整参数,公式为:\theta_{t+1} = \theta_t - \eta \cdot \nabla L(\theta_t) ,t 为迭代次数,每迭代一次,参数向“损失更小”的方向靠近。
  4. 判断收敛:重复步骤2-3,直到满足停止条件:损失函数的变化量小于阈值(如 |L(\theta_{t+1}) - L(\theta_t)| < 10^{-6};  达到预设的最大迭代次数(如迭代1000次后停止)。
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐