主页 模型库 竞赛 学习中心 工具箱 论文库 前沿 建模空间 AI建模
学习中心 探索专题 时间序列 预测评估

本页实验台

  1. 滚动预测
  2. 误差指标
  3. 基准模型
LAB 01

滚动预测

训练窗随时间前移,一步步给出样本外误差

一共做了多少次滚动—
滚动预测的平均 MAE—
只切一刀(最后一段)的 MAE—
各次滚动之间的标准差—
滚动预测(rolling origin)就是把"训练到哪、预测哪一段"这条线一次次往后挪。每挪一次得到一组样本外误差,最后取平均。这么做有两个好处:第一,它模拟了你实际使用模型的方式——永远只用过去预测未来;第二,它给出很多个误差估计,而不是一个。读数里请对比"滚动平均"和"只切一刀"这两个数。单次划分的结果常常和滚动平均差出不少,而且你并不知道自己碰巧切在了容易的一段还是难的一段。默认参数下滚动平均是 2.25,而只切最后一刀是 2.29;把第一个训练窗拉到 100,单次划分变成 3.65,而滚动平均还是 2.25——差了六成,纯粹因为最后那一段恰好难预测。再看"各次滚动之间的标准差":它是 0.85,接近误差本身的四成。用一个数去汇报预测精度,等于扔掉了这个离散度。最后说"固定窗口"这个选项。默认是扩张窗口(训练数据越用越多);勾上之后变成固定长度的滑动窗口。如果你相信系统的规律在变(大多数业务数据都在变),滑动窗口更合适,因为它会主动忘掉太老的数据。这两种做法没有绝对优劣,但必须和你对"规律稳不稳定"的判断一致。
LAB 02

误差指标

MAE、RMSE、MAPE、sMAPE 在同一组数据上的差异与陷阱

MAE / RMSE / MAPE / sMAPE / MASE—
RMSE / MAE 的比值—
哪个指标在这组数据上不可靠—
MASE 的含义—
这几个指标衡量的不是同一件事,换一组数据排名就会变。MAE vs RMSE:RMSE 对大误差的惩罚是平方的,所以只要有一个离谱的预测,RMSE 就会被拉高,而 MAE 基本不动。选"有一个巨大的异常值"看两者的比值:正常数据上 RMSE/MAE 是 1.19,加一个离群误差之后跳到 3.19,而 MAE 只从 1.62 涨到 2.32。RMSE/MAE 这个比值本身就是一个有用的诊断:接近 1.25 说明误差接近正态,明显大于 2 说明有重尾或异常值。MAPE 的坑最深。选"有接近 0 的取值":MAPE 从 3.3% 直接跳到 128%,sMAPE 也到 58%,而 MAE 和 RMSE 一点没变——因为 MAPE 的分母是实际值。而且 MAPE 对低估和高估不对称——预测值比实际大一倍,误差是 100%;小一半,误差只有 50%。这个不对称会系统性地把你的模型推向低估。sMAPE 想修正这一点,但它自己也有别的毛病,并没有真正解决问题。MASE 是这几个里最值得推荐的。它把误差除以"朴素法在训练集上的平均误差",于是变成一个无量纲的数:MASE < 1 表示比朴素法好,> 1 表示还不如。它没有除以零的问题,可以跨不同序列比较,这也是 M4 竞赛选它的原因。
LAB 03

基准模型

朴素法与季节朴素法——比不过它们的复杂模型没有意义

模型的 MASE—
朴素法 / 季节朴素法 / 漂移法的 MAE—
哪个基准最强—
模型赢了吗—
三个基准方法:朴素法(预测 = 最后一个观测值)、季节朴素法(预测 = 上一个周期的同一位置)、漂移法(沿着首尾连线外推)。它们都不需要训练,也没有任何参数。但在合适的数据上,它们非常难打败。选"随机游走":理论上朴素法就是最优预测,任何模型都只能追平,不可能超过——如果你的模型在随机游走上"赢"了朴素法,几乎可以肯定是过拟合或者数据泄漏。选"季节很弱、噪声很大":模型学到的那点季节信号很可能还不够抵消它多出来的方差。选"中途结构变化":三个基准里季节朴素法明显最强(4.08 对 7.29 和 7.36),因为它只看一年前的同期,对水平跳变的适应最快。Holt-Winters 在这组数据上仍然赢了它 1.69 倍——但那是因为跳变发生在六成处,后面还留了四成数据让它重新估参数。跳变越靠近预测点,模型越来不及适应,基准就越容易反超。所以报告结论时,基准不是走过场,而是判断有没有价值的唯一尺子。M 系列预测竞赛几十年来反复证明:在真实业务序列上,简单方法的组合常常打败复杂模型,而很多论文里的"显著提升"在换了基准之后就消失了。

这一页想说的

时间序列评估的三条硬规矩,违反任何一条结论都不可信:一、永远按时间切分,永远只用过去预测未来;二、用滚动预测给出一组误差,并且报告它的离散程度,而不是一个数;三、必须和朴素基准比,并且把基准的成绩一起写出来。这三条都不难做,也都不花什么算力,但它们决定了你报出来的那个数字有没有意义。如果时间只够做一件事,那就做第三条。

接着看

← 返回模块 ← 返回探索专题