## 5 Results and Discussion  
Keras Library [30] was used to implement our deep-learning approach. The original dataset contains 15,271 genes (features). As mentioned in the proposed method section, we initially split the entire dataset into testing and training sets. The training data was then used to create our model. We designed a CNN models that is very simple in which we limited the number of convolutional layers to one convolutional layer. That is because Increased CNN model depth does not necessarily improve the performance on bioinformatics data [31], even though deeper models based on CNN have shown great performance in computer vision problems [32]. For problems like the prediction of a cancer type, shallower models are recommended when the samples' number is quite tiny compared to the number of factors. Such simple models use fewer training resources and prevent overfitting [33]. Based on these two factors, we built a CNN model that adheres to the most often used models in computer vision when the input has a two-dimension format, such as an image. The 2D kernels in this CNN are used to extract local features. The size, number, and stride of the kernel parameters, as well as the total amount of nodes in the fully linked layers, are tuned using the grid search method [34]. We first started by training our designed CNN model using the entire features (genes). The features are reshaped into 2D-image-like data to be appropriate for our designed CNN model. Since the training data has imbalanced classes, we set the class weight parameter to \"balanced\" to automatically adjust the weights based on the class frequencies in the training data. We utilized the cross-validation method with a leave-one-out to assess the correctness of our model. Our training data set was initially divided into ten roughly equal sets. The validation set was represented by the elimination of one set, and the training set was created by pooling the remaining nine sets. We carried out this procedure ten times, substituting one set for the validation set each time. We will have a different validation set each time this way, allowing us to assess the generalizability of our model. We evaluated the model on the test set and the obtained results are shown in Table 1.  
We applied Lasso, Chi-Square, and Random Forest features selection to select the genes that significantly affect the class by calculating their feature importance. To select the most relevant features, we used five thresholds \(\mu\), 0.5 \(\mu\), 2 \(\mu\), 4 \(\mu\), and 8 \(\mu\) on each feature selection method. We used the features selected by these five thresholds to create five CNN classification models each model has the same setting that we adjust for the entire features. \begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Model No.**} & **CV Tuning** & \multirow{2}{*}{**Tuning Std**} & **Threshold** & \multirow{2}{*}{**No. of Features**} \\  & **Average** & & & **(Feature** \\  & **Accuracy** & & **Coefficient**) & \\ \hline \hline \(1\) & 95.83\% & (+/\(-\)1.28\%) & No & 15,271 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Models’ accuracies when using the entire features. The number of features that resulted from the different feature selection methods (Lasso Random Forest, Chi-Square) using the five thresholds together with their corresponding model tuning accuracy based on 10-fold cross validation are presented in Tables 2-4. Tables 2-4 show that the model performance on the features that are selected using the features selection method is better compared to it is performance on the entire set of features. As revealed in Table 2, model 4 achieved a tuning accuracy of 97.11% and that makes it as the best model. The features for model 4 are selected using Lasso with feature importance threshold set to 4 \(\upmu\). The selected threshold produces 597 features that will be used to score the model accuracy on the test data. The best model in Table 3 is model 3, which achieved a tuning accuracy of 96.94%.