## 3 Methods
### Hyperparameters Tuning  
Before constructing the GBDT-PSO model, it is necessary to first preadjust and determine several important hyperparameters, because the prediction performance of the model will vary greatly with different hyperparameters combinations. However, using traditional methods such as a learning curve and grid search to adjust these parameters individually is tedious and time-consuming. Accordingly, this paper uses the PSO algorithm to take the R value in the training set as the fitness function and maximize it during the evolution of PSO. Thus, the hyperparameters were tuned and the optimal parameters could be determined. Table 4 summarizes the selected hyperparameters to be tuned and their tuning ranges.  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Hyperparameters** & **Explanation** & **Type** & **Tuning Range** \\ \hline Max\_depth & The maximum depth of the CART & Integer & 3–15 \\ Min\_samples\_split & The minimum number of samples required to split an internal node & Integer & 2–15 \\ Min\_samples\_leaf & The minimum number of samples at the leaf node & Integer & 1–15 \\ Max\_RT & The maximum number of CART models in GBDT & Integer & 50–2000 \\ Learning rate & The learning rate shrinks the contribution of each CART model & Float & 0.01–1 \\ Max\_features & The number of features to consider during tree splitting & Float & 0.4–1 \\ \hline \hline \end{tabular}
\end{table}
Table 4: Hyperparameters description and their tuning ranges.  
\begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Experiment Number** & \(N\) & \(S\)/D & \(H\)/D & \(D_{\mathbf{r}}\) (\%) & \(\upsilon_{\mathbf{r}}\) /D & \(Q_{\mathbf{u}}\) (kN) \\ \hline T23 & 2 & 1.5 & 12 & 86.6 & 0.224 & 383.1 \\ T24 & 2 & 3 & 9 & 89.3 & 0.198 & 240.7 \\ T25 & 2 & 3 & 12 & 86.7 & 0.201 & 412.0 \\ T26 & 2 & 4.5 & 10.5 & 89.3 & 0.198 & 320.9 \\ T27 & 2 & 4.5 & 12 & 86.6 & 0.220 & 370.7 \\ T28 & 2 & 6 & 9 & 96.2 & 0.190 & 264.7 \\ T29 & 2 & 6 & 12 & 86.7 & 0.214 & 384.2 \\ T30 & 3 & 1.5 & 9 & 89.3 & 0.168 & 222.9 \\ T31 & 3 & 3 & 12 & 88.8 & 0.211 & 459.5 \\ T32 & 3 & 1.5 & 12 & 96.1 & 0.209 & 512.6 \\ T33 & 4 & 2 & 12 & 90.0 & 0.254 & 489.4 \\ \hline \hline \end{tabular}
\end{table}
Table 2: _Cont._  
\begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline
**Variables** & **Type** & **Standard Deviation** & **Maximum** & **Minimum** & **Mean** & **Kurtosis** & **Skewness** \\ \hline \(N\) & Input & 0.783 & 4.000 & 1.000 & 1.515 & 1.844 & 1.464 \\ \(S/D\) & Input & 1.815 & 6.000 & 0.000 & 1.152 & 1.363 & 1.473 \\ \(H/D\) & Input & 3.107 & 12.000 & 2.000 & 8.788 & \(-\)0.490 & \(-\)0.705 \\ \(D_{\mathbf{r}}\)  
In the process of hyperparameter tuning, \(K\)-fold cross-validation was used as an indicator to evaluate model performance. The initial data were evenly divided into \(K\) folds, and each fold was successively used as the validation set while the rest of the \(K\)-1 folds were used for training to obtain \(K\) models [49]. Finally, the model performance was tested using the validation set. However, due to the randomness of the partitioning of the dataset, the model evaluation obtained by single \(K\)-fold cross-validation is not convincing. Therefore, the dataset was divided repeatedly 30 times in this study, and the mean value of the \(K\)-fold cross-validation was used as the final evaluation result.