/mars_express__esn

Tackling ESA's Mars Express Power Challenge with Echo State Networks

Primary LanguageJupyter NotebookMIT LicenseMIT

Mars Express Power Challenge

"The Mars Express Power Challenge focuses on the difficult problem of predicting the thermal power consumption. Three full Martian years of Mars Express telemetry are made available and you are challenged to predict the thermal subsystem power consumption on the following Martian year."

Competition website: https://kelvins.esa.int/mars-express-power-challenge/ [mirror]. Twitter: #MarsExpressPower.

Contents

Note: A subset of the data used in this competition, with just one and a half (Earth) years of telemetry, can be found on Kaggle.

About

This repository contains all the work I did for the 'Mars Express Power' competition. It consists of two files:

My final submission reached a RMSE of 0.089078627464354 on the public leaderboard, and later a RMSE of 0.088395630359812905 on the final leaderboard, allowing me to rank in 5th place in the competition. The file from that final submission is included here (lfs_submission_5b__rebuilt.csv), and can be regenerated as well by running the code in the Jupyter notebook.

Features

See my post in the official forum (here) for an outline of the features I used.

Models

I saw the competition as an opportunity to study and implement Echo State Networks (a type of Recurrent Neural Network). All my modelling effort was therefore spent on getting the most I could out of them, and them alone.

The Jupyter notebook's sections on "Parameter sweeps" and "Training ensembles" describe the steps taken to understand their behaviour, and to train them as accurately as possible.

The implemented echo_state_networks.py tries to follow scikit-learn's interface and naming conventions. See the "Parameter sweeps" section on the notebook for a description of its parameters.

Test set error over a 30-days sliding window Test set error in all predictions up to the current date

References

Dependencies

The code shared here was written in Python 3 (3.4.4). It has the following dependencies:

 


Leaderboard

Most of the competition's top ranked players/teams have shared their code. You can find below links to their repositories.

Rank Name Score Repository
1 MMMe8 0.079163638689759466
2 redrock 0.080301894079712499 stephanos-stephani/MarsExpressChallenge
3 fornaxintospace 0.081925542258189737 fornaxco/Mars-Express-Challenge
4 Alex 0.083848704280679837 alex-bauer/kelvin-power-challenge
5 luis 0.088395630359812905 lfsimoes/mars_express__esn
6 w 0.088993096282001347 wsteitz/mars_express
7 trnka 0.089866726592717425 ktrnka/mars-express

Publications

The competition led to the scientific publications listed below. The first, by the organizers, describes the problem. The second describes the winning team's approach. The third, again by the organizers, describes the operational model developed for the Mars Express Orbiter, based on insights gained through analysis of the different models submitted to the competition.