回归问题——相关误差指标数学概念详解以及sklearn.metrics相关方法

1、前言定义

yiy_iyi 代表第i个真实值
yˉ\bar{y}yˉ 代表真实值的平均值
yi^\hat{y_i}yi^ 代表第i个预测值

2、总平方和(Total Sum of Squares, SST)

总平方和(Total Sum of Squares, SST) : 这是最"朴素"的模型的误差。这个朴素模型不考虑任何特征,直接用目标变量的平均值 yˉ\bar{y}yˉ 作为所有样本的预测值。SST 衡量了目标变量自身整体的波动程度。
SST=∑i=1n(yi−yˉ)2{SST} = \sum_{i=1}^{n}(y_i - \bar{y})^2SST=i=1∑n(yi−yˉ)2

3、残差平方和(Residual Sum of Squares, SSR 或 RSS)

残差平方和(Residual Sum of Squares, SSR 或 RSS) : 这是我们线性回归模型的误差。它是每个样本的真实值 yiy_iyi 与模型预测值 yi^\hat{y_i}yi^ 之差的平方和。SSR 衡量了模型未能解释的波动部分。
SSR=∑i=1n(yi−yi^)2{SSR} = \sum_{i=1}^{n}(y_i - \hat{y_i})^2SSR=i=1∑n(yi−yi^)2

(yi^\hat{y_i}yi^ -yˉ\bar{y}yˉ )代表残差

4、解释平方和(Explained Sum of Squares, SSE)

解释平方和(Explained Sum of Squares, SSE) : 这是模型解释的波动部分,即预测值 yi^\hat{y_i}yi^ 与平均值 yˉ\bar{y}yˉ 之差的平方和。
SSE=∑i=1n(yi^−yˉ)2{SSE} = \sum_{i=1}^{n}(\hat{y_i} - \bar{y})^2SSE=i=1∑n(yi^−yˉ)2

5、​MSE(均方误差,Mean Squared Error)​

对残差平方和求取平均值就是均方误差,即可用于训练集也可以用于测试集,公式如下:

MSE=1m∑i=1m(yi−y^i)2MSE = \frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2MSE=m1i=1∑m(yi−y^i)2

  • MSE用于训练集
    用于训练集,此时模型的权重集还未知,要找到一组参数 (β0,β1,...,βn)(\beta_0, \beta_1, ..., \beta_n)(β0,β1,...,βn),使得 MSE 损失函数的值最小,来得到一个模型。
    得到模型之后再对训练集的预测值和真实值做MSE计算,一定是最小的
  • MSE用于测试集
    用于测试集,此时模型已经求解完成,可以获取测试集对应的预测值和准确值,进而求取测试集的均方误差。MSE用于测试集主要是用来判断模型的好坏,MSE越小,代表模型越好

6、平均绝对误差(Mean Absolute Error,简称 ​MAE)

它是用来衡量回归模型预测值与真实值之间误差的一种指标。

它的核心思想非常直观:​计算所有样本的预测值与真实值之间的绝对差,然后求平均值。​

MAE 的数学定义如下:

MAE = 1n∑i=1n∣yi−y^i∣\frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|n1∑i=1n∣yi−y^i∣

让我们来分解这个公式:

  • n: 表示样本的总数量。
  • i: 表示第 i 个样本。
  • yiy_iyi: 表示第 i 个样本的真实值
  • y^i\hat{y}_iy^i: 表示模型对第 i 个样本的预测值
  • ∣yi−y^i∣|y_i - \hat{y}_i|∣yi−y^i∣: 这是绝对误差。计算真实值和预测值之间的绝对差。取绝对值是为了确保所有误差都是正数,这样正负误差不会相互抵消。
  • ∑i=1n\sum_{i=1}^{n}∑i=1n: 求和符号,表示将每个样本的绝对误差加起来。
  • 1n\frac{1}{n}n1: 最后除以样本总数,得到平均值。

简单来说:MAE = 所有样本的 |预测值 - 真实值| 之和 / 样本个数

7、决定系数(R-squared) R² ​

