Skip to content

HannesOS/Predicting-future-wind-power-output-based-on-historic-wind-park-data

Repository files navigation

Using TensorFlow to predict future wind power output based on historic wind park data - Bremen Big Data Challenge 2018 -

Osnabrück Osnabrück

Implementing ANNs with Tensorflow

Project report



To maintain a functional power supply chain it is crucial to forecast future power outputs of generators. In this project we retroactively partake in the Bremen Big Data Challenge 2018 in which competitors are ought to predict the energy output of a wind park given weather measurements like wind speed. Our approach utilized three different artificial neural network architectures: regular feedforward networks, LSTMs and GRUs. All models are realized with TensorFlow. Our results suggest that regular 'vanilla' feedforward networks consisting of four to five connected dense layers with 32 to 1042 neurons in each layer in combination with the use of an Autoencoder to reduce the dimensions of the data yield the most promising results. It is, however, important to note that a properly optimized LSTM or GRU could produce an even better outcome. Furthermore, we find out that using an Autoencoder to reduce the dimensionality of the feature space can have a positive impact on training performance regarding the speed at which the loss is minimized during backpropagation. Our best model is able to forecast power output of the wind park for the second half of 2017 with a cumulative absolute percentage error of 0.07302 after training on weather data from 2016 to mid 2017.




Repository Overview:

architecture: Contains subclasses inhereting from tf.keras.Model. Those are the models we are training.

data: Train and test data taken from the Bremen Big Data Challenge 2018 (https://bbdc.csl.uni-bremen.de/index.php/2018h/23-aufgabenstellung-2018).

data_statistics: Some statistics about the data. For example correlations between the variables. Seperated into test and train data statistics.

figures: Figures used in our report.

logs: Training logs and model summaries when searching for hyperparameters.

predictions: Wind energy output predictions the best model from each architecture.

src: Some util modules that provide useful function:
       - data-utils.py: Provides functions used for data processing and visualization.
       - model-utils.py: Provides functions relating to the model architectures and more.
       - serialization-utils.py: Provides logging and model serialization functions.

trained_models: Serialized version of trained models.

energy_output_prediction.py: Main module for this project. Demonstrates our best models and shows their results.

train.py: Contains functions required for training and optimizing our models. If used as a main module, trains the specified model.

Using_TensorFlow_to_predict_future_wind_power_output_based_on_historic_wind_park_data_Bremen_Big_Data_Challenge_2018.pdf: Project paper.

About

Project for the course 'Implementing ANNs with TensorFlow'

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published