## 3 Model Development
### PSO-BPNN Model  
(1) Particle swarm optimization  
The PSO method is a swarm intelligence algorithm that mimics the way flocks of birds or schools of fish behave to find the best solution through cooperation and competition within the group [52]. In the PSO method, potential solutions are depicted as particles in a multidimensional space, and each solution has a location vector and a velocity vector. The current location of a solution is represented by the location vector of the particle, while the direction and travel distance of the search process are expressed by the velocity vector of the particle. Finally, the desired result is obtained by continuously updating the position and velocity of the particles. The procedure for searching for the optimal solution is shown in Figure 7.  
Figure 6: The T-SNE plot of the preprocessed dataset. Figure 7: Diagram of the particle update and the search for optimal solutions. In a swarm of N particles, the position and velocity of one particle were denoted as \(X_{i}=[x_{i1},x_{i2},\cdots,x_{iD}]\) and \(v_{i}=[v_{i1},v_{i2},\cdots,v_{iD}]\), respectively. The dimensions of the solution space are N and D, respectively. During the particle search process, the global optimal position \(p_{g}=\left[p_{g1},p_{g2},\cdots,p_{gD}\right]\) in the group and the local optimal location of each particle are both recorded. The position and velocity of the particle are updated by:  
\[v_{i}^{t+1}=\omega v_{i}^{t}+c_{1}r_{1}\left(p_{i}^{t}-x_{i}^{t}\right)+c_{2}r _{2}\left(p_{g}^{t}-x_{i}^{t}\right) \tag{1}\]  
\[x_{i}^{t+1}=x_{i}^{t}+v_{i}^{t+1} \tag{2}\]  
where \(\omega\) is the inertial weight. The larger the value of \(\omega\), the stronger the global search, or otherwise, the stronger the local search. \(c_{1}\) and \(c_{2}\) are learning factors, usually with a value of 2. \(r_{1}\) and \(r_{2}\) are random numbers between [0, 1]. In Equation (1), there are three components used for particle velocity update: the previous velocity of the particle, the cognition of the particle, and the \"social characteristics\" of particles. The first two parts indicate the difference between the current position of the particle and its ideal position. The third part symbolizes how particles cooperate and share information and indicates the difference between the current position of the particle and the ideal position of the group. (2) Backpropagation neural network  
The BPNN [64; 65] can potentially approximate any nonlinear continuous function with an acceptable structure and the correct weights. A type of three-layer BPNN was used in this study, as depicted in Figure 8. The error gradient descent algorithm is employed to reduce the mean square error between the network output value and the actual output value. The general weight adjustment formulas of the BP learning algorithm are as follows [63]:  
\[\left\{ \begin{aligned} \Delta w_{jk}=-n\frac{\partial E}{ \partial w_{jk}}=n\delta_{k}y_{j}=n(d_{k}-O_{k})y_{j}f^{\prime}(net_{k})\\ \Delta w_{ij}=-n\frac{\partial E}{\partial w_{jk}}=n\delta_{j}x_{i }=n\left(\sum\limits_{k=1}^{L}\delta_{k}w_{jk}\right)x_{i}f^{\prime}(net_{j}) \end{aligned} \right. \tag{3}\]  
\[E=\frac{1}{2}\sum\limits_{k=1}^{L}(d_{k}-O_{k})^{2} \tag{4}\]  
Figure 8: Topology of BPNN. where \(w\) denotes the network weight, \(\Delta w\) denotes the weight increment, and \(E\) is the error function of the neural network output node. \(\delta_{k}\) is the error signal in backpropagation from the outer layers to the inner layers. \(f^{\prime}(net_{k})\) and \(f^{\prime}(net_{j})\) are derivatives of the transfer functions of the output and hidden layers, respectively. \(L\) is the number of output neurons, and the network learning rate is indicated by the constant \(n\in(0,1)\), which has a negative sign to indicate gradient descent. PSO-optimized backpropagation neural network  
In the training stage of the BPNN, the initial weights and thresholds are randomly assigned.