# Containerised Application Profiling and Classification Using Benchmarks
###### Abstract
As described in Section 4, in order to identify or create features that follow these rules a statistical analysis was conducted. * Classification algorithm: The classification algorithm is responsible for the classification/mapping of application profiles to benchmark profiles. Having governance over the features of the profiles helps a great deal with the algorithm selection and implementation procedure, especially with the usual problems in machine learning algorithm development, such as overfitting or low accuracy on new data. In the selection process, all the major ML algorithms were tested with both the training dataset and an external dataset, with the random forest classifier being the most suitable, as described in Table 1.  
Having in mind these two main pillars, an application profiling system was developed. As depicted in Figure 1 the system has two main processes that are similar to each other. On the left side is the process of collecting benchmark profiles that are needed to create the training and validation dataset of the classification system. Correspondingly, on the right side is the process of profiling an application, when the profiling process is finished, the profile created is delivered to the classification algorithm that maps it to a profile of a known benchmark. The profiling system is designed to work in the Docker Container environment, and due to the nature of the features selected or created for the profile the underlying infrastructure has very little effect on the outcome of the profile, making the profile hardware agnostic, which is a key outcome of the research work. Generally, the key goal of this research is to create a profiling system for container environments with high accuracy and that is, most importantly, hardware agnostic. In the \begin{table}
\begin{tabular}{l c c c c} \hline \hline
**Classification Algorithm** & **MAE** & **RMSE** & **RAE** & **Accuracy** \\ \hline App Profiler (Random Forest) & 0.0056 & 0.0464 & 17.84\% & 91.88\% \\ \hline ForestPA & 0.0071 & 0.0526 & 22.80\% & 88.88\% \\ \hline Bayes Network & 0.004 & 0.0498 & 12.78\% & 88.78\% \\ \hline Random Tree & 0.0037 & 0.0612 & 12.00\% & 88.20\% \\ \hline SPAARC & 0.0042 & 0.0568 & 13.52\% & 87.04\% \\ \hline PART Decision List & 0.0047 & 0.0619 & 15.10\% & 85.59\% \\ \hline REPTree & 0.0054 & 0.0586 & 17.29\% & 84.53\% \\ \hline MODLEM & 0.0051 & 0.0716 & 16.42\% & 83.85\% \\ \hline Hoeffding Tree & 0.007 & 0.0765 & 22.35\% & 77.85\% \\ \hline Naive Bayes & 0.0083 & 0.0719 & 26.62\% & 74.85\% \\ \hline K-nearest neighbours & 0.0106 & 0.0931 & 33.88\% & 71.08\% \\ \hline Functional Trees & 0.0109 & 0.0899 & 34.75\% & 69.54\% \\ \hline Decision Table & 0.0291 & 0.1167 & 93.05\% & 65.86\% \\ \hline Logistic Model Trees & 0.0189 & 0.109 & 60.37\% & 55.42\% \\ \hline Simple Logistic & 0.0214 & 0.1069 & 68.53\% & 54.06\% \\ \hline Locally Weighted Learning & 0.0302 & 0.1223 & 96.82\% & 26.60\% \\ \hline Decision Stump & 0.0307 & 0.1239 & 98.31\% & 4.26\% \\ \hline KStar & 0.0311 & 0.1251 & 99.49\% & 2.51\% \\ \hline \hline \end{tabular}
\end{table} 
Table 1: List of classification algorithm error metrics and accuracy. Figure 1: Application profiler conceptual architecture of the profiling and classification process. next section, Related Work and Research (Section 2), the guide behind the research work as well as the related state-of-the-art developments in the field of application profiling is presented. The section that follows describes the Application Profiling System Architecture (Section 3), as well as all of the design choices and frameworks required to achieve the necessary functionality. Regarding the two main pillars of the research work, all the extensive statistical tests and selection processes for the features are detailed in the Profile Vector Creation (Section 4). In the same manner, the details of the ML classification algorithm selection and implementation are presented in the section ML Classification Algorithm (Section 5).