Federated Wind Speed Forecasting in Finland
Finnish weather stations train their own wind forecasts and share only model parameters with their neighbours in a graph. Neither of the two graphs I tried gave a practical improvement.
The Finnish Meteorological Institute (FMI) publishes hourly observations from about 200 weather stations. My project for the Federated Learning course at Aalto (spring 2026) asked whether a station forecasts wind better if it learns together with similar stations without sharing its raw data.
Each of 136 stations trains a linear model on its own 2024 data. The model forecasts the wind speed two hours past its newest reading, from the last three hourly wind speeds and the latest temperature, humidity and pressure. Training adds a penalty that pulls the parameters of stations linked in a graph towards each other. Each station sees only its own data and its neighbours’ current parameters. I compared two ways to build the graph:
| Graph | Each station is linked to |
|---|---|
| Geographic | its five nearest stations |
| Correlation | the five stations whose wind speed correlates most with its own |
I chose the strength of the penalty on a validation period and measured the error on the last 15% of the year:
| System | Test error (MSE) |
|---|---|
| Each station alone | 0.2638 |
| Geographic graph | 0.2630 |
| Correlation graph | 0.2628 |
The error is on standardized wind speed and averaged over the stations. Both graphs lower it by less than half a percent. A station has thousands of hourly examples for a model with seven parameters, so it has little to learn from its neighbours. The report suggests trying a graph with more flexible models and with stations that have less data.
After the course I went through the code again. The training loop looks up each station’s neighbours in the wrong row of the graph, so most links join the wrong pair of stations. With the rows fixed, the result stays the same. The repository keeps the code as graded and lists this and two smaller issues in its README.