## 2 Materials and Methods
### Machine Learning Approaches
#### 2.5.2 Random Forest  
The random forest is a supervised classification technique made up of several decision trees. When building each individual tree, it employs bagging and feature randomness in an attempt to produce an uncorrelated forest of trees whose forecast for the target variable is more precise and consistent than that of any individual tree [21]. Prior to utilizing RF, the response (target) variable had to be in the form of an ordinal scale. Thus, in this study, Tmax estimates were changed from their original continuous scales to ordinal scales. The most reasonable approach was to categorize each variable into quartiles. Then, four groups with an equal number of observations each were constructed, providing a balanced representation of all attributes: very high, high, medium, and low variable values.  
The \"confusion matrix\" is used to evaluate the performance of a model in a classification exercise where the dependent variable is categorical. The confusion matrix is an \(M\times M\) matrix, where \(M\) denotes the number of response variable classes. The matrix contrasts between the expected and true classes. This gives a comprehensive view of the categorization model's overall performance as well as the types of errors it makes. It is also possible to investigate the feature importance when using the random forest to determine the contribution of each variable to the prediction of the response variable. The random forest algorithm was implemented in Python v.3.10.8 using, among others, the packages \"sklearn\", \"matplotlib\", \"kneed\", \"tqdm\", \"math\", and \"seaborn\".  
The overall actions, purposes, and software used in this study are listed in Table 3.  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Step** & **Action** & **Purpose** & **Software** \\ \hline \multicolumn{4}{c}{Actual dataset} \\ \hline \multirow{3}{*}{1} & \multirow{3}{*}{Parameters estimation} & Calculation of pharmacokinetic parameters (see Table 1) in order to apply, in a subsequent step, the machine learning techniques & - PKanAlixTM (Monolix SuiteTM 2021R2) \\  & & & 2021R2) \\  & & & - MATLAB® R2022b (MathWorks) \\ \hline \multirow{3}{*}{2} & \multirow{3}{*}{PCA} & Application of Principal Component Analysis (PCA) in order to identify relationships among the parameters & - Python v. 3.10.8 \\  & & & \\ \hline \multirow{3}{*}{3} & \multirow{3}{*}{RF} & Application of Random Forest (RF) in order to explore the relative contribution of pharmacokinetic parameters to Tmax & - Python v. 3.10.8 \\  & & & \\ \hline \multirow{3}{*}{4} & \multirow{3}{*}{Pharmacokinetic simulations} & Perform pharmacokinetic simulations in order to generate \(2\times 2\) crossover bioequivalence datasets for several absorption kinetics (slow, typical, fast) and sampling schemes (sparse, typical, dense) & - SimulxTM (Monolix SuiteTM 2021R2) \\ \cline{1-1}  & & Simulated datasets (Steps 1–3 are repeated for each simulated dataset) & \\ \hline \multirow{3}{*}{5} & \multirow{3}{*}{Parameters estimation} & \multirow{3}{*}{Calculation of pharmacokinetic parameters} & - PKanAlixTM (Monolix SuiteTM 2021R2) \\  & & & 2021R2) \\  & & & - MATLAB® R2022b (MathWorks) \\ \hline \multirow{3}{*}{6} & \multirow{3}{*}{PCA} & Application of PCA in order to identify relationships among the parameters & - Python v. 3.10.8 \\ \cline{1-1}  & & & \\ \hline \multirow{3}{*}{7} & \multirow{3}{*}{RF} & Application of RF in order to explore the relative contribution of pharmacokinetic parameters & - Python v. 3.10.8 \\ \cline{1-1}  & & & \\ \cline{1-1}  & & & \\ \hline \end{tabular} Key: PCA, Principal Component Analysis; RF, Random Forest.  
\end{table}
Table 3: A summarized outline of actions, their purposes, and the software used for their implementation.