90 steps observed30 forecast4 of 76 variables · Seq2Seq GRU
Overview
A Seq2Seq GRU in PyTorch that reads 90 steps of history and forecasts 76 weather variables 30 steps ahead, for 422 stations. Built for the Kaggle challenge of a deep learning course.
- weather variables forecast by one model
- 76
- stations, 192,432 training sequences
- 422
- best validation MAE over 30 steps
- 0.557
The problem
Forecast 76 weather variables at once for 422 stations. The variables depend on each other, so predicting them one at a time throws information away. The challenge ranked entries by mean absolute scaled error (MASE).
The approach
approach.md
- 01Standardized all 76 variables and split every station’s series by time: 192,432 sequences for training, and the last 90 + 30 steps of each station for validation.
- 02Encoded the 90 input steps with a GRU (hidden size 128, dropout 0.4) and decoded the 30 output steps with a second GRU, using teacher forcing that starts at 0.5 and decays.
- 03Added Gaussian noise to the inputs, trained with AdamW and ReduceLROnPlateau, and stopped after 10 epochs without improvement.
The result
One model forecasts all 76 variables over the 30-step horizon, with a best validation MAE of 0.557.
Stack
- PyTorch
- GRU
- Seq2Seq
- Scikit-Learn
- Pandas
Next project
Max clique, made continuous