## 3 Results
### Traditional Machine Learning Models for Urea Content Classification  
Table 3 presents the accuracy of the optimally tuned DT models when being evaluated on the test sets according to measurement positions and feature types. It can be seen that the DT classifier achieved the highest accuracy of 79.6% when \"Skin, nape\" was used as the measurement position and \"prep + der2\" was chosen as the feature vector. The position-independent experiment obtained the highest accuracy of 75.8% when the feature type \"prep\" was selected. Table 4 presents the accuracy of the optimally tuned KNN models when being evaluated on the test sets according to measurement positions and feature types. It can be seen that the KNN classifier achieved the highest accuracy of 78.8% when \"Skin, stomach\" was used as the measurement position and \"prep + der2\" was chosen as the feature vector. The position-independent experiment obtained the highest accuracy of 78.9% when the feature type \"der1\" or \"prep + der2\" was selected. \begin{table}
\begin{tabular}{l c c c c c c c} \hline \hline \multirow{2}{*}{**Subset**} & \multicolumn{2}{c}{**Mean (ppm)**} & \multicolumn{2}{c}{**Median (ppm)**} & \multicolumn{2}{c}{**Std (ppm)**} & \multicolumn{2}{c}{**CV (\%)**} \\ \cline{2-7}  & **Safe** & **Unsafe** & **Safe** & **Unsafe** & **Safe** & **Unsafe** & **Safe** & **Unsafe** \\ \hline Training & 238.3 & 3798.6 & 129.3 & 1632.8 & 251.7 & 7512.7 & 105 & 198 \\ Validation & 241.3 & 4001.1 & 123.4 & 1783.8 & 258.0 & 7856.0 & 107 & 196 \\ Test & 234.5 & 3560.4 & 126.3 & 1544.6 & 253.8 & 6934.9 & 108 & 195 \\ \hline \hline \end{tabular}  
* Std stands for standard deviation, while CV stands for coefficient of variation. The latter is defined as the ratio of the standard deviation to the mean and expressed as a percentage.  
\end{table} 
Table 2: Several basic statistics of urea content of fish samples belonging to three data subsets and two safety classes. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline \multirow{2}{*}{**Position**} & \multicolumn{5}{c}{**Feature Type**} \\ \cline{2-7}  & **orig** & **prep** & **der1** & **der2** & **prep + der1** & **prep + der2** \\ \hline Skin, nape & 74.5 & 77.5 & 71.3 & 67.5 & 74.8 & 79.6 \\ Skin, back & 71.0 & 74.4 & 76.5 & 72.8 & 77.2 & 74.8 \\ Skin, tail & 69.6 & 75.7 & 67.3 & 74.9 & 70.4 & 75.2 \\ Skin, stomach & 77.8 & 77.3 & 74.6 & 76.3 & 77.8 & 77.1 \\ Internal, nape & 76.4 & 76.5 & 73.1 & 70.3 & 75.1 & 75.5 \\ Internal, back & 74.4 & 73.1 & 72.1 & 71.7 & 74.8 & 74.8 \\ Internal, tail & 68.9 & 74.4 & 68.9 & 73.1 & 67.2 & 70.7 \\ Internal, stomach & 72.6 & 74.3 & 71.4 & 70.6 & 72.1 & 71.6 \\ All positions & 73.7 & 75.8 & 73.9 & 73.6 & 73.2 & 73.1 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Accuracy (%) on test sets of optimally tuned DT models. Figure 7: Urea content distributions of three subsets (X axis uses a base-10 logarithmic scale). Table 5 presents the accuracy of the optimally tuned SVM models when being evaluated on the test sets according to measurement positions and feature types. It can be seen that the SVM classifier achieved the highest accuracy of 78.1% when \"Skin, stomach\" was used as the measurement position and \"prep\" was chosen as the feature vector. The position-independent experiment obtained the highest accuracy of 75.1% when the feature type \"prep\" was also selected. Table 6 presents the accuracy of the optimally tuned XGB models when being evaluated on the test sets according to measurement positions and feature types. It can be seen that the XGB classifier achieved the highest accuracy of 81.6% when \"Skin, stomach\" was used as the measurement position and \"prep + der1\" was chosen as the feature vector. The position-independent experiment obtained the highest accuracy of 80.3% when the feature type \"der1\" was selected.