Electricity demand forecasting using machine learning

By Alberto Quesada and Roberto Lopez, Artelnics.

Forecasting of power demand plays an essential role in the electric industry, as it provides the basis for making decisions in power system planning and operation.

A great variety of methods for predicting electricity demand are being used by electrical companies, which apply to short-term, medium-term, or long-term forecasting.

But the use of electricity arises from complex interactions between meteorological and socio-economic factors. In such a dynamic environment, ordinary forecasting techniques are not sufficient, and more sophisticated methods are needed.

The objective is to effectively untangle all the factors that lead to demand change and to determine the underlying causes. In this post, we explain how machine learning can help to predict the demand of energy accurately.


  1. Data set.
  2. Predictive model.

To illustrate this process, we build a neural network for predicting the demand for electricity using a real data set taken from Kaggle, one of the most important repositories of data science.

1. Data set

A good model for predicting the demand for electricity requires to analyze the following types of variables:

The data set of our example contains information about 2.000 days records with 48 attributes (hourly temperatures and demands). This adds up to more than 100.000 data.

The first column represents the date when the measure of each instance was done. The next 24 columns represent the ambient temperatures for each hour of the day. Finally, the last 24 columns represent the electric power demand for each hour of the day.

Time series charts

The time series charts are represented here. The next one is the temperature at 1:00 for the period of our data set.

Temperature time series

This figure shows that the data set starts (t=0) in winter when the temperature gets its lowest value. Then in t≈200, it gets the summertime and maximum temperatures.

The time-series charts of the demand at 7:00, 11:00, 17:00, and 24:00 are represented in the next figure.

Demand time series

In this picture, we can see that at 7:00, the demand is much more significant in winter. On the other hand, at 11:00, the demand in summer is growing up until 17:00, where demand in summer exceeds demand in winter. Subsequently, at 24:00, the demand is again higher in winter than in summer.

This is because it is freezing at 7:00 in winter, so people usually spend more electricity in the heating system. However, at 7:00 in summer, the temperature is pleasant, and there is no electricity expenditure. As it gets closer to midday, summer temperatures are higher and more electricity is needed for the air conditioner. In summer, higher temperatures are around 17:00, so it is the point of the day where summer demand gets its maximum value. Finally, at 24:00 temperatures in summer are more pleasant, and winter demand grows up again.

Lags and steps ahead

The data set is transformed into a group of instances whose inputs represent the data from the past and whose targets represent the information from the future.

The temperature associated with future demand will also be used as an input variable because we can know it in advance.

In this case, we have set the project configuration to predict the coming day from the data of the previous two days.

For that purpose, the number of input variables will be 120, and the number of target variables will be 24.

Scatter charts

Scatter charts can help us to understand how electric power demand depends on the different features.

The first scatter chart represents the dependence of the demand with the temperature. In this case, it is represented the demand for tomorrow against the temperature of today at the same hour.

Temperature scatter chart

As we can see in the previous picture, there is a minimum demand for tomorrow when the temperature is the most pleasant (55-65°F). Then, the demand grows up as the temperature moves away from that value.

In this case, it is represented the scatter chart of the demand and the past demands. We plot the demand for tomorrow at 12:00 against the demand of today at the same hour.

Demand scatter chart

There is also a minimum value for the demand of tomorrow when the demand of today gets its minimum value.

Predictive model

These data are brought together in a single predictive model to discover associations between all the above variables.

This will give us a more in-depth understanding than ever before on the causes of demand and allow better decision making.

Neural network

Neural networks can anticipate customer response and changing attitudes about energy consumption by looking at all types of factors.

The results are improved forecast accuracy, which means better information to decide what the best course of action is.

Model selection

Order selection algorithms are used to get the optimal number of neurons in a neural network. In this case, the incremental order method is used.

The next chart shows the loss history for the different subsets during the incremental order selection process. The blue line represents the training loss, and the red line symbolizes the selection error.

Loss history

As we can see in the previous picture, the optimal order is 7. The next table shows the order selection results by the incremental order algorithm.

Optimal order7
Optimum training loss0.013
Optimum selection error0.168
Iterations number10
Elapsed time1118 s

By looking at the loss values, we can notice that our predictive model has a good accuracy because of the low loss values. Finally, the architecture of this neural network can be written as 120:7:24.

Testing analysis

The testing analysis objective is to evaluate the predictive power of the neural network on new data that have not been seen before, the testing instances.

This process will determine if the predictive model is good enough to be moved into the deployment phase.

First, we perform the linear regression analysis between the scaled neural network outputs and the corresponding targets for an independent testing subset.

The next figure represents the linear regression chart of the predicted demand at 1:00.

Linear regression analysis

The next table lists the linear regression parameters average for the scaled outputs (demand 1-24h).

Linear regression parameters

The intercept, slope, and correlation are very similar to 0, 1, and 1. Therefore, the neural network is predicting well the testing instances.

Finally, we calculate the error statistics. As we have 24 target variables, we calculate the average of all these error statistics.

All in all, the mean percentage error is 5,113%. It is a low value when we are studying demand forecasting, so the model can be deployed now.

Model deployment

Once we have our predictive model tested, we can apply it to predict the electric power demand for tomorrow. This process is called model deployment.

The next figure shows the hourly electric power demand prediction for tomorrow in kW, considering the following inputs: yesterday, today, and tomorrow's temperatures and yesterday and today power demands.

Demand prediction

As we can see, the graph looks as expected. Between 5:00 and 8:00, the electricity demand will increase its value by 4.6 MW. This phenomenon matches the beginning of residential, industrial, and services activities.

Then, between 16:00 and 20:00, its value will increase by 3.2 MW. The reason is that most people come back home at these hours, which implies that people turn on the heating system, etc.


Machine learning permits us to model and understand very complex systems that allow companies to represent the complexity of electricity demand in a way previously unachievable.

More specifically, the objective is to achieve more accurate forecasts for the demand for electricity.

Due to predictive analytics, we can predict tomorrow's electric demand with highly successful results. For that reason, this will be a significant advance for companies in the energy sector.

The use of machine learning means better information to decide what the best course of action is. Therefore, companies that use this technology will have a competitive advantage over their competitors.

You can use the neural network software Neural Designer to build your predictive models in just a few clicks. Download Neural Designer now and try it for free.

Subscribe To Our Newsletter

Related posts: