最小二乘&均方误差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(惩罚大误差)
相关推荐
zephyr0523 分钟前
动态规划-最长上升子序列问题
算法·动态规划
闪电悠米42 分钟前
力扣hot100-56.合并区间-排序详解
数据结构·算法·leetcode·贪心算法·排序算法
用户8356290780511 小时前
使用 Python 在 Excel 中添加和自定义文本框
后端·python
总裁余(余登武)2 小时前
python多个py文件打包【解决exe不能移动运行bug】
python
卡提西亚2 小时前
leetcode-1438. 绝对差不超过限制的最长连续子数组
算法·leetcode·职场和发展
Java面试题总结2 小时前
LeetCode 93.复原IP地址
算法·leetcode·职场和发展·.net
kisloy2 小时前
【python零基础教程第24讲】代码规范与质量管控
开发语言·python
从零开始的代码生活_3 小时前
C++ 多态详解:虚函数、动态绑定、抽象类与虚表原理
开发语言·c++·后端·学习·算法
xywww1683 小时前
AWS 账号权限怎么分:根用户和 IAM 用户区别及日常使用建议
大数据·开发语言·人工智能·python·gpt·云计算·aws
泷寂3 小时前
最小生成树 (MST基础)
算法