# What is forecasting

## What is forecasting?

Forecasting refers to predicting future values based on historical data. On the *Eliona*-platform enables the *Forecast App*, to automatically analyze time-series data and create reliable forecasts. Typical use cases include:

* Energy consumption in buildings
* Room temperatures and climate control
* Condition monitoring of systems

The system thereby identifies recurring patterns, seasonal fluctuations, and sudden deviations in order to predict future developments.

***

## How do LSTM models work in the *Forecast App*?

### 1. Recurrent Neural Networks (RNN)

Unlike classical neural networks, RNNs process data sequentially and maintain an internal state (“memory”). This allows earlier time points to have a direct influence on later predictions.

### 2. Long Short-Term Memory (LSTM)

LSTM cells are a special RNN architecture that:

* **Long-term dependencies** are preserved by “forgetting” irrelevant information and passing relevant information along over long sequences.
* **Short-term fluctuations** are detected and stored in the model.
* **Gating mechanisms** (input, forget, and output gates) are used to specifically control which information enters the internal state or is removed from it and when.

In the *Forecast App* the LSTM model considers a **context window** (parameterized by *Context Length*) of past measurement values and then predicts a defined number of future steps based on that (specified via *Forecast Length*).

***

## Role of *TensorFlow*

*TensorFlow* is the underlying framework that in the *Forecast App* is responsible for the following tasks:

1. **Model construction**\
   Definition and connection of the LSTM cells as well as additional layers (e.g. Dense layers).
2. **Efficient training**\
   Use of GPU acceleration, automatic differentiation, and optimized algorithms (e.g. Adam optimizer).
3. **Continuous updating**\
   Retraining with new data in order to keep the model aligned with current trends at all times.

Further information:\
[→ TensorFlow documentation](https://www.tensorflow.org/api_docs)\
[→ TensorFlow Keras documentation](https://www.tensorflow.org/guide/keras)
