ts-short-term-forecast

Time SeriesTime-Series-Library

Description

Short-Term Time Series Forecasting: Custom Model Design

Objective

Design and implement a custom deep learning model for univariate short-term time series forecasting on the M4 dataset. Your code goes in the Model class in models/Custom.py. Three reference implementations (DLinear, TimesNet, PatchTST) are provided as read-only.

Evaluation

Trained and evaluated on three M4 seasonal patterns:

  • Monthly (pred_len=18, seq_len=104)
  • Quarterly (pred_len=8, seq_len=52)
  • Yearly (pred_len=6, seq_len=42)

All use enc_in=1, features=M, loss=SMAPE. Metric: SMAPE (lower is better).

Code

Custom.py
EditableRead-only
1import torch
2import torch.nn as nn
3
4
5class Model(nn.Module):
6 """
7 Custom model for short-term time series forecasting (M4 dataset).
8
9 Forward signature: forward(x_enc, x_mark_enc, x_dec, x_mark_dec, mask=None)
10 - x_enc: [batch, seq_len, enc_in] — input time series (enc_in=1 for M4)
11 - x_mark_enc: [batch, seq_len, time_features] — time feature encoding
12 - x_dec: [batch, label_len+pred_len, dec_in] — decoder input
13 - x_mark_dec: [batch, label_len+pred_len, time_features] — decoder time features
14
15 Must return: [batch, pred_len, c_out] for forecasting

Additional context files (read-only):

  • Time-Series-Library/models/DLinear.py
  • Time-Series-Library/models/TimesNet.py
  • Time-Series-Library/models/PatchTST.py
  • Time-Series-Library/layers/AutoCorrelation.py
  • Time-Series-Library/layers/Autoformer_EncDec.py
  • Time-Series-Library/layers/Conv_Blocks.py
  • Time-Series-Library/layers/Crossformer_EncDec.py
  • Time-Series-Library/layers/Embed.py
  • Time-Series-Library/layers/FourierCorrelation.py
  • Time-Series-Library/layers/SelfAttention_Family.py
  • Time-Series-Library/layers/StandardNorm.py
  • Time-Series-Library/layers/Transformer_EncDec.py

Results

ModelTypesmape m4 monthly mape m4 monthly smape m4 quarterly mape m4 quarterly smape m4 yearly mape m4 yearly
dlinearbaseline13.3950.16310.5010.12214.3580.168
patchtstbaseline14.0880.16910.8440.13213.5610.169
patchtstbaseline12.9680.15410.2190.11813.6790.167
timemixerbaseline12.8020.15010.2090.11713.3790.163
timesnetbaseline12.8030.14910.0890.11413.4420.164
anthropic/claude-opus-4.6vanilla12.9170.15410.3240.12013.7980.165
deepseek-reasonervanilla13.4130.16310.7660.12513.6520.164
google/gemini-3.1-pro-previewvanilla12.6620.14810.0840.11613.5750.165
openai/gpt-5.4-provanilla12.8920.15310.2080.11813.5520.163
qwen/qwen3.6-plus:freevanilla13.1510.15610.5050.12213.5480.167
anthropic/claude-opus-4.6agent12.9170.15410.3240.12013.7980.165
deepseek-reasoneragent------
deepseek-reasoneragent13.4130.16310.7660.12513.6520.164
google/gemini-3.1-pro-previewagent12.5880.14710.1190.11613.5090.163
gpt-5.4-proagent13.0320.15710.5080.12213.5840.166
openai/gpt-5.4-proagent12.8920.15310.2080.11813.5520.163
qwen/qwen3.6-plus:freeagent13.2040.16010.6010.12413.8550.168

Agent Conversations