AI大模型-机器学习-算法-线性回归

目的

为避免一学就会、一用就废,这里做下笔记

线性回归

是什么

何为线性?

  • 线性是数学领域中,对函数特征的分类
  • 简单理解,形状是一条直线的函数就是线性的,其他都是非线性。
  • 上述说法不够准确,用数学的语言准确描述如下:
    若函数fff同时满足可加性齐次性 ,则该函数fff是线性函数
    • 可加性 :f(x1+x2)=f(x1)+f(x2)f(x_1+x_2)=f(x_1)+f(x_2)f(x1+x2)=f(x1)+f(x2)
    • 齐次性 :f(c⋅x)=c⋅f(x)f(c \cdot x)=c\cdot f(x)f(c⋅x)=c⋅f(x)
  • 按数学规则,只有f(x)=axf(x)=axf(x)=ax是线性的,AI领域则近似地 将f(x)=ax+bf(x)=ax+bf(x)=ax+b看做是线性函数

何为回归?

目标输出f(x)f(x)f(x)的值域如果是预设的枚举值 ,则为分类 ,如果是非预设的连续值 ,则是回归

示例:

1、任务的目标是根据照片分辨是猫还是狗,这是分类

2、任务的目标是根据K线图预测股票价格,这是回归

何为线性回归

  • 线性回归的数学核心:就是函数f(x)=ax+bf(x)=ax+bf(x)=ax+b,该函数在AI领域被认为是线性的,且输出是连续值。
  • 线性回归的现实含义:一种用来建立和量化两个或多个变量之间线性关系的统计与机器学习方法。
示例

如预测小区当前房价,且已知主要影响因素是房屋面积。此时就可以数学建模f(x)=ax+bf(x)=ax+bf(x)=ax+b,然后输入100个房子的价格f与面积x,用机器学习的方法拟合出一个最接近的直线(即确定a和b的最佳参数值,假设是2和4)。然后就可以用该模型f(x)=2x+4f(x)=2x+4f(x)=2x+4进行其他房子的房价预测,输入x=100平,输出f(x)=204万

示例中,小区房价仅受面积影响,为贴合现实,可以增加影响因素:楼层、是否有电梯、是否背阳面等,此时数学模型仍是f(x)=ax+bf(x)=ax+bf(x)=ax+b,但x就从单一数值变成了四维向量(4个互不相关的元素共同影响房价),此时的线性回归就是多元线性回归

为什么

  • 简单基础:线性回归是最简单的机器学习算法,可以用来衍生其他大量的复杂算法,是理解其他算法的基础
  • 能解决实际问题:线性回归可以对大量现实问题建模,用来推断某事物y受多个相关元素影响的程度,并用来进行后续预测,如银行信贷会综合评估个人的收入、历史信用评分、是否已有房贷、是否已有车贷等多个因素,并给出综合评价:此人可贷款额度
  • 建立性能基准:在任何新项目中,线性回归永远是第一个被实施的模型。它的性能(比如R²分数、RMSE)为后续更复杂的模型(随机森林、神经网络)设立了一个必须超越的底线。如果复杂模型连简单的线性模型都打不过,那它就没有使用价值
  • 可解释性与可信度:在银行信贷、医疗诊断、司法等"高风险"领域,模型的决策必须能向人解释。线性回归的预测可以清晰地表述为:"因为你的特征A比平均值高X,特征B低Y,所以你的评分变化了Z。" 这种透明性是"黑箱"模型无法比拟的

怎么办--线性回归模型的训练步骤

"训练"本质就是根据已知数据,找到最优模型参数(权重 w 和偏置 b)的过程

第0步:问题定义与假设确认

在训练前,必须明确:

  • 目标 :预测一个连续值
  • 核心假设 :特征与目标变量之间存在线性关系(或可通过变换近似线性)。
  • 模型形式:确定是简单一元线性回归还是多元线性回归

第1步:数据准备与预处理

这是最重要且最耗时的一步,直接影响模型成败。

  1. 特征与标签分离 :将数据集分为特征矩阵 X (形状 [n_samples, n_features]) 和目标向量 y (形状 [n_samples])。
  2. 处理缺失值:填充或删除。
  3. 处理异常值:基于业务逻辑或统计方法(如IQR)处理,因为线性回归对异常值敏感。
  4. 特征编码:将分类变量转换为数值(如独热编码)。
  5. 特征缩放/标准化 :对于多元回归,特别是使用梯度下降 时,必须 将特征缩放至相似范围(如使用StandardScaler使均值为0,方差为1)。这能加速收敛并提高数值稳定性。
  6. 数据集划分 :将数据分为训练集验证集测试集(例如 70%/15%/15%)。训练集用于训练参数,验证集用于调参和早期停止,测试集用于最终评估。

第2步:选择损失函数

对于线性回归,标准损失函数是均方误差(MSE)
L(w,b)=12m∑i=1m(y^(i)−y(i))2 L(\mathbf{w}, b) = \frac{1}{2m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)})^2 L(w,b)=2m1i=1∑m(y^(i)−y(i))2

其中:

  • mmm是样本数。
  • y^(i)=wTx(i)+b\hat{y}^{(i)} = \mathbf{w}^T \mathbf{x}^{(i)} + by^(i)=wTx(i)+b是模型预测值。
  • 乘以 1/2 是为了后续求导时形式更简洁。

目标 :找到使 L(w, b) 最小化的 wb

