## 6 Analysis of Experiment Results
### Algorithm Accuracy
In the context of the implementation, it indicates that the program has found two vectors with the same input values that belong to different classes, causing a division by zero in one of the formulas used to calculate the terminated ramp functions the TRSVM uses. This causes further questions regarding the dataset itself. Interestingly, TWNFI's accuracy dropped by 18% compared to the 5000-sample run, for reasons unknown. Despite this, it still comes out better than the Naive Bayes classifiers in terms of accuracy, all while maintaining around the same computational times. Meanwhile, the NB classifiers see a greater increase in computational times, while their accuracy remains relatively low (Table 5). For the whole set, we are also unable to compute TRSVM's performance due to lacking the RAM to store the entire Gram Matrix alone (the experiments were conducted on a laptop with 16 GB RAM, whereas the entire Gram Matrix of the set would require approximately 36 GB RAM). TWNFI, meanwhile, sees an increase in accuracy once again, while retaining a close computational time to the previous runs. The NB classifiers, on the other hand, mostly repeat the situation with the 10,000-sample run, remaining low accuracy-wise and having their computational times further increase (Table 6). Figure 7 demonstrates the difference between the performance of the chosen algorithms: accuracy, fitting time, prediction time and mean square error. \begin{table}
\begin{tabular}{l l l l l} \hline \hline  & **TR-SVM** & **TWNFI** & **NB Classifier (Gaussian)** & **NB Classifier (Complement)** \\ \hline Accuracy percentage & N/A & 78\% & 56\% & 48\% \\ \hline Avg. fitting time (ms) & N/A & 12,122.58 & 110.80 & 102.51 \\ \hline Avg. prediction time (ms) & N/A & 0.4547 & 0.2075 & 0.1328 \\ \hline Mean square error (for 50 experiments) & N/A & 0.22 & 0.44 & 0.52 \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Comparison of chosen machine learning algorithms for the whole set. \begin{table}
\begin{tabular}{l l l l l} \hline \hline  & **TR-SVM** & **TWNFI** & **NB Classifier (Gaussian)** & **NB Classifier (Complement)** \\ \hline Accuracy percentage & 68\% & 76\% & 54\% & 40\% \\ \hline Avg. fitting time (ms) & 33,368,058.12 & 13,610.57 & 4.0899 & 4.1547 \\ \hline Avg. prediction time (ms) & 388,989.52 & 0.4662 & 0.1471 & 0.0814 \\ \hline Mean square error (for 50 experiments) & 0.32 & 0.24 & 0.46 & 0.6 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Comparison of chosen machine learning algorithms for 2500 samples. \begin{table}
\begin{tabular}{l l l l l} \hline \hline  & **TR-SVM** & **TWNFI** & **NB Classifier (Gaussian)** & **NB Classifier (Complement)** \\ \hline Accuracy percentage & N/A & 64\% & 58\% & 48\% \\ \hline Avg. fitting time (ms) & N/A & 10,901.85 & 15.105 & 14.413 \\ \hline Avg. prediction time (ms) & N/A & 0.4151 & 0.1628 & 0.0863 \\ \hline Mean square error (for 50 experiments) & N/A & 0.36 & 0.42 & 0.52 \\ \hline \hline \end{tabular}
\end{table} 
Table 5: Comparison of chosen machine learning algorithms for 10,000 samples. While the Naive Bayes classifier takes less time to compute than the others, it returns pretty bad results, with accuracy fluctuating at 40-60% regardless of subset size. This is likely due to the features being dependent on each other, since a known weakness of the Naive Bayes classifier is that it assumes all features are independent from each other. Although the current literature mentions Naive Bayes classifiers being used in the medical field, it is likely that better multicollinearity detection methods are required for optimal results. TRSVM does not work on the whole set and a 10,000 sample subset, returning _MemoryError_ instead, which is caused by hardware limitations, and returns divide by zero _RuntimeErrors_, which is caused by the normalization methods creating two samples with identical feature values that belong to different classes (therefore causing a division by zero in one of the formulae).