最小二乘&均方误差MSE&平均绝对误差MAE

这三者都是衡量模型预测误差的核心概念,但属于不同层面的工具。简单来说:

  • 最小二乘 :是一种求解模型参数的方法(更侧重计算过程)。
  • 均方误差 (MSE) :是一种评价预测误差的指标(更侧重结果度量)。
  • 平均绝对误差 (MAE) :也是一种评价预测误差的指标,但鲁棒性比MSE好。

下面详细拆解它们的区别与联系。


1. 最小二乘法 (Least Squares, LS)

本质 :一种参数估计方法(优化算法),常用于线性回归。

核心思想 :找到一组模型参数,使得残差平方和 (RSS) 最小。

残差平方和公式为:

RSS = \\sum_{i=1}\^{n} (y_i - \\hat{y}_i)\^2

特点:

  • 有解析解(可直接用公式计算,无需迭代)。
  • 对异常值非常敏感(因为误差被平方,大误差点的权重极大)。
  • 在误差服从正态分布 时,最小二乘估计等价于极大似然估计,统计性质最优(BLUE,即最佳线性无偏估计)。

典型应用:普通线性回归、多项式拟合。


2. 均方误差 (Mean Squared Error, MSE)

本质 :一种评价指标,衡量预测值与真实值之间的平均平方误差。

公式 :

MSE = \\frac{1}{n} \\sum_{i=1}\^{n} (y_i - \\hat{y}_i)\^2

特点:

  • 与最小二乘的优化目标仅差一个常数因子 ( \frac{1}{n} )(因此最小化MSE等价于最小化RSS)。
  • 单位是原始单位的平方(例如:若 ( y ) 是"米",MSE就是"平方米"),不直观。
  • 同样对异常值敏感。
  • 可导且凸性好,常用于梯度下降等优化算法。

与最小二乘的关系 :

最小二乘法就是在最小化MSE(忽略常数 ( \frac{1}{n} ))。所以训练线性回归模型时,两者等价。


3. 平均绝对误差 (Mean Absolute Error, MAE)

本质 :也是一种评价指标,但使用绝对差而非平方差。

公式 :

MAE = \\frac{1}{n} \\sum_{i=1}\^{n} \|y_i - \\hat{y}_i\|

特点:

  • 对异常值不敏感(因为是线性惩罚)。
  • 单位与原始数据一致,解释性强(例如"平均误差±5米")。
  • 不可导(在误差为0处),不利于基于梯度的优化,但可用次梯度或线性规划求解。
  • 当误差分布为拉普拉斯分布时,最小化MAE等价于极大似然估计。

与MSE的对比:

特性 MSE MAE
对异常值敏感度 高 低
梯度稳定性 处处可导 0点不可导
单位 原始单位的平方 原始单位
最优解对应分布 高斯(正态)分布 拉普拉斯分布
常用场景 误差大致正态、需重点惩罚大误差 数据有离群点、需鲁棒性评估

三者关系总结图(概念层级)

复制代码
模型训练/求解阶段              模型评估阶段
      │                           │
      ▼                           ▼
  最小二乘法                  MSE / MAE
      │                           │
      │(目标函数)                │(指标)
      │                           │
      └───────> 最小化RSS ──> 等价于最小化MSE
  • 训练时 :如果用最小二乘法,目标就是最小化RSS(或MSE) ;如果用其他方法(如最小绝对偏差),目标就是最小化MAE。
  • 评估时:无论用什么训练方法,你都可以计算MSE和MAE来比较模型好坏。

实际选择建议

场景 推荐方法/指标
误差大致对称、无明显离群点,追求理论最优 最小二乘 + MSE
数据中存在明显离群点,不想让它们主导模型 最小绝对偏差 + MAE
需要向非技术方解释平均误差大小 MAE(单位直观)
需要重点关注大误差(如金融风险控制) MSE(惩罚大误差)
相关推荐
moshuying1 小时前
块扩散 + GDN 改造:Clover 把「并行生成」塞进了 Agent 的长上下文里
前端·算法
云和数据.ChenGuang1 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节
没落之王1 小时前
历史系统建模:宋初太祖太宗「再立天庭」秩序重构推演
人工智能·算法·重构
xyouyuweizhu1 小时前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
迪菲赫尔曼1 小时前
【基础篇 04】第一次使用终端:命令在哪里输入,电脑现在又“站”在哪里?
python·yolo·目标检测
INGNIGHT2 小时前
91 · 最小调整代价(序列dp)
数据结构·算法·leetcode
moshuying2 小时前
扩散模型开始写代码、开网页了:350 亿参数,速度比 Jev 快一倍
前端·算法
qianbo_insist2 小时前
# 在 Qwen3.5-2B 上把 GDN-1 无损换成 GDN-2:一次完整的架构手术实验(负结果)
人工智能·pytorch·python·架构
小超人诞生日记2 小时前
C++ 异常机制详解:从抛出捕获到异常安全
c++·算法
成都旺小宝科技3 小时前
AI工牌案例:华润静安府话术执行率提到62%
人工智能·机器学习·房地产