第3步:选择优化算法(如何找到最优参数)

这是训练的核心。主要有两种路径:

路径A:解析解(直接求解,适用于特征数不多、矩阵可逆的情况)

使用正规方程 ,一步得到全局最优解:
w=(XTX)−1XTy \mathbf{w} = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y} w=(XTX)−1XTy

  • 优点:无需迭代,一步到位。
  • 缺点
    • 计算复杂度高(O(n_features^3)),特征多时非常慢。
    • 需要矩阵 X^T X 可逆(满秩)。如果特征高度相关(多重共线性)或样本数少于特征数,则无法计算。
    • 无法处理大数据(无法放入内存)。
路径B:数值优化法(梯度下降及其变种,通用方法)

通过迭代,一步步逼近最优解。这是深度学习和大规模数据的标准方法。

步骤:

  1. 初始化参数 :通常将权重 w 初始化为小随机数或0,偏置 b 初始化为0。
  2. 前向传播 :用当前参数计算所有样本的预测值 ŷ
  3. 计算损失 :根据 ŷ 和真实 y 计算 MSE
  4. 计算梯度 :计算损失函数关于每个参数的偏导数(梯度)。
    ∂L∂wj=1m∑i=1m(y^(i)−y(i))xj(i) \frac{\partial L}{\partial w_j} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)}) x_j^{(i)} ∂wj∂L=m1i=1∑m(y^(i)−y(i))xj(i)
    ∂L∂b=1m∑i=1m(y^(i)−y(i)) \frac{\partial L}{\partial b} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)}) ∂b∂L=m1i=1∑m(y^(i)−y(i))
  5. 更新参数 :沿着梯度反方向(下降最快方向)更新参数。
    wj:=wj−α∂L∂wj w_j := w_j - \alpha \frac{\partial L}{\partial w_j} wj:=wj−α∂wj∂L
    b:=b−α∂L∂b b := b - \alpha \frac{\partial L}{\partial b} b:=b−α∂b∂L
    其中 α学习率(超参数) ,控制每次更新的步长;$w_j :$$b :$是新的参数值
  6. 重复步骤2-5,直到满足停止条件(如损失变化小于阈值、达到最大迭代次数)。

梯度下降的变种

  • 批量梯度下降 :使用全部训练数据计算梯度(稳定,但慢)。
  • 随机梯度下降 :每次随机使用一个样本计算梯度(快,但波动大)。
  • 小批量梯度下降 :每次使用一小批 样本(如32、64个)。这是最常用的折中方案。

第4步:训练循环与超参数调优

  1. 设置超参数
    • 学习率 α(最关键)
    • 迭代次数 epochs
    • 小批量大小 batch_size
    • 正则化强度 λ(如果使用L2正则化-岭回归或L1正则化-Lasso)
  2. 进行训练循环:按照路径B的步骤迭代。
  3. 监控训练过程 :绘制损失曲线,观察损失是否平稳下降。
  4. 使用验证集进行调优
    • 尝试不同的超参数组合。
    • 选择在验证集上损失最小/性能最好的那组参数。
    • 注意 :测试集在最终评估前绝对不能用于调参!

第5步:模型评估与诊断

在独立的测试集上评估最终模型。

  1. 计算评估指标
    • 均方误差(MSE) / 均方根误差(RMSE):主指标,越小越好。
    • 平均绝对误差(MAE):对异常值不敏感。
    • 决定系数 R²:表示模型可解释的方差比例,越接近1越好。
  2. 模型诊断 (检查假设是否成立):
    • 残差分析 :绘制残差(y_true - y_pred)的散点图。
      • 理想情况:残差应随机、均匀分布在0附近,不应有特定模式。
      • 如果残差呈漏斗形/曲线形,说明存在异方差性非线性关系,模型假设被违背。
    • 检查多重共线性:计算特征间的方差膨胀因子(VIF)。VIF > 10 通常表明存在严重共线性。

第6步:模型部署与预测

  1. 保存模型 :将训练好的权重 wb 以及预处理对象(如StandardScaler)序列化保存。
  2. 部署:将模型封装为API或集成到应用程序中。
  3. 预测 :对新数据X_new进行预测时,必须 先进行与训练集完全相同 的预处理(使用保存的预处理对象),然后计算:
    y^new=wTXnew+b \hat{y}{new} = \mathbf{w}^T \mathbf{X}{new} + b y^new=wTXnew+b

关键要点总结

  1. 数据预处理是基石 :特别是特征缩放/标准化,对梯度下降至关重要。
  2. 两种求解范式正规方程 (精确解,小数据) vs 梯度下降(迭代解,大数据/高维)。
  3. 梯度下降是核心引擎:理解其原理(计算梯度、更新参数)是理解所有现代机器学习模型训练的基础。
  4. 评估不止于指标 :必须进行残差分析来验证模型假设,否则预测可能不可靠。
  5. 流程是迭代的:如果评估结果不佳,需要回到第1步,检查数据、特征工程,或考虑使用更复杂的模型。

一句话概括训练的本质通过优化算法(如梯度下降),调整模型参数,使预测值与真实值之间的均方误差最小化。 这个过程就是从数据中"学习"规律的过程。

相关推荐
冬奇Lab37 分钟前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab37 分钟前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP4 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年4 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼5 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS5 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区6 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈6 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang7 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
颜酱8 小时前
单调栈:从模板到实战
javascript·后端·算法