# VITA-D: A Radionic Web Tool for Predicting Vitamin D Deficiency Levels
## 3 Materials and Methods
### Feature Selection Processes in ML Algorithms
#### 3.5.2 Python Libraries  
The experimentation was performed using (i) Python libraries (Pandas, NumPy, Matplotlib, Seaborn, Joblib, Optuna, Warnings), (ii) Google Colab GPU Pro+ (for data preprocessing and model training and validation), and (iii) Scikit-learn, which provided the Random Forest classifier with the most relevant functions (_sklearn.linear_model; sklearn.ensemble; sklearn.svm; sklearn.model_selection; sklearn.metrics; sklearn.preprocessing_), Figure 6.  
The computational environment used for these experiments consisted of an Intel Core i7 14 th Generation processor, an NVIDIA RTX 4060 GPU located in the simulation Laboratory at UTPL (Loja-Ecuador) with 8 GB VRAM, and 64 GB of DDR4 RAM. Storage was handled with a 1 TB SSD NVMe drive, and the operating system was Windows 11. The experiments were executed in Python 3.9, with specific library versions including Scikit-learn 1.2.2, Optuna 3.0.3, TensorFlow 2.10, and PyTorch 1.13.1. These details ensure that the study can be replicated accurately under similar computational setups. These libraries have been selected for specific tasks within the development of ML models, from data preprocessing to the evaluation and validation of predictive models. The hyperparameters used in the models were selected to optimize the accuracy and generalization of the predictions. Table 3 shows the hyperparameters used during the training of each model. In the case of RF, the _n_estimators_ hyperparameter defines the number of trees in the forest, which improves the stability of the model and the accuracy of predictions. In this study, 150 trees were used. The _max_features_ hyperparameter specifies the number of features to consider when splitting a node. The values used were 5, 7, and 9, which enhanced the model's predict viability without overloading _it. max_depth_ limits the depth of the trees and prevents overfitting. The maximum depth values tested were none, 3, 10, and 20. The criterion hyperparameter defines the function used to measure the quality of a split; in this model, the \"gini\" and \"entropy\" criteria were used. Additionally, to prevent overfitting and ensure model stability, cross-validation was implemented using _RepeatedKFold_, with 5 splits and 3 repeats. In the SVM model, the Radial Basis Function (RBF) kernel was used, allowing the model to capture non-linear relationships in the data, which is ideal for problems where data are not linearly separable. The \(C\) parameter controls the penalty for classification errors, and in this case, a value of 1 was used, balancing the model complexity with classification errors; _gamma_ defines the influence of each training example, and the value auto was used, which sets gamma as the inverse of the number of features in the dataset. To improve \begin{table}
\begin{tabular}{l c c c} \hline \hline
**Hyperparameters** & \
\begin{tabular}{c} **Random Forest** \\ **Classifier** \\ \end{tabular} & **SVM** &
\begin{tabular}{c} **Logistic** \\ **Regression** \\ \end{tabular} \\ \hline Python libraries & Pandas, Scikit-learn & Scikit-learn & Pandas, Scikit-learn \\ GridSearch Optimization & GridSearch with CV & GridSearch with & - \\  & GRBF kernel & - & rbf & - \\ Kernel & - & 1 & - \\ C & - & auto & - \\ gamma & 150 & - & - \\ max\_features & 5, 7, 9 & - & - \\ max\_depth & None, 3, 10, 20 & - & - \\ criterion & gini, entropy & - & - \\ Cross-validation & RepeatedKFold (5 splits, & - & Training 80\%-Testing 20\% \\  & 3 repeats) & Accuracy, Confusion & Accuracy, Confusion \\ Evaluation metrics & Accuracy & Matrix & Matrix \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Hyperparameters used during ML training algorithms. Figure 6: VITA_D web application workflow. The symbols represented the languages (Java Script, CSS, HTML, python), data bases (MySQL), and platforms (Django) used in the Web GUI interface development tool. model accuracy, _GridSearch_ was used to find the optimal values for C and gamma, thus optimizing the overall performance of the model.