R2=1−(SSR/SST)R² = 1 - (SSR / SST)R2=1−(SSR/SST)

R² ​既可以用作训练集,也可以用作测试集,

  • R² 用作训练集
    R² 用作训练集无意义,因为对于训练集SST是一个常数,而SSR本身就是用训练集的数据求取出来的最小值,所以R² 用作训练集无意义
  • R² 用作测试集
    R²用作测试集,是用于评估回归模型性能的一个核心指标。
    它的核心思想是:与一个最简单的"基线模型"相比,我们的回归模型将误差降低了多少比例。
    这个"基线模型"是什么? 它是一个非常"笨"的模型,它永远用目标变量 y的平均值 y_mean来作为预测值,不考虑任何特征。
    R² 的含义: 我们的模型通过引入特征,将预测误差降低到了基线模型误差的百分之多少。
    因此,R² 衡量的是模型对目标变量波动的解释能力。

R² 的取值范围看起来是 (-∞, 1],但通常我们这样解读:

R² 值 解释
R² = 1 完美模型。 模型完美拟合了所有数据点,残差为0(SSR=0)。这在实际中几乎不可能出现,如果出现,很可能是数据泄露或过拟合。
R² 接近 1 模型优秀。 例如 R²=0.9,意味着模型解释了目标变量90%的方差。说明模型拟合效果好。
R² > 0 模型优于基线模型。 即使 R²=0.3,也意味着你的模型比简单地使用平均值来预测要好,它解释了30%的方差。
R² = 0 模型等同于基线模型。 你的模型的预测效果和直接猜测 y_mean 一样差。说明特征可能完全没有提供有用的信息。
R² < 0 模型比基线模型还差。 这是一个警告信号!意味着你的模型拟合得极其糟糕,甚至不如直接使用平均值来预测。

重要提示: R² 为负通常发生在两种情况下:

  1. 你在测试集上评估模型,但模型在测试集上的表现非常差(模型没有泛化能力)。
  2. 你没有使用带截距项的线性回归模型(例如设置了 fit_intercept=False),而数据本身并不通过原点。此时,比较的基线就不再是 y_mean,计算逻辑会出问题。

8、sklearn.metrics相关方法

python 复制代码
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
类型 方法
均方误差(Mean Squared Error, MSE)​ mean_squared_error(y_true, y_pred)
均方根误差(Root Mean Squared Error, RMSE)​ np.sqrt(mean_squared_error(y_true, y_pred))
平均绝对误差(Mean Absolute Error, MAE)​ mean_absolute_error(y_true, y_pred)
决定系数(R² Score, R-Squared)​ r2_score(y_true, y_pred)
相关推荐
陈天伟教授10 小时前
基于学习的人工智能(5)机器学习基本框架
人工智能·学习·机器学习
m0_6501082410 小时前
PaLM-E:具身智能的多模态语言模型新范式
论文阅读·人工智能·机器人·具身智能·多模态大语言模型·palm-e·大模型驱动
zandy101111 小时前
2025年11月AI IDE权深度测榜:深度分析不同场景的落地选型攻略
ide·人工智能·ai编程·ai代码·腾讯云ai代码助手
欢喜躲在眉梢里11 小时前
CANN 异构计算架构实操指南:从环境部署到 AI 任务加速全流程
运维·服务器·人工智能·ai·架构·计算
0***R51511 小时前
人工智能在金融风控中的应用
人工智能
2501_9414037611 小时前
人工智能赋能智慧金融互联网应用:智能风控、个性化理财与金融服务优化实践探索》
人工智能
合作小小程序员小小店11 小时前
web网页,在线%抖音,舆情,线性回归%分析系统demo,基于python+web+echart+nlp+线性回归,训练,数据库mysql
python·自然语言处理·回归·nlp·线性回归
youngerwang11 小时前
【字节跳动 AI 原生 IDE TRAE 】
ide·人工智能·trae
youngerwang11 小时前
AI 编程环境与主流 AI IDE 对比分析报告
ide·人工智能
猿小猴子11 小时前
主流 AI IDE 之一的 Google Antigravity IDE 介绍
ide·人工智能·google·antigravity