Xz's blog Xz's blog
首页
时间序列
多模态
合成生物学
其他方向
生活
工具相关
PyTorch
导航站

Xu Zhen

首页
时间序列
多模态
合成生物学
其他方向
生活
工具相关
PyTorch
导航站
  • 时序预测

    • Transformer 时序预测模型汇总
    • 时序预测常用衡量指标
      • RSE(Relative Squared Error,标准化平方误差)
      • MAE(Mean Absolute Error,平均绝对误差)
      • MSE(Mean Squared Error,均方误差)
      • RMSE(Root Mean Squared Error,均方根误差)
      • MAPE(Mean Absolute Percentage Error,平均绝对百分比误差)
      • MSPE(Mean Squared Percentage Error,平均平方百分比误差)
      • CORR(Correlation,皮尔逊相关系数)
      • metric 函数(汇总多个指标)
    • LogSparse Transformer
    • Informer
    • Autoformer
    • Time Series Transformer(TST)
    • Pyraformer
    • PatchTST
    • iTransformer
  • 图学习

  • 其他

  • 其他方向
  • 时序预测
xuzhen
2025-07-22
目录

时序预测常用衡量指标

# RSE(Relative Squared Error,标准化平方误差)

def RSE(pred, true):
    return np.sqrt(np.sum((true - pred) ** 2)) / np.sqrt(np.sum((true - true.mean()) ** 2))
1
2

含义: 衡量预测误差与真实数据自身方差之间的比值。相当于对RMSE进行了标准化,使其具有无量纲的特性。

公式:

RSE=∑i=1n(yi−y^i)2∑i=1n(yi−yˉ)2\text{RSE} = \frac{\sqrt{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}}{\sqrt{\sum_{i=1}^{n} (y_i - \bar{y})^2}} RSE=∑i=1n​(yi​−yˉ​)2​∑i=1n​(yi​−y^​i​)2​​

其中:

  • yiy_iyi​ 是真实值,y^i\hat{y}_iy^​i​ 是预测值
  • yˉ\bar{y}yˉ​ 是真实值的均值

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

def MAE(pred, true):
    return np.mean(np.abs(pred - true))
1
2

含义: 衡量平均每个预测值与真实值的绝对差异。

公式:

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


# MSE(Mean Squared Error,均方误差)

def MSE(pred, true):
    return np.mean((pred - true) ** 2)
1
2

含义: 衡量平均预测误差的平方,放大了较大误差的影响。

公式:

MSE=1n∑i=1n(yi−y^i)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1​i=1∑n​(yi​−y^​i​)2


# RMSE(Root Mean Squared Error,均方根误差)

def RMSE(pred, true):
    return np.sqrt(MSE(pred, true))
1
2

含义: MSE的平方根,单位和原始数据一致,解释性更强。

公式:

RMSE=1n∑i=1n(yi−y^i)2\text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} RMSE=n1​i=1∑n​(yi​−y^​i​)2​


# MAPE(Mean Absolute Percentage Error,平均绝对百分比误差)

def MAPE(pred, true):
    return np.mean(np.abs((pred - true) / true))
1
2

含义: 衡量预测误差相对于真实值的百分比。对真实值为0的数据不适用。

公式:

MAPE=1n∑i=1n∣yi−y^iyi∣\text{MAPE} = \frac{1}{n} \sum_{i=1}^{n} \left| \frac{y_i - \hat{y}_i}{y_i} \right| MAPE=n1​i=1∑n​​yi​yi​−y^​i​​​


# MSPE(Mean Squared Percentage Error,平均平方百分比误差)

def MSPE(pred, true):
    return np.mean(np.square((pred - true) / true))
1
2

含义: MAPE的平方版本,同样对较大相对误差更敏感。

公式:

MSPE=1n∑i=1n(yi−y^iyi)2\text{MSPE} = \frac{1}{n} \sum_{i=1}^{n} \left( \frac{y_i - \hat{y}_i}{y_i} \right)^2 MSPE=n1​i=1∑n​(yi​yi​−y^​i​​)2


# CORR(Correlation,皮尔逊相关系数)

def CORR(pred, true):
    u = ((true - true.mean(0)) * (pred - pred.mean(0))).sum(0)
    d = np.sqrt(((true - true.mean(0)) ** 2 * (pred - pred.mean(0)) ** 2).sum(0))
    d += 1e-12
    return 0.01*(u / d).mean(-1)
1
2
3
4
5

含义: 衡量预测值和真实值之间的线性相关性。值越接近1表示相关性越强。

公式(简化):

CORR=1100⋅1n∑j=1n∑i(yi,j−yˉj)(y^i,j−y^ˉj)∑i(yi,j−yˉj)2⋅∑i(y^i,j−y^ˉj)2\text{CORR} = \frac{1}{100} \cdot \frac{1}{n} \sum_{j=1}^{n} \frac{\sum_i (y_{i,j} - \bar{y}_j)(\hat{y}_{i,j} - \bar{\hat{y}}_j)}{\sqrt{\sum_i (y_{i,j} - \bar{y}_j)^2 \cdot \sum_i (\hat{y}_{i,j} - \bar{\hat{y}}_j)^2}} CORR=1001​⋅n1​j=1∑n​∑i​(yi,j​−yˉ​j​)2⋅∑i​(y^​i,j​−y^​ˉ​j​)2​∑i​(yi,j​−yˉ​j​)(y^​i,j​−y^​ˉ​j​)​

其中 jjj 表示变量的维度(例如多变量时间序列中的每一个维度),加入 0.01 是人为缩放调整。


# metric 函数(汇总多个指标)

def metric(pred, true):
    mae = MAE(pred, true)
    mse = MSE(pred, true)
    rmse = RMSE(pred, true)
    mape = MAPE(pred, true)
    mspe = MSPE(pred, true)
    rse = RSE(pred, true)
    corr = CORR(pred, true)

    return mae, mse, rmse, mape, mspe, rse, corr
1
2
3
4
5
6
7
8
9
10

该函数将上述所有指标组合起来,输出一个指标元组,常用于模型评估时统一计算多个性能指标。

#Time Series
上次更新: 2025/07/22, 15:24:25

← Transformer 时序预测模型汇总 LogSparse Transformer→

最近更新
01
Slice切片
07-26
02
引用与借用
07-26
03
所有权
07-26
更多文章>
Theme by Vdoing | Copyright © 2025-2025 Xu Zhen | 鲁ICP备2025169719号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式