# Intelligent Resource Orchestration for 5G Edge Infrastructures
## 7 Results
### Forecasting Results
#### 7.2.1 Bitbrains Trace Forecasting  
The Bitbrains dataset contains traces for 1250 VMs. We classified these VMs into four groups:  
* Incomplete traces (252): Only VM traces that include data for all the time intervals of the complete 30-day period were selected. Incomplete traces were excluded. * Low CPU usage traces (875): VM traces with low CPU usage (averaging under 10%) were discarded when applying the forecasting models. For these traces, we assumed the expected CPU usage for the next 24 h period could be computed simply as the average CPU usage from the historical dataset. * Unpredictable traces (81): Many VM traces exhibit unpredictable CPU usage patterns, including variable length periods of 0% CPU usage and variable length periods of nearly 100% CPU usage. For these unpredictable traces, we assumed that the expected CPU usage for the next 24 h period was always 100%. This prevented potential under-provisioning situations that could lead to degradation of CPU performance. * Predictable traces (42): These are the VM traces that did not fall into any of the groups above. There are a total of 42 predictable traces in the Bitbrains dataset. The different forecasting models were exclusively applied to this trace group. We ran and compared six different forecasting models:  
* Naive seasonal model, with K = 24 h
* Bayesian regression model, using a Ridge-type regressor to predict the target time-series from lagged values, using a lag period of 24 h
* Facebook Prophet model, without specific parameters (default values were used)
* Auto-ARIMA model, without specific parameters (default values were used)
* RNN model based on LSTM, with the following parameters:
* input_chunk_length = 24
* output_chunk_length = 24
* hidden_dim = 10
* n_rnn_layers = 1
* batch_size = 32
* epochs = 50 For the remaining RNN-LSTM parameters, the default values were used. * N-BEATS model, with the following parameters:
* input_chunk_length = 24
* output_chunk_length = 24
* epochs = 50 For the remaining N-BEATS parameters, the default values were used. Due to space limitations, it is impossible to display the charts comparing the actual and predicted CPU usage values for the 24 h testing period across all combinations of VMs and prediction models. Therefore, we only present a sample of four selected VMs, which are displayed in Figure 4.  
The graphs presented in Figure 5 illustrate the prediction accuracy (RMSE) achieved by the different models when forecasting CPU usage for the 42 VMs considered in this dataset. It is evident that certain forecasting methods outperformed others depending on the trace. On average, the Bayesian regression and neural network-based models (RNN-LSTM and N-BEATS) exhibited lower RMSE values compared to the other models. Figure 4: Forecasting results for a subset of Bitbrains VM traces (% CPU usage). This observation is further supported by Table 1, which summarizes the average RMSE and execution time (including fit and predict functions for all selected VMs) for each prediction model. Notably, Bayesian regression demonstrated the highest level of accuracy. In terms of execution times, neural network models (RNN-LSTM and N-BEATS) required more computational time for model fitting, but they did not yield an improved accuracy compared to Bayesian regression. In addition to the six tested forecasting models, we proposed the utilization of an adaptive model that combines all of the analyzed models, as shown in Table 1. The un \begin{table}
\begin{tabular}{l l l} \hline \hline
**Model** & **RMSE (Avg.)** & **Exec. Time (Fit + Predict)** \\ \hline Naive seasonal & 0.0613 & 33 s \\ Bayesian Regression & 0.0536 & 36 s \\ FB Prophet & 0.0627 & 75 s \\ Auto-ARIMA & 0.0731 & 7 min \\ RNN-LSTM & 0.0619 & 23 min \\ N-BEATS & 0.0580 & 1 h \\ \hline Adaptive (oracle) & 0.0455 & – \\ Adaptive (realistic) & 0.0584 & – \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Summary of prediction accuracy (average RMSE) for Bitbrains traces.