## 4 Workload and Data Center Modeling
### Machine Learning Modeling Approach  
In this section, deep machine learning methods are used to build the workload and data center models. The machine learning models will simulate a data center and workload behavior to predict the workload demands and the data center's provisioned resources. \begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**State** & **A** & **B** & **C** & **D** & **E** & **UM** & **NM** & **FM** \\ \hline A & 0.12 & 0.87 & 0.00 & 0.00 & 0.00 & 0.00 & 0.01 \\ \hline B & 0.16 & 0.15 & 0.68 & 0.00 & 0.00 & 0.00 & 0.00 & 0.01 \\ \hline C & 0.00 & 0.25 & 0.14 & 0.60 & 0.00 & 0.00 & 0.00 & 0.01 \\ \hline D & 0.00 & 0.00 & 0.39 & 0 The analytical approach is compared with three types of deep machine learning methods: (1) Neural Network (NN), (2) Convolutional Neural Network (CNN) and (3) Long-Term Short Memory (LSTM) method as a type of Recurrent Neural Network (RNN). The goal of modeling is to forecast the workload demand, and the proper data center configuration needs to match the demands of a real, operational data center. In addition, it is to be used for the validation and evaluation of the proposed optimization module, which will be discussed later. The three machine learning methods model the workload and data center, considering different perspective attributes and correlations. Building the neural network with deep layers will increase the connections and operations that can handle the model nonlinear behavior complexity [43]. In the NN method, the machine learning model depends on a fully connected Neural Network using feed-forward dense layers, where the hidden layers are stacked on top of each other. Each neuron in its layer is connected to every neuron in the previous layer. Increasing the number of layers may cause an overfitting problem. However, with high-density attributes and non-convex target problems, increasing the number of layers with a proper relation design can increase the model's accuracy. With this model, no spatial information is passed. It works by interactions between layers and using many parameters to update the input weight for each layer. No special configuration is applied. The model is built as a sequence of five layers, starting with an input layer of 32 neurons for 32 attributes, then with \"Dense\" layers of 64, 128, 64 and 32 neurons. Finally, a one-neuron \"Dense\" layer is applied for regression output. All the logs are generalized and rearranged based on the predicted attributes. For example, for workload, the total demand is considered as the output attribute, and the other remaining attributes are considered as input variables. The same assumption applies to the other models. In the CNN method, a convolution operation is applied to correlate between attributes and extract the model features, which can help model the accuracy and parameter complexity reductions. A new layer is added to the previous model after the input layer applies a convolution operation using the filter \"Conv2D\" after changing the input shape from a row of (\(32\times 1\)) vectors into a (\(8\times 4\)) array. The next layer is \"MaxPooling2D\", which works on downsampling the input representation by taking the maximum value over the convolution filter window along the feature axis. Then, a \"flatten\" layer is applied that adds an extra channel dimension and output data batch size. Finally, 64, 32 and 1 \"Dense\" layers are applied. The convolution purpose is to preserve the spatial relationship between the log's input row vector by learning log features in small patches of the log traces. The third method, LSTM, is a type of RNN that has a memory by using self-loops between neuron layers. These self-loops allow information to persist over time between neurons. This keeps certain sequences in neural network decision operations for the fast recognition of repeated patterns. LSTM works on a variable-length sequence, tracks long-term data dependencies, maintains information about sequence order and shares parameters across the sequence.