## 3 Method
### Machine Learning Model Implementation  
Table 2 lists the parameters of XGBoost and SVM used in the experiment. In XGBoost used in this study, the number of gradient boost trees was set to 100, and the learning rate was set to 0.1. The gamma of the used XGBoost was set to 0, and the maximum depth was set to 6. To conduct a binary classification (Parkinson's and control), the learning objective was set to binary. For SVM, the C was set to 1, and \(\gamma\) was set to 1/(number of features - variance of input values). To classify the two classes, SVM used linear kernel. Table 3 lists the layer, output shape, and number of parameters of the DNN used in the experiment. It consisted of one input layer, seven hidden layers, and one output \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Model** & **Parameter** & **Explanation** & **Value** \\ \hline \multirow{5}{*}{XGBoost} & n\_estimators & \multicolumn{2}{c}{Specify the number of gradient boosted trees} & 100 \\  & learning\_rate & \multicolumn{2}{c}{Determine the percentage of improvement in learning rates} & 0.1 \\ \cline{3-4}  & gamma & Minimum loss reduction required to make a further partition & 0 \\ \cline{3-4}  & \multirow{2}{*}{
\begin{tabular}{c} max\_depth \\ objective \\ \end{tabular} } & \multicolumn{2}{c}{Maximum tree depth for base learners} & 6 \\ \cline{3-4}  & & Specify corresponding learning objectives & binary \\ \hline SVM & kernel & Sets the type of kernel that the algorithm uses to classify & linear \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Hyperparameters of the classification algorithm used in this experiment. Figure 3: Fitness values for each generation (GA2). layer. In addition, a dropout layer was used to prevent the overfitting of the model. For the activation function of all layers except the output layer, the rectified linear unit (ReLU) function was used to prevent gradient vanishing. The activation function of the output layer was set to the sigmoid function usually used in binary classification. The expressions for the ReLU and sigmoid functions are as follows:  
\[f(x)=x^{+}\equiv\max(0,x)=\left\{ \begin{array}{l}0\ (x<0)\\ x\ (x\geq 0)\end{array} \right. \tag{7}\]  
\[Sigmoid(x)=\sigma(x)=\frac{1}{1+\exp(-x)} \tag{8}\]  
where \(x\) represents the input value of the network. When training the model, the stochastic gradient descent method (SGD) was chosen as the optimizer, and the learning speed and momentum were set to 0.001 and 0.9, respectively. The expression for SGD is as follows [84]:  
\[v_{t+1}=\mu*v_{t}+g_{t+1}p_{t+1}=p_{t}-lr*v_{t+1} \tag{9}\]  
where \(p\) represents the parameters, \(g\) represents the gradient, \(v\) represents the velocity, \(lr\) represents the learning rate, and \(\mu\) represents the momentum. Because the activation function of the output layer is a sigmoid function, the loss function is set to binary cross entropy loss (BCELoss). The BCELoss equation is as follows:  
\[l_{n}=-\frac{1}{M}\sum_{m=1}^{M}\left[y_{m}\times\log(h_{\theta}(x_{m}))+(1-y _{m}\times\log(1-h_{\theta}(x_{m}))\right] \tag{10}\]  
where \(M\) represents the number of training sessions, \(y_{m}\) represents the actual label at the \(m\)th learning session, \(x_{m}\) represents the input value at the \(m\)th learning session, and \(h_{\theta}\) represents the weight \(\theta\) of the model. The epoch, the number of times the model was learned, was set to 250. The batch size of the DNN, which refers to the number of training sets used in one iteration, was set to be the same as the size of the training set. That is, just one batch was used for DNN. In the case of DT, the quality of the split was evaluated using Gini impurity [85] as a criterion, and the best split was chosen. The minimum number of samples required to split an internal node was set to 2. The four machine learning models used in the experiment were implemented using Python.