Code for predicting the next-hourly load on an electrical power system given the past load and temporal data. A vanilla neural network architecture is used to make the prediction. Data from UCI ML repository for a Portuguese Utility Elergone containing load consumption information for 370 consumers was aggregated to experiment with determining the overall system load, found under the data directory, giving an accuracy of 97.4% on test data (used as one year out of total 3-year data). An experiment was also made anomaly detection and replacement. The system architecture was later tested on a private data for Mumbai city, giving better results (since the data size was larger.)
Only the processed data of the Portuguese utility has been included here, the latter has been excluded due to it being a privately owned data, granted to us for academic use.
Calls the Anomaly Detection algorithms of Vector Norm and Probability Distribution Function and replaces the detected anomaly points (using withing ORing or ANDing of the outputs) with their next weekly value.
Normalizes the load data to lie in the range [0, 1].
Prepares the load data and data from timestamps to input vectors and output values for it to be suitable to feed a neural network.
Implementation of a vanilla feedforward neural network for the regression task with capabilities for regular SGD, SGD with momentum learning with a decreasing learning rate based on training performance feedback. This wrapper module can be called to run the process end-to-end and generate visualizations out of the training/evaluation process.
This module contains code for visualizing and comparing the load forecasts of a saved model.