The DNN model is a deep neural network tailored to electricity price forecasting whose input features and hyperparameters are optimized for each market without the need of expert knowledge. The DNN model was originally proposed by Lago (2018) in a study where it was shown to obtain state-of-the-art results. Although more complex, it is often more accurate than individual LEAR models.

The module is built around the DNNModel class. This class represents a basic DNN model based on keras and tensorflow. While the model can be used standalone to train and predict a DNN, it is intended to be used within the hyperparameter_optimizer function and the DNN class. These two elements represent the main two functionalities of the module.

In particular, the hyperparameter_optimizer function provides an interface to optimize the optimal hyperparameter and features of the DNN model. Then, the DNN class considers the output of the hyperparameter_optimizer function, i.e. the set of optimal hyperparameters and features, and provides an interface to perform recalibration and new predictions. The class extends the functionality of the DNNModel class by providing an interface to extract the best set of hyperparameters, and to perform recalibration before every prediction.

The module also includes the evaluate_dnn_in_test_dataset function. This function can be used as a simplified interface to evaluate a test period in a dataset that is built using a pandas DataFrame.

The library also includes several DNN Examples to get users familiar with the syntax and capabilities of the model.