<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="2.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Mar. Sci.</journal-id>
<journal-title>Frontiers in Marine Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Mar. Sci.</abbrev-journal-title>
<issn pub-type="epub">2296-7745</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fmars.2024.1473551</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Marine Science</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>ISSA optimized spatiotemporal prediction model of dissolved oxygen for marine ranching integrating DAM and Bi-GRU</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Liu</surname>
<given-names>Wenjing</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2804876"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Wang</surname>
<given-names>Ji</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="author-notes" rid="fn001">
<sup>*</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Li</surname>
<given-names>Zhenhua</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Lu</surname>
<given-names>Qingjie</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>School of Electronic and Information Engineering, Guangdong Ocean University</institution>, <addr-line>Zhanjiang, Guangdong</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>Guangdong Province Smart Ocean Sensor Network and Equipment Engineering Technology Research Center, Guangdong Ocean University</institution>, <addr-line>Zhanjiang, Guangdong</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>Edited by: Yu Jiang, Jilin University, China</p>
</fn>
<fn fn-type="edited-by">
<p>Reviewed by: Yahui Guo, Central China Normal University, China</p>
<p>Hasbi Yasin, Diponegoro University, Indonesia</p>
<p>Salim Heddam, University of Skikda, Algeria</p>
</fn>
<fn fn-type="corresp" id="fn001">
<p>*Correspondence: Ji Wang, <email xlink:href="mailto:13902576499@163.com">13902576499@163.com</email>
</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>17</day>
<month>10</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>11</volume>
<elocation-id>1473551</elocation-id>
<history>
<date date-type="received">
<day>31</day>
<month>07</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>30</day>
<month>09</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Liu, Wang, Li and Lu</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Liu, Wang, Li and Lu</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>In marine ranching aquaculture, dissolved oxygen (DO) is a crucial parameter that directly impacts the survival, growth, and profitability of cultured organisms. To effectively guide the early warning and regulation of DO in aquaculture waters, this study proposes a hybrid model for spatiotemporal DO prediction named PCA-ISSA-DAM-Bi-GRU. Firstly, principal component analysis (PCA) is applied to reduce the dimensionality of the input data and eliminate data redundancy. Secondly, an improved sparrow search algorithm (ISSA) based on multi strategy fusion is proposed to enhance the optimization ability and convergence speed of the standard SSA by optimizing the population initialization method, improving the location update strategies for discoverers and followers, and introducing a Cauchy-Gaussian mutation strategy. Thirdly, a feature and temporal dual attention mechanism (DAM) is incorporated to the baseline temporal prediction model Bi-GRU to construct a feature extraction network DAM-Bi-GRU. Fourthly, the ISSA is utilized to optimize the hyperparameters of DAM-Bi-GRU. Finally, the proposed model is trained, validated, and tested using water quality and meteorological parameter data collected from a self-built LoRa+5G-based marine ranching aquaculture monitoring system. The results show that: (1) Compared with the baseline model Bi-GRU, the addition of PCA, ISSA and DAM module can effectively improve the prediction performance of the model, and their fusion is effective; (2) ISSA demonstrates superior capability in optimizing model hyperparameters and convergence speed compared to traditional methods such as standard SSA, genetic algorithm (GA), and particle swarm optimization (PSO); (3) The proposed hybrid model achieves a root mean square error (RMSE) of 0.2136, a mean absolute percentage error (MAPE) of 0.0232, and a Nash efficient (NSE) of 0.9427 for DO prediction, outperforming other similar data-driven models such as IBAS-LSTM and IDA-GRU. The prediction performance of the model meets the practical needs of precise DO prediction in aquaculture.</p>
</abstract>
<kwd-group>
<kwd>marine ranching</kwd>
<kwd>dissolved oxygen prediction</kwd>
<kwd>improved sparrow search algorithm (ISSA)</kwd>
<kwd>dual attention mechanism</kwd>
<kwd>Bi-GRU</kwd>
</kwd-group>
<counts>
<fig-count count="14"/>
<table-count count="9"/>
<equation-count count="25"/>
<ref-count count="34"/>
<page-count count="21"/>
<word-count count="10976"/>
</counts>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-in-acceptance</meta-name>
<meta-value>Ocean Solutions</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1" sec-type="intro">
<label>1</label>
<title>Introduction</title>
<p>As one of the crucial indicators of water quality, dissolved oxygen directly determines the health status of the water environment in marine ranching, and then affects the overall aquaculture benefits. Its concentration is influenced by factors such as air temperature, atmospheric pressure, and water body conditions, exhibiting nonlinear, coupled, and time-varying characteristics (<xref ref-type="bibr" rid="B7">Cuenco et&#xa0;al., 1985</xref>; <xref ref-type="bibr" rid="B16">Lipizer et&#xa0;al., 2014</xref>). When the DO concentration in water is too high or insufficient, it can directly or indirectly alter other water quality indicators, affecting the health status of aquacultured species, leading to decreased resistance, slow growth, stagnation, or even death (<xref ref-type="bibr" rid="B1">Abdel-Tawwab et&#xa0;al., 2019</xref>; <xref ref-type="bibr" rid="B20">Neilan and Rose, 2014</xref>; <xref ref-type="bibr" rid="B12">Jiang et&#xa0;al., 2021</xref>). Therefore, through real-time monitoring and effective prediction of DO concentration in water aquaculture, precise regulation of the water quality environment can be achieved, reducing the aquaculture risks in marine farms and enhancing their economic benefits.</p>
<p>Currently, artificial intelligence technology is widely used for modeling complex nonlinear systems (<xref ref-type="bibr" rid="B34">Zhu et&#xa0;al., 2019</xref>; <xref ref-type="bibr" rid="B6">Choi et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B25">Than et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B8">Guo et&#xa0;al., 2022</xref>, <xref ref-type="bibr" rid="B9">2023</xref>). Scholars have proposed various methods for water quality prediction in different environments and achieved certain results. <xref ref-type="bibr" rid="B28">Wu et&#xa0;al. (2018)</xref> used a BP neural network model optimized by particle swarm optimization (PSO) for dissolved oxygen prediction. <xref ref-type="bibr" rid="B33">Zhu et&#xa0;al. (2017)</xref> established a dissolved oxygen prediction model based on the least squares support vector regression (LSSVR) model and fruit fly optimization algorithm (FOA). <xref ref-type="bibr" rid="B15">Li et&#xa0;al. (2023)</xref> applied a prediction model combining PCA with particle swarm optimization-based LSSVM to dissolved oxygen prediction in the Yangtze River Basin in Shanghai. <xref ref-type="bibr" rid="B13">Kuang et&#xa0;al. (2020)</xref> proposed a hybrid DO prediction model KIG-ELM consisting of K-means, improved genetic algorithm (IGA), and extreme learning machine (ELM). <xref ref-type="bibr" rid="B3">Cao et&#xa0;al. (2021a)</xref> proposed a method based on k-means clustering, PSO, and an improved soft ensemble extreme learning machine (SELM). The BP, SVM, LSSVM, and ELM prediction methods mentioned above all belong to shallow machine learning models. They have fast training speeds and can achieve high accuracy, but their representation capabilities for complex functions are limited under limited samples and computing units. Their generalization ability for complex classification problems is also constrained to a certain extent.</p>
<p>Additionally, scholars have also proposed an adaptive network-based fuzzy inference system (ANFIS), which combines the characteristics of fuzzy logic and neural networks. By learning the fuzzy rules and weight parameters from data, ANFIS can predict unknown data. <xref ref-type="bibr" rid="B22">Sharad et&#xa0;al. (2018)</xref> introduced two data-driven adaptive neuro-fuzzy systems: fuzzy C-means and ANFIS based on subtractive clustering, which were used to predict sensitive parameters in monitoring stations that could lead to changes in existing water quality index values. <xref ref-type="bibr" rid="B2">Arora and Keshari (2021)</xref> employed ANFIS with grid partitioning (ANFIS-GP) and subtractive clustering (ANFIS-SC) to simulate and predict high-dimensional river characteristics. The results showed that both ANFIS models could fully and accurately predict DO. However, ANFIS lacks adaptability, precise control over complex systems, and may encounter high computational complexity when dealing with complex problems.</p>
<p>In recent years, the development of deep learning models has provided an effective solution for the prediction of dissolved oxygen in aquaculture. Deep learning can achieve complex function approximation by learning a deep nonlinear network structure and mine the implicit information in data. Compared with machine learning methods with shallow structures, it has stronger learning and generalization abilities and demonstrates a strong ability to learn the essential features of data sets from a small number of samples. Among them, the recurrent neural network (RNN) based on deep learning, as a powerful tool for modeling sequential data, has received widespread attention and application. By introducing a recurrent structure within the network, RNN can model the temporal dependencies in sequential data, thereby capturing temporal dependencies and contextual information. However, due to parameter sharing and multiple multiplications, RNN is prone to the problems of gradient vanishing or gradient explosion during backpropagation, making it difficult to train the model or causing it to fail to converge. Long short-term memory (LSTM) and gated recurrent unit neural network (GRU), as the most popular variants of RNN, can effectively address the issues of gradient vanishing and gradient explosion during RNN training, and have become the mainstream for time series prediction (<xref ref-type="bibr" rid="B14">Li et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B17">Liu P. et&#xa0;al., 2019</xref>). Compared to LSTM, GRU consists of an update gate and a reset gate with simpler structure and fewer number of hyperparameters. <xref ref-type="bibr" rid="B18">Liu Y. et&#xa0;al., (2019)</xref> conducted research on short-term and long-term DO predictions using attention-based RNN, indicating that the proposed model outperformed five attention-based RNN methods and five baseline methods. <xref ref-type="bibr" rid="B31">Zhang et&#xa0;al., 2020</xref> introduced a DO prediction model, kPCA-RNN, which combines Kernel PCA and RNN demonstrating that the model&#x2019;s prediction performance surpassed current feedforward neural networks (FFNNs), support vector regression (SVR), and general regression neural networks (GRNN). <xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref> proposed a DO prediction model that integrates an improved beetle antennae search algorithm (IBAS) with LSTM networks. <xref ref-type="bibr" rid="B4">Cao et&#xa0;al. (2021b)</xref> proposed a LSTM prediction model based on K-means clustering and improved particle swarm optimization (IPSO). <xref ref-type="bibr" rid="B10">Huan et&#xa0;al., 2022</xref> systematically discussed and compared GRU water quality prediction methods based on the attention mechanism. The results showed that its performance in DO prediction surpassed that of LSTM based on the attention mechanism, as well as five traditional baseline algorithms: ANFISR, BF-AN, ELM, SVR, and ANN. However, only the feature attention mechanism was utilized in their study. <xref ref-type="bibr" rid="B5">Chen et&#xa0;al. (2022)</xref> established an attention-based LSTM model (AT-LSTM) to predict water quality in the Burnett River in Australia. The research findings indicated that the incorporation of the attention mechanism enhanced the prediction performance of the LSTM model. Only the temporal attention mechanism was used in their study. <xref ref-type="bibr" rid="B24">Tan et&#xa0;al. (2022)</xref> constructed a neural network model combining CNN and LSTM to predict DO demonstrating that this model achieved more accurate peak fitting predictions than traditional LSTM models. <xref ref-type="bibr" rid="B30">Yang and Liu (2022)</xref> utilized an improved whale optimization algorithm (IWOA) to optimize a GRU, creating a water quality prediction model for sea cucumber aquaculture. Experimental results showed that this model surpassed prediction models such as Support Vector Regression (SVR), Random Forest (RF), CNN, RNN, and LSTM networks in terms of prediction accuracy and generalization performance. <xref ref-type="bibr" rid="B11">Jiange et&#xa0;al. (2023)</xref> proposed a prediction model combining improved grey relational analysis (IGRA) with LSTM optimized by the ISSA named IGRA-ISSA-LSTM. Results indicated that the proposed model achieved higher determination coefficients (R2) for predicting DO, pH, and KMnO4 compared to the IGRA-BP, IGRA-LSTM, and IGRA-SSA-LSTM models. <xref ref-type="bibr" rid="B32">Zhang et&#xa0;al. (2023)</xref> introduced an DO spatio-temporal prediction model based on an improved RGU with a dual attention mechanism (IDA-GRU) and an improved inverse distance weighting (IIDW) interpolation algorithm.</p>
<p>Existing research has shown that various models can be employed for DO prediction, with deep learning-based models outperforming shallow machine learning models and ANFIS. The critical aspects of building an efficient and accurate DO prediction model focus on preprocessing of input data, model selection and improvement and hyperparameter optimization (<xref ref-type="bibr" rid="B27">Wang et&#xa0;al., 2023</xref>). Based on these findings, this paper proposes an hybrid model, named PCA-ISSA-DAM-Bi-GRU, to predicting DO in marine aquaculture farms. Specifically, PCA is utilized for dimensionality reduction of the model input data, while the DAM integrating both temporal and feature attention, is fused with the bidirectional gated recurrent unit (Bi-GRU) neural network for feature extraction. Furthermore, an enhanced ISSA incorporating multiple strategies is employed to search and optimize the hyperparameters of the Bi-GRU, aiming to enhance the model&#x2019;s prediction precision. Finally, the accuracy and reliability of the model are validated using data collected from a self-built LoRa+5G-based marine aquaculture farm monitoring system.</p>
</sec>
<sec id="s2" sec-type="materials|methods">
<label>2</label>
<title>Materials and methods</title>
<sec id="s2_1">
<label>2.1</label>
<title>Marine ranching environment monitoring system based on LoRa+5G</title>
<p>This experiment has independently established a marine ranching environment monitoring system based on LoRa+5G, which integrates functions such as data collection, remote transmission, storage management, remote monitoring, and data analysis. The overall architecture is shown in <xref ref-type="fig" rid="f1">
<bold>Figure&#xa0;1</bold>
</xref> and can be functionally divided into a perception layer, a network layer, and an application layer. The perception layer utilizes various sensors to collect water quality parameters and meteorological parameters. The network layer transmits the collected data to the application layer through the LoRa sensor network combined with 5G communication technology. The application layer stores and analyzes the collected data, providing a user interface as needed.</p>
<fig id="f1" position="float">
<label>Figure&#xa0;1</label>
<caption>
<p>Overall structure of the aquaculture environmental monitoring system.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g001.tif"/>
</fig>
<p>For this experiment, the monitoring system was deployed at an aquaculture farm in Xiayang Town, Xuwen County, Zhanjiang City, Guangdong Province, China, covering a sea area of 40m in length and 40m in width. To collect three-dimensional distribution data of the aquaculture area, nine water quality sensors were placed at corresponding locations above and below water depths of 0.8m and 1.6m. The monitor point distribution is shown in <xref ref-type="fig" rid="f2">
<bold>Figure&#xa0;2</bold>
</xref>.</p>
<fig id="f2" position="float">
<label>Figure&#xa0;2</label>
<caption>
<p>The distribution of monitor points.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g002.tif"/>
</fig>
<p>The data collected by the water quality sensors include dissolved oxygen, water temperature, conductivity, pH value, ammonia nitrogen content, and turbidity. The meteorological monitoring station, located near the aquaculture farm, gathers data on atmospheric temperature, atmospheric relative humidity, atmospheric pressure, wind speed, wind direction, solar radiation, and rainfall. During the data collection process, factors such as the aquaculture environment, sensor malfunctions, and fluctuations in network signals can lead to the presence of abnormal values and a small number of missing values in the sample data. In this study, the mean smoothing method is adopted to eliminate abnormal data, and the linear interpolation method is used to fill in missing values. Additionally, a min-max normalization process is applied to each variable to ensure consistent scaling for analysis.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Construction of dissolved oxygen prediction model</title>
<sec id="s2_2_1">
<label>2.2.1</label>
<title>Principal component analysis</title>
<p>On the basis of ensuring the integrity, validity, and accuracy of the input data, dimensionality reduction can be applied to eliminate redundancy in the input data, effectively reduce the complexity of the model structure, and enhance the model&#x2019;s learning performance and prediction accuracy. Principal Component Analysis (PCA) is a commonly used data analysis method that transforms data from a high-dimensional space to a low-dimensional space. It recombines numerous indicators with certain correlations into a new set of uncorrelated comprehensive indicators, thereby achieving the goals of removing redundant information and noise reduction. Assuming the input raw data is in the form of a matrix, the specific steps for PCA to extract the principal components are as follows:</p>
<list list-type="order">
<list-item>
<p>Data Decentralization: subtract the mean of each feature from itself <inline-formula>
<mml:math display="inline" id="im1">
<mml:mrow>
<mml:msub>
<mml:msup>
<mml:mi>X</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>X</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>;</p>
</list-item>
<list-item>
<p>Compute the Covariance Matrix: <inline-formula>
<mml:math display="inline" id="im2">
<mml:mrow>
<mml:msub>
<mml:msup>
<mml:mi>X</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:msup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>;</p>
</list-item>
<list-item>
<p>Calculate Eigenvalues and Eigenvector;</p>
</list-item>
<list-item>
<p>Select Principal Components: sort the eigenvalues from largest to smallest and select the top k eigenvalues;</p>
</list-item>
<list-item>
<p>Construct Projection Matrix: combine the eigenvectors corresponding to the selected eigenvalues to form the projection matrix;</p>
</list-item>
<list-item>
<p>Dimensionality Reduction: multiply the original matrix by the projection matrix to obtain a new set of samples that retains most of the representative feature information from the original samples.</p>
</list-item>
</list>
</sec>
<sec id="s2_2_2">
<label>2.2.2</label>
<title>Bi-directional gated recurrent unit neural network</title>
<p>The GRU network is a simplified variant of the LSTM network. It consists of an update gate and a reset gate, resulting in a simpler structure with fewer hyperparameters. GRU networks take sequential data as input and utilize recurrent convolutional neural networks for feature extraction, making them well-suited for time series prediction. The specific structure of the GRU network cycle unit is illustrated in <xref ref-type="fig" rid="f3">
<bold>Figure&#xa0;3</bold>
</xref>. The input of the network unit includes the current input <italic>x</italic>
<sub>t</sub> and the hidden state <italic>h</italic>
<sub>t-1</sub> passed down from the previous time step. The output is both the output for the current time step and the hidden state <italic>h</italic>
<sub>t</sub> passed to the next time step. The specific calculation process is described by <xref ref-type="disp-formula" rid="eq1">Equations 1</xref>&#x2013;<xref ref-type="disp-formula" rid="eq4">4</xref>:</p>
<fig id="f3" position="float">
<label>Figure&#xa0;3</label>
<caption>
<p>Basic structure of GRU.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g003.tif"/>
</fig>
<disp-formula id="eq1">
<label>(1)</label>
<mml:math display="block" id="M1">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq2">
<label>(2)</label>
<mml:math display="block" id="M2">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq3">
<label>(3)</label>
<mml:math display="block" id="M3">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>'</mml:mo>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi>tanh</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq4">
<label>(4)</label>
<mml:math display="block" id="M4">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>'</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im3">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math display="inline" id="im4">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math display="inline" id="im5">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>'</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im6">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represent the output of the reset gate, the output of the update gate, the candidate state, and the hidden state, respectively. <inline-formula>
<mml:math display="inline" id="im7">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im8">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the weight matrices of the reset gate, <inline-formula>
<mml:math display="inline" id="im9">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im10">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the weight matrices of the update gate, and <inline-formula>
<mml:math display="inline" id="im11">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im12">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the weight matrices of the candidate output. <inline-formula>
<mml:math display="inline" id="im13">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math display="inline" id="im14">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im15">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the bias vectors for the reset gate, the update gate, and the candidate output, respectively. <inline-formula>
<mml:math display="inline" id="im16">
<mml:mi>&#x3c3;</mml:mi>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im17">
<mml:mrow>
<mml:mtext>tanh</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> denote the sigmoid activation function and the hyperbolic tangent function, respectively.</p>
<p>Since GRU can only establish unidirectional associations in time series, the concentration of dissolved oxygen at a given moment should be related to both the preceding and following water quality and meteorological factors. The bidirectional GRU (Bi-GRU) can simultaneously mine the sequential correlation and reverse correlation of the time series, and comprehensively extract the timing features. Therefore, this study employs bi-directional GRU (Bi-GRU), which simultaneously explores the sequential and inverse sequential correlations in the time series, comprehensively extracting temporal features. The Bi-GRU network comprises two independently and symmetrically structured GRUs with identical inputs but opposite information transmission directions. The outputs from these two GRUs, which are independent and do not interact with each other, are concatenated to form the output for each time step, as shown in <xref ref-type="fig" rid="f4">
<bold>Figure&#xa0;4</bold>
</xref>.</p>
<fig id="f4" position="float">
<label>Figure&#xa0;4</label>
<caption>
<p>Bi-GRU network structure.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g004.tif"/>
</fig>
</sec>
<sec id="s2_2_3">
<label>2.2.3</label>
<title>Dual attention mechanism</title>
<p>The attention mechanism in deep learning is a biomimetic technique that mimics the selective attention behavior in human reading, listening and speaking. Integrating attention mechanisms into neural network can make it autonomously learn and pay more attention to the important information in model input, and enhances the model&#x2019;s feature extraction capabilities, robustness, and generalization ability by assigning different weights to the model&#x2019;s inputs. In the DO prediction, the importance of each environmental factor is different, and the influence weight of the same environmental factor on DO concentration at different time points is also different. Furthermore, environmental factors at different historical moments have different importance in influencing current DO concentrations. Therefore, in this study, a feature attention mechanism is introduced at the Bi-GRU encoder stage to adaptively assign weights to different environmental factors at each time step. This mechanism enables the model to focus on the most influential factors for DO prediction. Additionally, a temporal attention mechanism is introduced at the decoder stage of the fully connected layer to dynamically adjust the weights of different time steps&#x2019; influence on the current DO concentration, so as to better capture the key information in the time series data. The combination of these two attention mechanisms allows for a more comprehensive and nuanced understanding of the complex relationships between environmental factors and DO concentrations over time.</p>
<p>The feature attention mechanism in the encoder utilizes multi-layer perceptron operations to quantify the feature attention weights, as illustrated in <xref ref-type="fig" rid="f5">
<bold>Figure&#xa0;5</bold>
</xref>. Its input comprises <italic>n</italic> environmental feature vectors <inline-formula>
<mml:math display="inline" id="im18">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> at time <italic>t</italic> and the hidden layer state <italic>h</italic>
<sub>t-1</sub> output by the encoder at the previous time step. The output is the attention weight of each feature at this time step <inline-formula>
<mml:math display="inline" id="im19">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>&#x3b1;</mml:mi>
</mml:mstyle>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula>
<mml:math display="inline" id="im20">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> assesses the importance of the <italic>k</italic>-th feature. Subsequently, the updated <inline-formula>
<mml:math display="inline" id="im21">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2dc;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>n</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is employed as the encoder input for time <italic>t</italic>. The specific calculation process is outlined in <xref ref-type="disp-formula" rid="eq5">Equations 5</xref> and <xref ref-type="disp-formula" rid="eq6">6</xref>:</p>
<fig id="f5" position="float">
<label>Figure&#xa0;5</label>
<caption>
<p>Structural diagram of the feature attention mechanism.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g005.tif"/>
</fig>
<disp-formula id="eq5">
<label>(5)</label>
<mml:math display="block" id="M5">
<mml:mrow>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>V</mml:mi>
</mml:mstyle>
<mml:mi>r</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mi>tanh</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>W</mml:mi>
</mml:mstyle>
<mml:mi>r</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>U</mml:mi>
</mml:mstyle>
<mml:mi>r</mml:mi>
</mml:msub>
<mml:msup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>x</mml:mi>
</mml:mstyle>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>b</mml:mi>
</mml:mstyle>
<mml:mi>r</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq6">
<label>(6)</label>
<mml:math display="block" id="M6">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mtext>softmax</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im22">
<mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>V</mml:mi>
</mml:mstyle>
<mml:mi>r</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math display="inline" id="im23">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>W</mml:mi>
</mml:mstyle>
<mml:mi>r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im24">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>U</mml:mi>
</mml:mstyle>
<mml:mi>r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the network feature weights that need to be learned, and <inline-formula>
<mml:math display="inline" id="im25">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>b</mml:mi>
</mml:mstyle>
<mml:mi>r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the bias parameters. The softmax function is applied for normalization, ensuring that the sum of all weights equals 1.</p>
<p>The temporal attention mechanism structure in the decoder is illustrated in <xref ref-type="fig" rid="f6">
<bold>Figure&#xa0;6</bold>
</xref>. Take the encoder&#x2019;s historical hidden state <inline-formula>
<mml:math display="inline" id="im26">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>h</mml:mi>
</mml:mstyle>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>h</mml:mi>
</mml:mstyle>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>h</mml:mi>
</mml:mstyle>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and the decoder&#x2019;s hidden layer state at the previous moment <italic>d<sub>t</sub>
</italic>
<sub>-1</sub> as the input of the temporal attention mechanism to obtain the temporal attention weight coefficient <inline-formula>
<mml:math display="inline" id="im27">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>&#x3b2;</mml:mi>
</mml:mstyle>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> at the current moment. <inline-formula>
<mml:math display="inline" id="im28">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> represents the influence of the hidden layer state at the <italic>k</italic>-th layer on the DO prediction at the current moment. By weighted summing the <inline-formula>
<mml:math display="inline" id="im29">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> with the corresponding hidden layer state <inline-formula>
<mml:math display="inline" id="im30">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the comprehensive information of the predicted time series features could be obtained:. The calculation process is shown in <xref ref-type="disp-formula" rid="eq7">Equations 7</xref> and <xref ref-type="disp-formula" rid="eq9">9</xref>:</p>
<fig id="f6" position="float">
<label>Figure&#xa0;6</label>
<caption>
<p>Structural diagram of the temporal attention mechanism.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g006.tif"/>
</fig>
<disp-formula id="eq7">
<label>(7)</label>
<mml:math display="block" id="M7">
<mml:mrow>
<mml:msubsup>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>V</mml:mi>
</mml:mstyle>
<mml:mi>d</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mi>tanh</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>W</mml:mi>
</mml:mstyle>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>U</mml:mi>
</mml:mstyle>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>b</mml:mi>
</mml:mstyle>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq8">
<label>(8)</label>
<mml:math display="block" id="M8">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mtext>softmax</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq9">
<label>(9)</label>
<mml:math display="block" id="M9">
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mstyle>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im31">
<mml:mrow>
<mml:msubsup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>V</mml:mi>
</mml:mstyle>
<mml:mi>d</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula>
<mml:math display="inline" id="im32">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>W</mml:mi>
</mml:mstyle>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im33">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>U</mml:mi>
</mml:mstyle>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the network feature weights that need to be learned, and <inline-formula>
<mml:math display="inline" id="im34">
<mml:mrow>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>b</mml:mi>
</mml:mstyle>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the bias parameters. The softmax function is applied for normalization, ensuring that the sum of all weights equals 1.</p>
<p>Fuse the dissolved oxygen yt with ct as the input to the GRU network:</p>
<disp-formula id="eq10">
<label>(10)</label>
<mml:math display="block" id="M10">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2dc;</mml:mo>
</mml:mover>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x2dc;</mml:mo>
</mml:mover>
</mml:mstyle>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>+</mml:mo>
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x2dc;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im35">
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mo>&#x2dc;</mml:mo>
</mml:mover>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im36">
<mml:mover accent="true">
<mml:mi>b</mml:mi>
<mml:mo>&#x2dc;</mml:mo>
</mml:mover>
</mml:math>
</inline-formula> represents the weights and biases for the fused input to the GRU neural network.</p>
<p>The hidden state after incorporating the temporal attention mechanism is updated using <xref ref-type="disp-formula" rid="eq11">Equation 11</xref>:</p>
<disp-formula id="eq11">
<label>(11)</label>
<mml:math display="block" id="M11">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2dc;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The predicted value of the dissolved oxygen to be predicted is:</p>
<disp-formula id="eq12">
<label>(12)</label>
<mml:math display="block" id="M12">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2dc;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mi>V</mml:mi>
<mml:mi>y</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>b</mml:mi>
</mml:mstyle>
<mml:mi>w</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im37">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im38">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>w</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the weights and biases of the GRU network, respectively; while <inline-formula>
<mml:math display="inline" id="im39">
<mml:mrow>
<mml:msubsup>
<mml:mi>V</mml:mi>
<mml:mi>y</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im40">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the weights and biases of the entire network, respectively.</p>
</sec>
<sec id="s2_2_4">
<label>2.2.4</label>
<title>Improved sparrow search algorithm</title>
<p>The hyperparameters of neural network models affect the structure, topology, and details of the training process, which in turn impact the learning process and performance of the models. Traditionally, the setting of Bi-GRU hyperparameters often relies on trial and error based on experience, leading to poor stability, susceptibility to overfitting and underfitting, and time-consuming processes. Existing research has demonstrated the importance of hyperparameter optimization in enhancing the robustness, generalization, stability, and accuracy of models (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B30">Yang and Liu, 2022</xref>; <xref ref-type="bibr" rid="B11">Jiange et&#xa0;al., 2023</xref>). There are numerous hyperparameter optimization algorithms, among which the sparrow search algorithm (SSA) proposed in 2020 is a novel swarm intelligence optimization algorithm inspired by bird foraging behavior (<xref ref-type="bibr" rid="B29">Xue and Shen, 2020</xref>). By simulating the foraging process of sparrows to search for optimal solutions, SSA boasts high search accuracy, fast convergence speed, and strong robustness, making it widely applicable to various optimization problems. This study proposes an improved sparrow search algorithm (ISSA) that integrates multiple strategies to search and optimize the hyperparameters of the Bi-GRU model, thereby enhancing the model&#x2019;s optimal learning capabilities.</p>
<p>SSA is a discoverer-follower model which superimposes detection and early warning mechanism. The individual who finds the best food in the sparrow acts as the discoverer, and the other individuals act as followers, and compete with the discoverer for food when the discoverer finds the better food. Additionally, a certain proportion of individuals within the population are selected as scouts to conduct reconnaissance and warning, abandoning food sources if danger is detected. Addressing the issues of insufficient population diversity, poor convergence performance, and the imbalance between global exploration and local exploitation capabilities in the standard SSA, this study proposes improvements to the algorithm from the following aspects.</p>
<sec id="s2_2_4_1">
<label>2.2.4.1</label>
<title>Incorporating gauss chaotic sequence into population initialization</title>
<p>The standard SSA randomly generates the initial population, and once the population gathers, it will affect the breadth of the search space. Additionally, if a &#x201c;super sparrow&#x201d; (an individual with a fitness value significantly higher than the average) emerges prematurely during the iteration process, a large number of participants may converge towards it, drastically reducing the diversity of the population. To address these issues, the gauss chaotic sequence is introduced into the initialization phase of the SSA algorithm. The gauss chaotic mapping possesses properties such as regularity, randomness, and ergodicity, which can help ensure a uniform distribution of the initial population, enhancing both the diversity of the population and the global search performance of the model. The mathematical expression for the gauss chaotic mapping is given as:</p>
<disp-formula id="eq13">
<label>(13)</label>
<mml:math display="block" id="M13">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mi>mod</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2260;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where &#x201c;mod&#x201d; represents the modulo operation.</p>
</sec>
<sec id="s2_2_4_2">
<label>2.2.4.2</label>
<title>Improving the discoverer&#x2019;s position update strategy by borrowing from the salp group algorithm</title>
<p>The position update strategy for discoverers in the standard SSA is:</p>
<disp-formula id="eq14">
<label>(14)</label>
<mml:math display="block" id="M14">
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo stretchy="false">)</mml:mo>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&lt;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#xb7;</mml:mo>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>L</mml:mi>
</mml:mstyle>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <italic>t</italic> represents the current iteration number; <italic>T</italic>
<sub>max</sub> represents the maximum number of iterations; <inline-formula>
<mml:math display="inline" id="im41">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im42">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are random numbers, <inline-formula>
<mml:math display="inline" id="im43">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im44">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> follows a normal distribution; <italic>L</italic> is a 1&#xd7;<italic>d</italic> matrix filled with 1; <inline-formula>
<mml:math display="inline" id="im45">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mo stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>,which represents the warning value; and <inline-formula>
<mml:math display="inline" id="im46">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mo stretchy="false">[</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> represents the safe value.</p>
<p>According to the <xref ref-type="disp-formula" rid="eq14">Equation 14</xref>, when <inline-formula>
<mml:math display="inline" id="im47">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&lt;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, each dimension of the position converges towards zero, leading the algorithm to easily become trapped in local optima near zero and potentially miss optimal solutions located away from zero. In order to improve the global search ability of the algorithm, this study draws on the leader&#x2019;s update strategy in the Salp Group Algorithm (<xref ref-type="bibr" rid="B19">Mirjalili et&#xa0;al., 2017</xref>), and modified the position update formula for the discoverer as follows:</p>
<disp-formula id="eq15">
<label>(15)</label>
<mml:math display="block" id="M15">
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#xb7;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">[</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&lt;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#xb7;</mml:mo>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>L</mml:mi>
</mml:mstyle>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq16">
<label>(16)</label>
<mml:math display="block" id="M16">
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>exp</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
<p>In <xref ref-type="disp-formula" rid="eq15">Equation 15</xref>, <inline-formula>
<mml:math display="inline" id="im48">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im49">
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the lower and upper bounds of the current dimension&#x2019;s search space, respectively. <inline-formula>
<mml:math display="inline" id="im50">
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> are random variables that follow a uniform distribution, and <inline-formula>
<mml:math display="inline" id="im51">
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> serves as a balancing parameter that regulates the trade-off between the algorithm&#x2019;s global search and local search capabilities. With these modifications, the SSA discoverer&#x2019;s position does not necessarily decrease in each dimension at the early stage of iteration, which improved the search range and global search ability of the population. Meanwhile, it also maintains a balance with the convergence speed and local search capabilities during the later iterations of the algorithm.</p>
</sec>
<sec id="s2_2_4_3">
<label>2.2.4.3</label>
<title>Improving the follower&#x2019;s position update strategy inspired by chicken swarm optimization</title>
<p>In the standard SSA, the follower&#x2019;s position update strategy is typically defined as follows:</p>
<disp-formula id="eq17">
<label>(17)</label>
<mml:math display="block" id="M17">
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo stretchy="false">)</mml:mo>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:mi>i</mml:mi>
<mml:mo>&gt;</mml:mo>
<mml:mfrac>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:msup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>A</mml:mi>
</mml:mstyle>
<mml:mo>+</mml:mo>
</mml:msup>
<mml:mo>&#xb7;</mml:mo>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>L</mml:mi>
</mml:mstyle>
<mml:mtext>&#xa0;&#xa0;</mml:mtext>
<mml:mi>i</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mfrac>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mo>&#xa0;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im52">
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> refers to the best position found by the discoverer (or leader) of the swarm during the <italic>t</italic>+1-st iteration of the algorithm, and <inline-formula>
<mml:math display="inline" id="im53">
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mtext>worst</mml:mtext>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> represents the worst position found by any individual (including both followers and the discoverer) in the current iteration or across all iterations so far. <inline-formula>
<mml:math display="inline" id="im54">
<mml:mrow>
<mml:msup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>A</mml:mi>
</mml:mstyle>
<mml:mo>+</mml:mo>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>A</mml:mi>
</mml:mstyle>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>A</mml:mi>
</mml:mstyle>
<mml:msup>
<mml:mstyle mathvariant="bold-italic" mathsize="normal">
<mml:mi>A</mml:mi>
</mml:mstyle>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, where A is a 1-by-<italic>d</italic> matrix whose elements are randomly chosen from the set {1, &#x2212;1}.</p>
<p>According to <xref ref-type="disp-formula" rid="eq17">Equations 17</xref>, when <inline-formula>
<mml:math display="inline" id="im55">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mfrac>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, the follower&#x2019;s position update is primarily guided by the leader <inline-formula>
<mml:math display="inline" id="im56">
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. It is prone to rapid aggregation of the population within a short period, leading to a sharp decline in population diversity and significantly increasing the probability of the algorithm falling into a local optimum. Drawing inspiration from the random following strategy in the chicken swarm algorithm (<xref ref-type="bibr" rid="B21">Osamy et&#xa0;al., 2020</xref>), where hens converge towards roosters with a certain probability, the follower&#x2019;s position update strategy is improved as follows:</p>
<disp-formula id="eq18">
<label>(18)</label>
<mml:math display="block" id="M18">
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#xb7;</mml:mo>
<mml:mtext>exp</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo stretchy="false">)</mml:mo>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:mi>i</mml:mi>
<mml:mo>&gt;</mml:mo>
<mml:mfrac>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mi>S</mml:mi>
<mml:mtext>rand</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:mi>i</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mfrac>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mo>&#xa0;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mtext>&#xa0;&#xa0;&#xa0;</mml:mtext>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq19">
<label>(19)</label>
<mml:math display="block" id="M19">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mtext>-&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im57">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mo stretchy="false">[</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> represents the fitness of any <italic>k-</italic>th sparrow, and <inline-formula>
<mml:math display="inline" id="im58">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2260;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The improved SSA ensures both convergence and population diversity, balancing local exploitation and global search capabilities.</p>
</sec>
<sec id="s2_2_4_4">
<label>2.2.4.4</label>
<title>Introduction of Cauchy-Gaussian mutation strategy</title>
<p>The standard SSA is prone to falling into local optima and stagnation in the later stages of iteration due to the decrease in population diversity. Therefore, the Cauchy-Gaussian mutation strategy (<xref ref-type="bibr" rid="B26">Wang et&#xa0;al., 2020</xref>) is adopted in this study to ensure population diversity and resistance to stagnation, thereby avoiding premature convergence of the algorithm. The specific formula is as follows:</p>
<disp-formula id="eq20">
<label>(20)</label>
<mml:math display="block" id="M20">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">[</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>Cauchy</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mtext>Gauss</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq21">
<label>(21)</label>
<mml:math display="block" id="M21">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>&lt;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>exp</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo stretchy="false">)</mml:mo>
<mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>In <xref ref-type="disp-formula" rid="eq20">Equations 20</xref> and <xref ref-type="disp-formula" rid="eq20">21</xref>, <inline-formula>
<mml:math display="inline" id="im59">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the position of the optimal individual after mutation; <inline-formula>
<mml:math display="inline" id="im60">
<mml:mi>&#x3c3;</mml:mi>
</mml:math>
</inline-formula> denotes the standard deviation of the Cauchy-Gaussian mutation strategy; <inline-formula>
<mml:math display="inline" id="im61">
<mml:mrow>
<mml:mtext>Cauchy</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is a random variable that follows a Cauchy distribution; <inline-formula>
<mml:math display="inline" id="im62">
<mml:mrow>
<mml:mtext>Gauss</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is a random variable that follows a Gaussian distribution; <inline-formula>
<mml:math display="inline" id="im63">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im64">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> are dynamic parameters adaptively adjust with the number of iterations.</p>
</sec>
</sec>
<sec id="s2_2_5">
<label>2.2.5</label>
<title>Dissolved oxygen prediction model fuse DAM and Bi-GRU optimized by ISSA</title>
<p>The flowchart of the ISSA-optimized DO prediction model integrating DAM and Bi-GRU proposed in this study is shown in <xref ref-type="fig" rid="f7">
<bold>Figure&#xa0;7</bold>
</xref>. The main processes include data the preprocessing based on PCA, the hyperparameter optimization conducted by ISSA, the training and optimization of the DAM-Bi-GRU model, and the evaluation of model performance.</p>
<fig id="f7" position="float">
<label>Figure&#xa0;7</label>
<caption>
<p>Flowchart of DO prediction algorithm PCA-ISSA-DAM-Bi-GRU.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g007.tif"/>
</fig>
</sec>
</sec>
</sec>
<sec id="s3" sec-type="results">
<label>3</label>
<title>Results</title>
<sec id="s3_1">
<label>3.1</label>
<title>Data processing</title>
<p>To validate the performance of the proposed model in this article, data from the study area spanning 86 days from June 1st 2023 to August 25th 2023 were collected, with each data point recorded every 30 minutes, resulting in a total of 4,184 data sets for every given monitor point. The first 60 days&#x2019; data were used as the training set, the next 13 days&#x2019; data as the validation set, and the final 13 days&#x2019; data as the test set, following a 7:1.5:1.5 ratio. For any given time <italic>t</italic>, the model&#x2019;s input comprised the aquaculture environmental parameters from the preceding 24 hours, and its output predicted the dissolved oxygen levels for the following 2 hours. This resulted in 2,832 training samples, 624 validation samples, and 624 test samples. Due to space limitations, a portion of the raw data collected on June 20th 2023 is presented in <xref ref-type="table" rid="T1A">
<bold>Table&#xa0;1</bold>
</xref>. Furthermore, taking monitor point A9 as an example, after removing outliers and filling in missing values through linear interpolation, statistical analysis was conducted on the data, as shown in <xref ref-type="table" rid="T2">
<bold>Table&#xa0;2</bold>
</xref>. Subsequently, the PCA algorithm was applied to reduce the data&#x2019;s dimensionality, eliminating redundant information and noise. Finally the processed data was input into the neural network model for feature extraction. The PCA of the aquaculture environmental parameters is presented in <xref ref-type="table" rid="T3">
<bold>Table&#xa0;3</bold>
</xref>. As can be seen, the cumulative contribution rate of the first seven components reaches 86.27%, representing the majority of environmental information. Therefore, this study selected seven principal components, utilizing PCA to reduce the original 13-dimensional data to seven dimensions.</p>
<table-wrap id="T1A" position="float">
<label>Table&#xa0;1A</label>
<caption>
<p>Water quality data collected by monitoring station A9 on June 20, 2023.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" rowspan="2" align="center">Time</th>
<th valign="middle" colspan="6" align="center">Water quality parameters</th>
</tr>
<tr>
<th valign="middle" align="center">Dissolved<break/>oxygen/<break/>(mg&#xb7;L<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">Water<break/>temperature/&#xb0;C</th>
<th valign="middle" align="center">Conductivity/<break/>(&#x3bc;S&#xb7;cm<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">pH<break/>value</th>
<th valign="middle" align="center">Ammonia nitrogen/<break/>(mg&#xb7;L<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">Turbidity/<break/>NTU</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">06:00</td>
<td valign="middle" align="center">5.35</td>
<td valign="middle" align="center">27.14</td>
<td valign="middle" align="center">2980.52</td>
<td valign="middle" align="center">7.72</td>
<td valign="middle" align="center">0.27</td>
<td valign="middle" align="center">18.27</td>
</tr>
<tr>
<td valign="middle" align="center">06:30</td>
<td valign="middle" align="center">5.39</td>
<td valign="middle" align="center">27.14</td>
<td valign="middle" align="center">3080.74</td>
<td valign="middle" align="center">7.72</td>
<td valign="middle" align="center">0.27</td>
<td valign="middle" align="center">18.29</td>
</tr>
<tr>
<td valign="middle" align="center">07:00</td>
<td valign="middle" align="center">5.47</td>
<td valign="middle" align="center">27.14</td>
<td valign="middle" align="center">3220.28</td>
<td valign="middle" align="center">7.75</td>
<td valign="middle" align="center">0.27</td>
<td valign="middle" align="center">19.11</td>
</tr>
<tr>
<td valign="middle" align="center">07:30</td>
<td valign="middle" align="center">5.58</td>
<td valign="middle" align="center">27.24</td>
<td valign="middle" align="center">3170.19</td>
<td valign="middle" align="center">7.76</td>
<td valign="middle" align="center">0.28</td>
<td valign="middle" align="center">19.63</td>
</tr>
<tr>
<td valign="middle" align="center">08:00</td>
<td valign="middle" align="center">5.77</td>
<td valign="middle" align="center">27.24</td>
<td valign="middle" align="center">3586.48</td>
<td valign="middle" align="center">7.77</td>
<td valign="middle" align="center">0.28</td>
<td valign="middle" align="center">19.92</td>
</tr>
<tr>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center"/>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
</tr>
<tr>
<td valign="middle" align="center">14:00</td>
<td valign="middle" align="center">8.23</td>
<td valign="middle" align="center">29.52</td>
<td valign="middle" align="center">3800.46</td>
<td valign="middle" align="center">7.82</td>
<td valign="middle" align="center">0.38</td>
<td valign="middle" align="center">20.35</td>
</tr>
<tr>
<td valign="middle" align="center">14:30</td>
<td valign="middle" align="center">8.41</td>
<td valign="middle" align="center">29.64</td>
<td valign="middle" align="center">3740.74</td>
<td valign="middle" align="center">7.87</td>
<td valign="middle" align="center">0.38</td>
<td valign="middle" align="center">20.77</td>
</tr>
<tr>
<td valign="middle" align="center">15:00</td>
<td valign="middle" align="center">8.65</td>
<td valign="middle" align="center">29.02</td>
<td valign="middle" align="center">3826.92</td>
<td valign="middle" align="center">7.95</td>
<td valign="middle" align="center">0.39</td>
<td valign="middle" align="center">21.06</td>
</tr>
<tr>
<td valign="middle" align="center">15:30</td>
<td valign="middle" align="center">8.92</td>
<td valign="middle" align="center">30.18</td>
<td valign="middle" align="center">3780.36</td>
<td valign="middle" align="center">8.02</td>
<td valign="middle" align="center">0.39</td>
<td valign="middle" align="center">21.95</td>
</tr>
<tr>
<td valign="middle" align="center">16:00</td>
<td valign="middle" align="center">8.78</td>
<td valign="middle" align="center">30.15</td>
<td valign="middle" align="center">3776.62</td>
<td valign="middle" align="center">8.11</td>
<td valign="middle" align="center">0.41</td>
<td valign="middle" align="center">21.84</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T1B" position="float">
<label>Table&#xa0;1B</label>
<caption>
<p>Meteorological parameter data collected by monitoring station A9 on June 20, 2023.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" rowspan="2" align="center">Time</th>
<th valign="middle" colspan="7" align="center">Meteorological parameters</th>
</tr>
<tr>
<th valign="middle" align="center">Temperature/<break/>&#xb0;C</th>
<th valign="middle" align="center">Relative humidity/%</th>
<th valign="middle" align="center">Pressure/KPa</th>
<th valign="middle" align="center">Wind<break/>Speed/<break/>(km&#xb7;h<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">Wind direction/&#xb0;</th>
<th valign="middle" align="center">Solar<break/>radiation/(W&#xb7;m<sup>&#x2212;2</sup>)</th>
<th valign="middle" align="center">Rainfall/<break/>mm</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">06:00</td>
<td valign="middle" align="center">28.46</td>
<td valign="middle" align="center">87.38</td>
<td valign="middle" align="center">101.42</td>
<td valign="middle" align="center">12.25</td>
<td valign="middle" align="center">117.75</td>
<td valign="middle" align="center">68.45</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">06:30</td>
<td valign="middle" align="center">28.64</td>
<td valign="middle" align="center">87.24</td>
<td valign="middle" align="center">101.42</td>
<td valign="middle" align="center">14.37</td>
<td valign="middle" align="center">127.36</td>
<td valign="middle" align="center">60.24</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">07:00</td>
<td valign="middle" align="center">28.91</td>
<td valign="middle" align="center">87.41</td>
<td valign="middle" align="center">101.42</td>
<td valign="middle" align="center">13.96</td>
<td valign="middle" align="center">123.95</td>
<td valign="middle" align="center">88.90</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">07:30</td>
<td valign="middle" align="center">29.32</td>
<td valign="middle" align="center">86.95</td>
<td valign="middle" align="center">101.41</td>
<td valign="middle" align="center">16.75</td>
<td valign="middle" align="center">131.24</td>
<td valign="middle" align="center">120.37</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">08:00</td>
<td valign="middle" align="center">29.75</td>
<td valign="middle" align="center">86.23</td>
<td valign="middle" align="center">101.41</td>
<td valign="middle" align="center">15.33</td>
<td valign="middle" align="center">135.78</td>
<td valign="middle" align="center">135.66</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
<td valign="middle" align="center">&#x22ee;</td>
</tr>
<tr>
<td valign="middle" align="center">14:00</td>
<td valign="middle" align="center">33.72</td>
<td valign="middle" align="center">84.66</td>
<td valign="middle" align="center">101.26</td>
<td valign="middle" align="center">16.82</td>
<td valign="middle" align="center">130.25</td>
<td valign="middle" align="center">458.36</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">14:30</td>
<td valign="middle" align="center">33.48</td>
<td valign="middle" align="center">83.35</td>
<td valign="middle" align="center">101.26</td>
<td valign="middle" align="center">14.29</td>
<td valign="middle" align="center">123.74</td>
<td valign="middle" align="center">520.59</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">15:00</td>
<td valign="middle" align="center">32.95</td>
<td valign="middle" align="center">84.71</td>
<td valign="middle" align="center">101.27</td>
<td valign="middle" align="center">12.88</td>
<td valign="middle" align="center">119.55</td>
<td valign="middle" align="center">330.47</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">15:30</td>
<td valign="middle" align="center">32.53</td>
<td valign="middle" align="center">83.29</td>
<td valign="middle" align="center">101.26</td>
<td valign="middle" align="center">15.26</td>
<td valign="middle" align="center">121.57</td>
<td valign="middle" align="center">220.69</td>
<td valign="middle" align="center">0</td>
</tr>
<tr>
<td valign="middle" align="center">16:00</td>
<td valign="middle" align="center">31.47</td>
<td valign="middle" align="center">83.04</td>
<td valign="middle" align="center">101.25</td>
<td valign="middle" align="center">16.88</td>
<td valign="middle" align="center">120.49</td>
<td valign="middle" align="center">392.21</td>
<td valign="middle" align="center">0</td>
</tr>
</tbody>
</table>
</table-wrap>

<table-wrap id="T2" position="float">
<label>Table&#xa0;2</label>
<caption>
<p>Statistical results of data collected by monitoring station A9.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Category</th>
<th valign="middle" align="center">Indicators</th>
<th valign="middle" align="center">Mean &#xb1; SD</th>
<th valign="middle" align="center">Range</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" rowspan="6" align="center">Water quality parameters</td>
<td valign="middle" align="center">Dissolved oxygen/(mg&#xb7;L<sup>&#x2212;1</sup>)</td>
<td valign="middle" align="center">7.534 &#xb1; 2.175</td>
<td valign="middle" align="center">3.29&#x223c;11.64</td>
</tr>
<tr>
<td valign="middle" align="center">Water temperature/&#xb0;C</td>
<td valign="middle" align="center">27.422 &#xb1; 3.210</td>
<td valign="middle" align="center">18.58&#x223c;33.36</td>
</tr>
<tr>
<td valign="middle" align="center">Conductivity/&#x3bc;S&#xb7;cm<sup>&#x2212;1</sup>
</td>
<td valign="middle" align="center">3450.463 &#xb1; 400.675</td>
<td valign="middle" align="center">2240.45&#x223c;5300.60</td>
</tr>
<tr>
<td valign="middle" align="center">pH value</td>
<td valign="middle" align="center">7.920 &#xb1; 0.218</td>
<td valign="middle" align="center">7.24&#x223c;8.91</td>
</tr>
<tr>
<td valign="middle" align="center">Ammonia nitrogen/(mg&#xb7;L<sup>&#x2212;1</sup>)</td>
<td valign="middle" align="center">0.324 &#xb1; 0.112</td>
<td valign="middle" align="center">0.06&#x223c;0.58</td>
</tr>
<tr>
<td valign="middle" align="center">Turbidity/NTU</td>
<td valign="middle" align="center">20.301 &#xb1; 2.430</td>
<td valign="middle" align="center">15.4&#x223c;30.5</td>
</tr>
<tr>
<td valign="middle" rowspan="7" align="center">Meteorological Parameters</td>
<td valign="middle" align="center">Temperature/&#xb0;C</td>
<td valign="middle" align="center">28.512 &#xb1; 5.351</td>
<td valign="middle" align="center">22.32&#x223c;34.05</td>
</tr>
<tr>
<td valign="middle" align="center">Relative humidity/%</td>
<td valign="middle" align="center">85.638 &#xb1; 6.250</td>
<td valign="middle" align="center">73.45&#x223c;94.68</td>
</tr>
<tr>
<td valign="middle" align="center">Pressure/KPa</td>
<td valign="middle" align="center">101.512 &#xb1; 0.782</td>
<td valign="middle" align="center">99.25&#x223c;102.07</td>
</tr>
<tr>
<td valign="middle" align="center">Wind speed/(km&#xb7;h<sup>&#x2212;1</sup>)</td>
<td valign="middle" align="center">16.578 &#xb1; 5.530</td>
<td valign="middle" align="center">7.00&#x223c;52.00</td>
</tr>
<tr>
<td valign="middle" align="center">Wind direction/(&#xb0;)</td>
<td valign="middle" align="center">173.539 &#xb1; 56.821</td>
<td valign="middle" align="center">22.5&#x223c;360</td>
</tr>
<tr>
<td valign="middle" align="center">Solar radiation (W&#xb7;m<sup>&#x2212;2)</sup>
</td>
<td valign="middle" align="center">625.537 &#xb1; 568.248</td>
<td valign="middle" align="center">0.0&#x223c;1915.00</td>
</tr>
<tr>
<td valign="middle" align="center">Rainfall/mm</td>
<td valign="middle" align="center">2.350&#x223c;8.852</td>
<td valign="middle" align="center">0.0&#x223c;38.8</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>Table&#xa0;3</label>
<caption>
<p>Principal component coefficient matrix of aquaculture environment parameters.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Indicators</th>
<th valign="middle" align="center">Component 1</th>
<th valign="middle" align="center">Component 2</th>
<th valign="middle" align="center">Component 3</th>
<th valign="middle" align="center">Component 4</th>
<th valign="middle" align="center">Component 5</th>
<th valign="middle" align="center">Component 6</th>
<th valign="middle" align="center">Component 7</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">Water temperature</td>
<td valign="middle" align="center">0.467</td>
<td valign="middle" align="center">&#x2212;0.184</td>
<td valign="middle" align="center">&#x2212;0.114</td>
<td valign="middle" align="center">0.147</td>
<td valign="middle" align="center">&#x2212;0.052</td>
<td valign="middle" align="center">&#x2212;0.030</td>
<td valign="middle" align="center">&#x2212;0.124</td>
</tr>
<tr>
<td valign="middle" align="center">Conductivity</td>
<td valign="middle" align="center">&#x2212;0.352</td>
<td valign="middle" align="center">&#x2212;0.038</td>
<td valign="middle" align="center">0.294</td>
<td valign="middle" align="center">&#x2212;0.132</td>
<td valign="middle" align="center">&#x2212;0.160</td>
<td valign="middle" align="center">&#x2212;0.084</td>
<td valign="middle" align="center">&#x2212;0.131</td>
</tr>
<tr>
<td valign="middle" align="center">pH value</td>
<td valign="middle" align="center">&#x2212;0.278</td>
<td valign="middle" align="center">&#x2212;0.241</td>
<td valign="middle" align="center">0.469</td>
<td valign="middle" align="center">0.153</td>
<td valign="middle" align="center">&#x2212;0.078</td>
<td valign="middle" align="center">&#x2212;0.232</td>
<td valign="middle" align="center">&#x2212;0.094</td>
</tr>
<tr>
<td valign="middle" align="center">Ammonia nitrogen</td>
<td valign="middle" align="center">0.314</td>
<td valign="middle" align="center">&#x2212;0.296</td>
<td valign="middle" align="center">&#x2212;0.370</td>
<td valign="middle" align="center">0.055</td>
<td valign="middle" align="center">0.079</td>
<td valign="middle" align="center">0.140</td>
<td valign="middle" align="center">&#x2212;0.207</td>
</tr>
<tr>
<td valign="middle" align="center">Turbidity</td>
<td valign="middle" align="center">0.114</td>
<td valign="middle" align="center">&#x2212;0.385</td>
<td valign="middle" align="center">&#x2212;0.208</td>
<td valign="middle" align="center">&#x2212;0.258</td>
<td valign="middle" align="center">0.1411</td>
<td valign="middle" align="center">&#x2212;0.273</td>
<td valign="middle" align="center">0.776</td>
</tr>
<tr>
<td valign="middle" align="center">Temperature</td>
<td valign="middle" align="center">0.452</td>
<td valign="middle" align="center">0.242</td>
<td valign="middle" align="center">&#x2212;0.213</td>
<td valign="middle" align="center">0.147</td>
<td valign="middle" align="center">&#x2212;0.037</td>
<td valign="middle" align="center">&#x2212;0.063</td>
<td valign="middle" align="center">&#x2212;0.097</td>
</tr>
<tr>
<td valign="middle" align="center">Relative humidity</td>
<td valign="middle" align="center">0.135</td>
<td valign="middle" align="center">0.644</td>
<td valign="middle" align="center">&#x2212;0.187</td>
<td valign="middle" align="center">&#x2212;0.037</td>
<td valign="middle" align="center">&#x2212;0.087</td>
<td valign="middle" align="center">&#x2212;0.197</td>
<td valign="middle" align="center">0.226</td>
</tr>
<tr>
<td valign="middle" align="center">Pressure</td>
<td valign="middle" align="center">&#x2212;0.378</td>
<td valign="middle" align="center">&#x2212;0.229</td>
<td valign="middle" align="center">&#x2212;0.340</td>
<td valign="middle" align="center">0.068</td>
<td valign="middle" align="center">0.063</td>
<td valign="middle" align="center">0.025</td>
<td valign="middle" align="center">&#x2212;0.075</td>
</tr>
<tr>
<td valign="middle" align="center">Wind speed</td>
<td valign="middle" align="center">&#x2212;0.060</td>
<td valign="middle" align="center">0.161</td>
<td valign="middle" align="center">&#x2212;0.305</td>
<td valign="middle" align="center">&#x2212;0.218</td>
<td valign="middle" align="center">0.581</td>
<td valign="middle" align="center">0.688</td>
<td valign="middle" align="center">0.050</td>
</tr>
<tr>
<td valign="middle" align="center">Wind direction</td>
<td valign="middle" align="center">&#x2212;0.086</td>
<td valign="middle" align="center">0.032</td>
<td valign="middle" align="center">&#x2212;0.027</td>
<td valign="middle" align="center">0.844</td>
<td valign="middle" align="center">&#x2212;0.055</td>
<td valign="middle" align="center">0.280</td>
<td valign="middle" align="center">0.416</td>
</tr>
<tr>
<td valign="middle" align="center">Solar radiation</td>
<td valign="middle" align="center">&#x2212;0.306</td>
<td valign="middle" align="center">0.197</td>
<td valign="middle" align="center">&#x2212;0.458</td>
<td valign="middle" align="center">0.136</td>
<td valign="middle" align="center">0.084</td>
<td valign="middle" align="center">0.024</td>
<td valign="middle" align="center">&#x2212;0.258</td>
</tr>
<tr>
<td valign="middle" align="center">Rainfall</td>
<td valign="middle" align="center">0.018</td>
<td valign="middle" align="center">0.281</td>
<td valign="middle" align="center">0.031</td>
<td valign="middle" align="center">0.249</td>
<td valign="middle" align="center">0.761</td>
<td valign="middle" align="center">&#x2212;0.498</td>
<td valign="middle" align="center">&#x2212;0.065</td>
</tr>
<tr>
<td valign="middle" align="center">eigenvalue</td>
<td valign="middle" align="center">3.632</td>
<td valign="middle" align="center">1.585</td>
<td valign="middle" align="center">1.402</td>
<td valign="middle" align="center">1.050</td>
<td valign="middle" align="center">0.976</td>
<td valign="middle" align="center">0.903</td>
<td valign="middle" align="center">0.804</td>
</tr>
<tr>
<td valign="middle" align="center">Contribution rate/%</td>
<td valign="middle" align="center">30.266</td>
<td valign="middle" align="center">13.208</td>
<td valign="middle" align="center">11.686</td>
<td valign="middle" align="center">8.750</td>
<td valign="middle" align="center">8.136</td>
<td valign="middle" align="center">7.524</td>
<td valign="middle" align="center">6.701</td>
</tr>
<tr>
<td valign="middle" align="center">Cumulative contribution rate/%</td>
<td valign="middle" align="center">30.266</td>
<td valign="middle" align="center">43.474</td>
<td valign="middle" align="center">55.160</td>
<td valign="middle" align="center">63.910</td>
<td valign="middle" align="center">72.046</td>
<td valign="middle" align="center">79.570</td>
<td valign="middle" align="center">86.271</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Hyperparameter optimization and training of the model</title>
<p>The data, after being processed through outlier removal, linear interpolation for missing values, and principal component analysis, was input into the neural network model for hyperparameter optimization and training.</p>
<p>Step 1: Initialize the hyperparameters of the ISSA. The number of sparrows was set to 50, the maximum number of iterations <italic>T</italic> was 100, with the proportions of producers, followers, and scouts being 70%, 10%, and 20% respectively. The safety threshold was set to 0.6, and the search space was 5-dimensional. For the two-layer Bi-GRU, the optimization range for the number of hidden neurons was [8, 128], the optimization range for the maximum number of iterations was [10, 100], the optimization range for the batch size was [16, 128], and the optimization range for the learning rate was [0.001, 0.1].</p>
<p>Step 2: Train the DAM-Bi-GRU model using the hyperparameter combinations provided by ISSA. Each sparrow corresponds to a set of hyperparameter combinations. The model was trained using supervised learning, with the root mean square error (RMSE) function serving as the loss function. The mathematical definition of RMSE is as follows:</p>
<disp-formula id="eq22">
<label>(22)</label>
<mml:math display="block" id="M22">
<mml:mrow>
<mml:mtext>RMSE</mml:mtext>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>^</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im65">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math display="inline" id="im66">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>^</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the actual value and the predicted value by the model respectively, and <italic>N</italic> is the number of training samples in a batch. An end-to-end learning approach was adopted, where the neural network&#x2019;s weights were continuously adjusted through forward propagation and backward propagation of gradients. The iteration stops once the preset number of iterations is reached or the training objective is achieved, completing the neural network training. Ultimately, each hyperparameter combination corresponds to a trained DAM-Bi-GRU model.</p>
<p>Step 3: Validate the DAM-Bi-GRU models trained in Step 2 using the pre-divided validation dataset. The validation result of each trained DAM-Bi-GRU model was measured by RMSE, and the fitness of the sparrow corresponding to the set of hyperparameter combinations for that model is also evaluated using the same RMSE value.</p>
<p>Step 4: Determining whether the model training has concluded based on the fitness value. If it has reaches the maximum number of the presented iterations of ISSA or the optimal fitness value of the sparrow population has met the training objective, end the training and output the DAM-Bi-GRU model with the optimal parameter combination. Otherwise, update the positions of producers, followers, and scouts based on the fitness values of the sparrow population, and generate new hyperparameter combinations. Repeat Steps 2 to 4 until the training is completed.</p>
<p>Following the above optimization and training steps, the final results of DAM-Bi-GRU hyperparameter optimization were obtained, with the hidden neuron counts for the two-layer Bi-GRU being 46 and 72 respectively; the maximum number of iterations being 86; the batch size being 66; and the learning rate being 0.004. Furthermore, the proposed ISSA was compared with the original SSA, PSO, and GA in terms of optimization performance. The convergence of the algorithms during the iterative optimization process is illustrated in <xref ref-type="fig" rid="f8">
<bold>Figure&#xa0;8</bold>
</xref>. It can be seen that the fitness value of ISSA converges to around 0.21 after approximately 35 iterations, while SSA converges to around 0.23 after about 45 iterations, PSO converges to around 0.26 after approximately 55 iterations, and GA converges to around 0.28 after approximately 70 iterations. This indicates that the optimization ability and convergence speed of ISSA are significantly higher than those of SSA, GA, and PSO. Additionally, the fluctuating downward trend of the fitness value of ISSA in <xref ref-type="fig" rid="f8">
<bold>Figure&#xa0;8</bold>
</xref> suggests its ability to quickly escape local optima. In contrast, the other three optimization algorithms exhibit varying degrees of stagnation.</p>
<fig id="f8" position="float">
<label>Figure&#xa0;8</label>
<caption>
<p>Iterative optimization and convergence curves for different optimization algorithm.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g008.tif"/>
</fig>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Testing and evaluation of the model</title>
<p>In this study, the root mean squared error (RMSE), mean absolute percentage error (MAPE), and Nash-Sutcliffe efficient (NSE) were adopted to evaluate the predictive performance of the model. The calculation formulas are as follows:</p>
<disp-formula id="eq23">
<label>(23)</label>
<mml:math display="block" id="M23">
<mml:mrow>
<mml:mtext>RMSE</mml:mtext>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>^</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq24">
<label>(24)</label>
<mml:math display="block" id="M24">
<mml:mrow>
<mml:mtext>MAPE</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>^</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="eq25">
<label>(25)</label>
<mml:math display="block" id="M25">
<mml:mrow>
<mml:mtext>NSE</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>^</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im67">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the actual value, <inline-formula>
<mml:math display="inline" id="im68">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the mean of the actual values, <inline-formula>
<mml:math display="inline" id="im69">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>^</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the predicted value by the model, and <italic>N</italic> is the number of data points in the data set used for evaluating the model&#x2019;s performance. A lower RMSE indicates better predictive performance. MAPE measures the average magnitude of the percentage errors in a set of predictions, without considering their direction. A lower MAPE indicates better predictive accuracy. NSC ranges from negative infinity to 1, with 1 indicating a perfect match between observed and predicted values. Higher NSE values indicate better predictive performance. In summary, a lower RMSE and MAPE, and a higher NSC, all suggest better predictive performance of the model.</p>
<p>The 624 test data set samples were inputted one by one into the trained DAM-Bi-GRU model with the optimal combination of hyperparameters, the prediction results were obtained sequentially. The model&#x2019;s performance parameters on the test set were calculated by <xref ref-type="disp-formula" rid="eq3">Equations 23</xref>&#x2013;<xref ref-type="disp-formula" rid="eq25">25</xref>, namely RMSE, MAPE, and NSE which found to be 0.2136, 0.0232, and 0.9427, respectively. Additionally, <xref ref-type="fig" rid="f9">
<bold>Figures&#xa0;9A&#x2013;D</bold>
</xref> sequentially present the comparison curves of predicted and actual values for the test samples, the prediction errors, the distribution of prediction errors, and the linear fitting between predicted and actual values. From <xref ref-type="fig" rid="f9">
<bold>Figure&#xa0;9A</bold>
</xref>, it can be observed that the proposed PCA-ISSA-DAM-Bi-GRU model is capable of capturing the changing trends of real dissolved oxygen data, sensitively identifying subtle fluctuations in the data, and maintaining a high prediction accuracy. <xref ref-type="fig" rid="f9">
<bold>Figures&#xa0;9B&#x2013;D</bold>
</xref> demonstrate that there is a small discrepancy between the predicted and actual values.</p>
<fig id="f9" position="float">
<label>Figure&#xa0;9</label>
<caption>
<p>
<bold>(A)</bold> DO prediction of the proposed model on the test data set. <bold>(B)</bold> Prediction error of the test data set; <bold>(C)</bold> Histogram of the prediction error distribution on the test data set; <bold>(D)</bold> Linear fitting between predicted and observed values.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g009.tif"/>
</fig>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>Comparison and analysis of the models</title>
<p>To analyze and evaluate the competitiveness and superiority of the proposed model, this article designed ablation experiments and comparative experiments, selecting different models to compare their predictive performance.</p>
<sec id="s3_4_1">
<label>3.4.1</label>
<title>Ablation experiments</title>
<p>The ablation experiments were conducted in two groups, A and B. The models in Group A do not incorporate the hyperparameter optimization module ISSA, with the baseline model being Bi-GRU. The models in Group B all include the ISSA, with the baseline model being ISSA-Bi-GRU. Each group include three models: one with PCA added alone to the baseline module, one with DAM added alone, and one with both PCA and DAM added simultaneously. For experiments in Group A, the random search method was used to determine the model&#x2019;s hyperparameters with the number of random searches setted to be 100, which is equivalent to the maximum number of iterations for the ISSA module.</p>
<p>The prediction performance of each model on the test data set is shown in <xref ref-type="table" rid="T4">
<bold>Table&#xa0;4</bold>
</xref>. In Group A, the prediction performance indicators RMSE, MAPE, and NSE of the baseline model Bi-GRU are 0.4077, 0.0527, and 0.8358, respectively. Compared with it, the PCA-Bi-GRU model shows a 9.22% decrease in RMSE, a 11.76% decrease in MAPE, and a 1.99% increase in NSE. The DAM-Bi-GRU model exhibits a 18.42% reduction in RMSE, a 28.27% reduction in MAPE, and a 5.56% increase in NSE. The PCA-DAM-Bi-GRU model, on the other hand, demonstrates a 24.63% decrease in RMSE, a 40.23% decrease in MAPE, and a 8.91% increase in NSE compared to the baseline. In Group B, the prediction performance indicators RMSE, MAPE, and NSE of the base model ISSA-Bi-GRU are 0.3424, 0.0392, and 0.8682, respectively. The PCA-ISSA-Bi-GRU model shows a 4.35% decrease in RMSE, a 8.16% decrease in MAPE, and a 3.44% increase in NSC compared to it. The ISSA-DAM-GRU model exhibits an 18.81% reduction in RMSE, a 17.6% reduction in MAPE, and a 6.73% increase in NSC. The PCA-ISSA-DAM-Bi-GRU model, however, demonstrates a 37.62% decrease in RMSE, a 40.82% decrease in MAPE, and an 8.85% increase in NSE compared to the base model. This indicates that both the DAM module and the PCA module can enhance the prediction performance of the models, with the DAM module showing a more significant improvement than PCA, and their fusion being even more effective. <xref ref-type="fig" rid="f10">
<bold>Figures&#xa0;10A&#x2013;C</bold>
</xref> represent the three evaluation indicators (RMSE, MAPE, and NSE) for the models in Groups A and B, respectively. It can be observed that optimizing the hyperparameters of the Bi-GRU module through the ISSA module indeed enhances the prediction performance of the models.</p>
<table-wrap id="T4" position="float">
<label>Table&#xa0;4</label>
<caption>
<p>Predictive performance of different models for the ablation experiments.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Group</th>
<th valign="middle" align="center">Model</th>
<th valign="middle" align="center">RMSE/(mg&#xb7;L<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">MAPE</th>
<th valign="middle" align="center">NSE</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" rowspan="4" align="center">A<break/>(Model with-out ISSA)</td>
<td valign="middle" align="center">Bi_GRU</td>
<td valign="middle" align="center">0.4077</td>
<td valign="middle" align="center">0.0527</td>
<td valign="middle" align="center">0.8358</td>
</tr>
<tr>
<td valign="middle" align="center">PCA_Bi_GRU</td>
<td valign="middle" align="center">0.3701</td>
<td valign="middle" align="center">0.0465</td>
<td valign="middle" align="center">0.8524</td>
</tr>
<tr>
<td valign="middle" align="center">DAM_Bi_GRU</td>
<td valign="middle" align="center">0.3326</td>
<td valign="middle" align="center">0.0378</td>
<td valign="middle" align="center">0.8823</td>
</tr>
<tr>
<td valign="middle" align="center">PCA_DAM_Bi_GRU</td>
<td valign="middle" align="center">0.3073</td>
<td valign="middle" align="center">0.0315</td>
<td valign="middle" align="center">0.9103</td>
</tr>
<tr>
<td valign="middle" rowspan="4" align="center">B<break/>(Model with ISSA)</td>
<td valign="middle" align="center">ISSA_Bi_GRU</td>
<td valign="middle" align="center">0.3424</td>
<td valign="middle" align="center">0.0392</td>
<td valign="middle" align="center">0.8682</td>
</tr>
<tr>
<td valign="middle" align="center">PCA_ISSA_Bi_GRU</td>
<td valign="middle" align="center">0.3275</td>
<td valign="middle" align="center">0.0360</td>
<td valign="middle" align="center">0.8981</td>
</tr>
<tr>
<td valign="middle" align="center">ISSA_DAM_Bi_GRU</td>
<td valign="middle" align="center">0.2780</td>
<td valign="middle" align="center">0.0323</td>
<td valign="middle" align="center">0.9266</td>
</tr>
<tr>
<td valign="middle" align="center">PCA_ISSA_DAM_Bi_GRU</td>
<td valign="middle" align="center">0.2136</td>
<td valign="middle" align="center">0.0232</td>
<td valign="middle" align="center">0.9427</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="f10" position="float">
<label>Figure&#xa0;10</label>
<caption>
<p>Prediction performance presented by <bold>(A)</bold> RMSE, <bold>(B)</bold> MARE and <bold>(C)</bold> NSE for various models in the ablation study. Group A do not incorporate attention mechanism and Group B incorporate attention Mechanism.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g010.tif"/>
</fig>
</sec>
<sec id="s3_4_2">
<label>3.4.2</label>
<title>Comparative experiments</title>
<sec id="s3_4_2_1">
<label>3.4.2.1</label>
<title>Comparison with baseline modules</title>
<p>To evaluate the superiority of PCA, ISSA, and Bi-GRU in enhancing prediction accuracy within the proposed model, the following comparative experiments were also conducted in this study: 1) Pearson correlation coefficient analysis was used to replace PCA, resulting in the comparative model P-ISSA-DAM-Bi-GRU; 2) ISSA was replaced with SSA, GA, and PSO, respectively, generating comparative models PCA-SSA-DAM-Bi-GRU, PCA-GA-DAM-Bi-GRU, and PCA-PSO-DAM-Bi-GRU; 3) Bi-GRU was replaced with Bi-LSTM, LSTM, and CNN, respectively, resulting in comparative models PCA-ISSA-DAM-Bi-LSTM, PCA-ISSA-DAM-LSTM, and PCA-ISSA-DAM-CNN. Eight comparative models were evaluated in total corresponding to serial numbers 1 to 8. The experimental results are presented in <xref ref-type="table" rid="T5">
<bold>Table&#xa0;5</bold>
</xref> and <xref ref-type="fig" rid="f11">
<bold>Figure&#xa0;11</bold>
</xref>, revealing the following: 1) The prediction performance metrics of the PCA-ISSA-DAM-Bi-GRU model are superior to those of P-ISSA-DAM-Bi-GRU, indicating that PCA outperforms the Pearson correlation coefficient analysis method in dimensionality reduction for data input in terms of dissolved oxygen prediction performance; 2) The prediction performance metrics of PCA-ISSA-DAM-Bi-GRU are superior to those of PCA-SSA-DAM-Bi-GRU, PCA-GA-DAM-Bi-GRU, and PCA-PSO-DAM-Bi-GRU, with the NSE value reaching 0.9807, demonstrating that compared to baseline approaches such as SSA, GA, and PSO, the optimization of Bi-GRU hyperparameters by ISSA results in better model fitting; 3) The prediction performance metrics of PCA-ISSA-DAM-Bi-GRU are slightly higher than those of PCA-ISSA-DAM-Bi-LSTM and significantly higher than those of PCA-ISSA-DAM-LSTM and PCA-ISSA-DAM-CNN, indicating that bidirectional neural networks enhance temporal feature extraction for contextually related time series prediction.</p>
<table-wrap id="T5" position="float">
<label>Table&#xa0;5</label>
<caption>
<p>Predictive performance of different models for the comparative experiments.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Model number</th>
<th valign="middle" align="center">Prediction model</th>
<th valign="middle" align="center">RMSE/(mg&#xb7;L<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">MAPE</th>
<th valign="middle" align="center">NSE</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">1</td>
<td valign="middle" align="center">PCA-ISSA-DAM-Bi-GRU</td>
<td valign="middle" align="center">0.2136</td>
<td valign="middle" align="center">0.0232</td>
<td valign="middle" align="center">0.9427</td>
</tr>
<tr>
<td valign="middle" align="center">2</td>
<td valign="middle" align="center">P-ISSA-DAM-Bi-GRU</td>
<td valign="middle" align="center">0.2742</td>
<td valign="middle" align="center">0.0306</td>
<td valign="middle" align="center">0.9294</td>
</tr>
<tr>
<td valign="middle" align="center">3</td>
<td valign="middle" align="center">PCA-SSA-DAM-Bi-GRU</td>
<td valign="middle" align="center">0.2821</td>
<td valign="middle" align="center">0.0317</td>
<td valign="middle" align="center">0.9316</td>
</tr>
<tr>
<td valign="middle" align="center">4</td>
<td valign="middle" align="center">PCA-GA-DAM-Bi-GRU</td>
<td valign="middle" align="center">0.2933</td>
<td valign="middle" align="center">0.0346</td>
<td valign="middle" align="center">0.9358</td>
</tr>
<tr>
<td valign="middle" align="center">5</td>
<td valign="middle" align="center">PCA-PSO-DAM-Bi-GRU</td>
<td valign="middle" align="center">0.2928</td>
<td valign="middle" align="center">0.0336</td>
<td valign="middle" align="center">0.9346</td>
</tr>
<tr>
<td valign="middle" align="center">6</td>
<td valign="middle" align="center">PCA-ISSA-DAM-Bi-LSTM</td>
<td valign="middle" align="center">0.2178</td>
<td valign="middle" align="center">0.0292</td>
<td valign="middle" align="center">0.9401</td>
</tr>
<tr>
<td valign="middle" align="center">7</td>
<td valign="middle" align="center">PCA-ISSA-DAM-LSTM</td>
<td valign="middle" align="center">0.2558</td>
<td valign="middle" align="center">0.0287</td>
<td valign="middle" align="center">0.9395</td>
</tr>
<tr>
<td valign="middle" align="center">8</td>
<td valign="middle" align="center">PCA-ISSA-DAM-CNN</td>
<td valign="middle" align="center">0.2931</td>
<td valign="middle" align="center">0.0358</td>
<td valign="middle" align="center">0.9162</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="f11" position="float">
<label>Figure&#xa0;11</label>
<caption>
<p>Prediction performance presented by <bold>(A)</bold> RMSE, <bold>(B)</bold> MARE and <bold>(C)</bold> NSE for various models in the comparative experiments.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g011.tif"/>
</fig>
</sec>
<sec id="s3_4_2_2">
<label>3.4.2.2</label>
<title>Comparison with existing models</title>
<p>Furthermore, in order to test the overall predictive performance of the proposed hybrid model PCA-ISSA-DAM-Bi-GRU, this paper also selected dissolved oxygen prediction models proposed in the past three years, namely IPSO-LSTM (<xref ref-type="bibr" rid="B4">Cao et&#xa0;al., 2021b</xref>), IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>), CNN-LSTM (<xref ref-type="bibr" rid="B24">Tan et&#xa0;al., 2022</xref>) and IDA-GRU (<xref ref-type="bibr" rid="B32">Zhang et&#xa0;al., 2023</xref>) for comparison. The results in <xref ref-type="table" rid="T6">
<bold>Table&#xa0;6</bold>
</xref> show that the model proposed in this paper outperforms those 4 models, indicating the effectiveness and superiority of the individual modules and their fusion in enhancing the prediction accuracy of dissolved oxygen.</p>
<table-wrap id="T6" position="float">
<label>Table&#xa0;6</label>
<caption>
<p>Predictive performance of existing models.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Model</th>
<th valign="middle" align="center">RMSE/(mg&#xb7;L<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">MAPE</th>
<th valign="middle" align="center">NSE</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">PCA-ISSA-DAM-Bi-GRU</td>
<td valign="middle" align="center">0.2136</td>
<td valign="middle" align="center">0.0232</td>
<td valign="middle" align="center">0.9427</td>
</tr>
<tr>
<td valign="middle" align="center">IPSO-LSTM (<xref ref-type="bibr" rid="B4">Cao et&#xa0;al., 2021b</xref>)</td>
<td valign="middle" align="center">0.3861</td>
<td valign="middle" align="center">0.0492</td>
<td valign="middle" align="center">0.8635</td>
</tr>
<tr>
<td valign="middle" align="center">IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>)</td>
<td valign="middle" align="center">0.3528</td>
<td valign="middle" align="center">0.0426</td>
<td valign="middle" align="center">0.8724</td>
</tr>
<tr>
<td valign="middle" align="center">CNN-LSTM (<xref ref-type="bibr" rid="B24">Tan et&#xa0;al., 2022</xref>)</td>
<td valign="middle" align="center">0.3495</td>
<td valign="middle" align="center">0.0358</td>
<td valign="middle" align="center">0.8631</td>
</tr>
<tr>
<td valign="middle" align="center">IDA-GRU (<xref ref-type="bibr" rid="B32">Zhang et&#xa0;al., 2023</xref>)</td>
<td valign="middle" align="center">0.3128</td>
<td valign="middle" align="center">0.0327</td>
<td valign="middle" align="center">0.9084</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
</sec>
<sec id="s3_5">
<label>3.5</label>
<title>Application of the model</title>
<p>To evaluate the practical effectiveness of the proposed model, the dissolved oxygen prediction for August 26, 2023, at the A9 monitoring station was selected as the experimental case. The prediction results and prediction error curves from the proposed PAC-ISSA-DAM-Bi-GRU model, along with the PCA-ISSA-Bi-GRU, PCA-DAM-Bi-GRU, IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>), and IDA-GRU (<xref ref-type="bibr" rid="B32">Zhang et&#xa0;al., 2023</xref>) models discussed in the previous section, are presented in <xref ref-type="fig" rid="f12">
<bold>Figure&#xa0;12</bold>
</xref>. The error value curves visually reflect the differences between the predicted curves and the actual curves, with smaller fluctuations and closer proximity to the zero-value line indicating better prediction performance. The analysis is as follows: 1) The prediction curve of the PCA-ISSA-DAM-Bi-GRU model proposed in this paper (<xref ref-type="fig" rid="f12">
<bold>Figures&#xa0;12A, B</bold>
</xref>) is closest to the actual observed values; 2) The prediction accuracy of PCA-ISSA-Bi-GRU without the dual attention mechanism (<xref ref-type="fig" rid="f12">
<bold>Figures&#xa0;12E, F</bold>
</xref>) and the IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>)model (<xref ref-type="fig" rid="f12">
<bold>Figures&#xa0;12G, H</bold>
</xref>) is significantly lower than that of the other three models, especially during the daytime. This maybe due to the factor that the dissolved oxygen is greatly affected by light intensity, and the introduced attention mechanism increases the weight of light intensity to improve the prediction accuracy; 3) The PCA-DAM-Bi-GRU model (<xref ref-type="fig" rid="f12">
<bold>Figures&#xa0;12C, D</bold>
</xref>), which do not incorporate hyperparameter optimization module ISSA, performs slightly better than IDA-GRU (<xref ref-type="bibr" rid="B32">Zhang et&#xa0;al., 2023</xref>) (<xref ref-type="fig" rid="f12">
<bold>Figures&#xa0;12I, J</bold>
</xref>), but both are significantly inferior to the PCA-ISSA-DAM-Bi-GRU model (<xref ref-type="fig" rid="f12">
<bold>Figures&#xa0;12A, B</bold>
</xref>) that incorporates ISSA for hyperparameter optimization.</p>
<fig id="f12" position="float">
<label>Figure&#xa0;12</label>
<caption>
<p>The prediction results and prediction error curves from five models on August 26, 2023. <bold>(A, B)</bold> PCA-ISSA-DAM-Bi-GRU model; <bold>(C, D)</bold> PCA-ISSA-Bi-GRU; <bold>(E, F)</bold> PCA-DAM-Bi-GRU; <bold>(G, H)</bold> IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>); <bold>(I, J)</bold> IDA-GRU (<xref ref-type="bibr" rid="B32">Zhang et&#xa0;al., 2023</xref>).</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g012.tif"/>
</fig>
<p>As can be seen from <xref ref-type="fig" rid="f11">
<bold>Figure&#xa0;11</bold>
</xref>, the daily dissolved oxygen reaches the peak at around 15:00 and reaches the valley value at around 06:00, which can reflect the health state of the water environment to a large extent. <xref ref-type="fig" rid="f13">
<bold>Figure&#xa0;13</bold>
</xref> presents the predicted dissolved oxygen distribution at various depths and monitoring stations at 06:00 and 15:00 on August 26, 2023, using the proposed PCA-ISSA-DAM-Bi-GRU model. The analysis of this distribution provides valuable insights into the health status of the aquatic environment. The key observations are: 1) Vertical dissolved oxygen gradient: compared <xref ref-type="fig" rid="f13">
<bold>Figures&#xa0;13A&#x2013;D</bold>
</xref>, it could be concluded that within the same vertical profile, the dissolved oxygen levels at 1.6 meters depth are consistently lower than those at 0.8 meters, with this difference being more pronounced during the day compared to night. This vertical gradient is a common phenomenon in aquatic systems, where oxygen solubility decreases with depth due to factors such as temperature and pressure. 2) Spatial variations during daytime: it could be seen from <xref ref-type="fig" rid="f13">
<bold>Figure&#xa0;13A</bold>
</xref> that during the day, the dissolved oxygen concentration in regions A1, A2, and A4 is higher than in A3 and A7. This can be attributed to various factors, including wind direction, water temperature, and the photosynthetic activity of aquatic plants (e.g., phytoplankton). Favorable wind conditions can enhance mixing and oxygenation, while increased photosynthetic activity during daylight hours releases oxygen into the water. 3) Spatial variations during nighttime: it could be seen from <xref ref-type="fig" rid="f13">
<bold>Figure&#xa0;13C</bold>
</xref> that The distribution of dissolved oxygen at night is influenced by different factors, such as the aggregation patterns of fish schools, wind direction, and the location of feeding devices. Notably, the dissolved oxygen levels in regions A1 and A9 are higher, while those in A7 and A8 are lower. This can be explained by the possible concentration of fish schools or the efficiency of oxygen replenishment mechanisms in these areas. Additionally, the reduced photosynthetic activity at night leads to a general decrease in dissolved oxygen levels across all regions.</p>
<fig id="f13" position="float">
<label>Figure&#xa0;13</label>
<caption>
<p>Dissolved oxygen distribution on different time at different water layers on August 26th 2023. <bold>(A)</bold> Dissolved oxygen distribution at a depth of 0.8 meters on 15:00; <bold>(B)</bold> Dissolved oxygen distribution at a depth of 1.6 meters on 15:00; <bold>(C)</bold> Dissolved oxygen distribution at a depth of 0.8 meters on 06:00; <bold>(D)</bold> Dissolved oxygen distribution at a depth of 1.6 meters on 06:00.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g013.tif"/>
</fig>
<p>The observed diurnal and spatial variations in dissolved oxygen concentrations highlight the complexity of aquatic ecosystems and the importance of accurate monitoring and prediction. The PCA-ISSA-DAM-Bi-GRU model, by capturing these dynamic changes, provides a powerful tool for assessing the health of aquaculture systems and informing management decisions aimed at optimizing conditions for fish growth and welfare.</p>
</sec>
</sec>
<sec id="s4" sec-type="discussion">
<label>4</label>
<title>Discussion</title>
<sec id="s4_1">
<label>4.1</label>
<title>Optimization mechanism of ISSA</title>
<p>As can be observed from <xref ref-type="fig" rid="f8">
<bold>Figure&#xa0;8</bold>
</xref>, the proposed ISSA in this study exhibits superior capability in optimizing model hyperparameters and convergence speed compared to the original SSA, GA, and PSO. <xref ref-type="table" rid="T5">
<bold>Table&#xa0;5</bold>
</xref> further indicates that the DO prediction performance of Bi-GRU optimized by ISSA is superior to that optimized by SSA, GA, and PSO. The optimization capability and convergence speed of SSA are primarily influenced by factors such as population diversity, global search performance, and local search ability. ISSA employs a multi-strategy fusion approach for improvement, which not only enhances the diversity and quality of the initial population but also fully utilizes information exchange among sparrow individuals to achieve a balance between local exploitation and global search in the algorithm. Additionally, it improves the algorithm&#x2019;s ability to escape from local extrema. Firstly, the introduction of Gauss chaotic sequence into the population initialization process ensured a uniform distribution of the initial population, thereby enhancing population diversity and the global search performance of the model. Secondly, the improvement of the position update strategy for discoverers by drawing inspiration from the Salp Swarm Algorithm allowing the discoverers to not necessarily decrease in every dimension during the early iterations, enhancing the search range and global search capability of the population while also maintaining the convergence speed and local search ability during the later iterations of the algorithm. Furthermore, the improvement of the position update process for followers by adopting the random following strategy from the Chicken Swarm Optimization (CSO) algorithm, where hens converge towards roosters with a certain probability. This ensures both convergence and population diversity, balancing local exploitation and global search. Lastly, the introduction of the Cauchy-Gaussian mutation strategy maintains population diversity and resistance to stagnation, preventing premature convergence of the algorithm.</p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Optimization effects of each module in the proposed PAC-ISSA-DAM-Bi-GRU</title>
<p>Based on ablation and comparison experiments, the analysis of the optimization effects of each module in the PCA-ISSA-DAM-Bi-GRU model on DO prediction is as follows: 1) ISSA can optimize the hyperparameters of the neural network model, thereby enhancing its prediction performance for the factor that hyperparameters control the structure, topology, and training process of the network, directly impacting the model&#x2019;s fitting degree, generalization ability, and stability during training. 2) Dimensionality reduction of data using PCA can improve model performance, and the effect is superior to that of the Pearson correlation coefficient analysis method. This is because the Pearson correlation coefficient analysis method only selects factors with high correlation coefficients with dissolved oxygen as inputs, completely ignoring factors weakly correlated with dissolved oxygen. In contrast, the PCA analysis method used in this study can capture 86.27% of water quality and meteorological information with only 7 dimensions of data. While reducing the dimensionality, it ensures that the input information is more complete and comprehensive, facilitating subsequent feature extraction. 3) The DAM module introduces a dual attention mechanism combining feature and temporal attention. The feature attention mechanism adaptively assigns weights to different environmental factors at each time point, while the temporal attention mechanism dynamically adjusts the weights of different time steps on the current DO concentration. This enables the neural network to better capture critical information in time series data. 4) The prediction performance of Bi-GRU is significantly higher than that of LSTM and CNN. This is because the dissolved oxygen concentration at a particular moment is correlated with environmental factors both before and after it. Bi-GRU can simultaneously explore the sequential and inverse correlations in time series, comprehensively extracting temporal features.</p>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Competitiveness and superiority compared to existing models</title>
<sec id="s4_3_1">
<label>4.3.1</label>
<title>Comparison with IPSO-LSTM and IBAS-LSTM</title>
<p>Both the IPSO-LSTM (<xref ref-type="bibr" rid="B4">Cao et&#xa0;al., 2021b</xref>) and IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>) models employed modified optimization algorithms, IPSO and IBAS, respectively, to optimize the hyperparameters of LSTM networks. In contrast to the PCA-ISSA-DAM-Bi-GRU model proposed in this paper, neither of these models performed PCA dimensionality reduction nor incorporates the feature and temporal attention mechanism DAM. Firstly, an ISSA-Bi-GRU model was constructed, and experiments revealed that its prediction performance was slightly higher than that of IPSO-LSTM (<xref ref-type="bibr" rid="B4">Cao et&#xa0;al., 2021b</xref>) and IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>), as shown in <xref ref-type="table" rid="T7">
<bold>Table&#xa0;7</bold>
</xref>. This demonstrates the superiority of the ISSA and Bi-GRU modules proposed in this paper. Therefore, the optimization capabilities and convergence speeds of ISSA, IPSO, and IBAS were compared in this paper. As shown in <xref ref-type="fig" rid="f14">
<bold>Figure&#xa0;14</bold>
</xref> and significantly higher than those of IPSO. This demonstrates that the ISSA, with its enhanced search mechanisms and adaptive parameter adjustments, exhibits superior performance in finding optimal solutions and converging towards them efficiently, compared to the other two algorithms. Furthermore, PCA-IPSO-DAM-LSTM and PCA-IBAS-DAM-LSTM were constructed based on IPSO-LSTM (<xref ref-type="bibr" rid="B4">Cao et&#xa0;al., 2021b</xref>) and IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>), respectively. Significant improvements in prediction performance were observed as shown in <xref ref-type="table" rid="T7">
<bold>Table&#xa0;7</bold>
</xref>, thoroughly validating the effectiveness of PCA and DAM proposed in this paper in enhancing the predictive capabilities of the models.</p>
<table-wrap id="T7" position="float">
<label>Table&#xa0;7</label>
<caption>
<p>Predictive performance of various models.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Model</th>
<th valign="middle" align="center">RMSE/(mg&#xb7;L<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">MAPE</th>
<th valign="middle" align="center">NSE</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">ISSA-Bi-GRU</td>
<td valign="middle" align="center">0.3424</td>
<td valign="middle" align="center">0.0392</td>
<td valign="middle" align="center">0.8682</td>
</tr>
<tr>
<td valign="middle" align="center">IPSO-LSTM (<xref ref-type="bibr" rid="B4">Cao et&#xa0;al., 2021b</xref>)</td>
<td valign="middle" align="center">0.3861</td>
<td valign="middle" align="center">0.0492</td>
<td valign="middle" align="center">0.8635</td>
</tr>
<tr>
<td valign="middle" align="center">IBAS-LSTM (<xref ref-type="bibr" rid="B23">Sun et&#xa0;al., 2021</xref>)</td>
<td valign="middle" align="center">0.3528</td>
<td valign="middle" align="center">0.0426</td>
<td valign="middle" align="center">0.8724</td>
</tr>
<tr>
<td valign="middle" align="center">PCA-IPSO-DAM-LSTM</td>
<td valign="middle" align="center">0.3082</td>
<td valign="middle" align="center">0.0397</td>
<td valign="middle" align="center">0.8963</td>
</tr>
<tr>
<td valign="middle" align="center">PCA-IBAS-DAM-LSTM</td>
<td valign="middle" align="center">0.2762</td>
<td valign="middle" align="center">0.0324</td>
<td valign="middle" align="center">0.9178</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="f14" position="float">
<label>Figure&#xa0;14</label>
<caption>
<p>Iterative optimization and convergence curve for different optimization algorithm.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-11-1473551-g014.tif"/>
</fig>
</sec>
<sec id="s4_3_2">
<label>4.3.2</label>
<title>Comparison with CNN-LSTM</title>
<p>CNN-LSTM (<xref ref-type="bibr" rid="B24">Tan et&#xa0;al., 2022</xref>) employed CNN to extract local features from the data before feeding them into the LSTM network. Compared to the PCA-ISSA-DAM-Bi-GRU model proposed in this paper, CNN-LSTM functionally lacks the integration of the feature and temporal attention mechanism DAM, as well as the utilization of ISSA for optimizing the hyperparameters of the neural network. Firstly, PCA-Bi-GRU model was constructed for comparative experiments, with hyperparameter optimized through random search. Experimental results in <xref ref-type="table" rid="T8">
<bold>Table&#xa0;8</bold>
</xref> indicated that its predictive performance was slightly inferior to CNN-LSTM (<xref ref-type="bibr" rid="B24">Tan et&#xa0;al., 2022</xref>), suggesting that the combination of CNN and LSTM indeed enhances the feature extraction capability of the data. Furthermore, CNN-ISSA-DAM-LSTM model was built upon CNN-LSTM (<xref ref-type="bibr" rid="B24">Tan et&#xa0;al., 2022</xref>). Experiments revealed significant improvement in predictive performance as shown in <xref ref-type="table" rid="T8">
<bold>Table&#xa0;8</bold>
</xref>, which reaffirms the effectiveness of the ISSA and DAM proposed in this paper in enhancing the predictive functionality of the model.</p>
<table-wrap id="T8" position="float">
<label>Table&#xa0;8</label>
<caption>
<p>Predictive performance of existing models.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Model</th>
<th valign="middle" align="center">RMSE/(mg&#xb7;L<sup>&#x2212;1</sup>)</th>
<th valign="middle" align="center">MAPE</th>
<th valign="middle" align="center">NSE</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">PCA-Bi-GRU</td>
<td valign="middle" align="center">0.3701</td>
<td valign="middle" align="center">0.0465</td>
<td valign="middle" align="center">0.8524</td>
</tr>
<tr>
<td valign="middle" align="center">CNN-LSTM (<xref ref-type="bibr" rid="B24">Tan et&#xa0;al., 2022</xref>)</td>
<td valign="middle" align="center">0.3495</td>
<td valign="middle" align="center">0.0358</td>
<td valign="middle" align="center">0.8631</td>
</tr>
<tr>
<td valign="middle" align="center">CNN-ISSA-DAM-LSTM</td>
<td valign="middle" align="center">0.2474</td>
<td valign="middle" align="center">0.0256</td>
<td valign="middle" align="center">0.9397</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s4_3_3">
<label>4.3.3</label>
<title>Comparison with IDA-GRU</title>
<p>IDA-GRU (<xref ref-type="bibr" rid="B32">Zhang et&#xa0;al., 2023</xref>) employed a dual attention mechanism similar to this paper to optimize the hyperparameters of GRU, incorporating both feature and temporal attention at the input ends of the GRU encoder and decoder. However, its optimization effect is inferior to the model presented in this paper. Firstly, IDA-GRU (<xref ref-type="bibr" rid="B32">Zhang et&#xa0;al., 2023</xref>) utilized the Pearson correlation coefficient method to select environmental factors with high correlation coefficients with DO as input variables, whereas this paper adopts PCA, preserving approximately 86.27% of the information from all environmental factors. Secondly, IDA-GRU (<xref ref-type="bibr" rid="B32">Zhang et&#xa0;al., 2023</xref>) did not employ an intelligent optimization algorithm for hyperparameter tuning. In the comparison experiment, random search method was used to determine its hyperparameters, but its predictive performance still lags behind the model in this paper. This underscores the effectiveness of the ISSA proposed in this paper in enhancing the predictive performance of the model.</p>
</sec>
</sec>
<sec id="s4_4">
<label>4.4</label>
<title>Practical application significance, limitations, and future research prospects of the model</title>
<p>This model utilized historical data from the past 24 hours to make real-time predictions of dissolved oxygen concentration 2 hours ahead, combined with LoRa+5G-based sensor deployment, enabling simultaneous prediction of dissolved oxygen concentrations at multiple points, thereby effectively forecasting the dissolved oxygen distribution in aquaculture areas. The engineering application analysis of the model reveals that it achieves good prediction results, effectively guiding water quality early warning and regulation, reducing aquaculture risks in marine ranching, and enhancing aquaculture efficiency. However, this study has limitations in spatial dimension prediction. The spatial distribution of dissolved oxygen was achieved through joint multi-point prediction, and the prediction accuracy of dissolved oxygen between points is related to the density of sensor deployment. Moreover, due to the limited availability of observed data, this study does not discuss the prediction performance of the model under different weather conditions. In future research, we will add more monitoring points in depth and attempt to employ a 3D convolutional neural network (3D-CNN) to capture the spatiotemporal characteristics of the data, providing more accurate prediction results. Additionally, we will further extend the experimental period to accumulate more data, which will be clustered according to weather conditions before predictive modeling for different categories, thereby enhancing the applicability and accuracy of the model.</p>
</sec>
</sec>
<sec id="s5" sec-type="conclusions">
<label>5</label>
<title>Conclusion</title>
<p>To enhance the accuracy, generalization, and robustness of the dissolved oxygen prediction model in aquaculture water, this paper constructed a data-driven dissolved oxygen prediction model that integrates principal component analysis (PCA), dual attention mechanism (DAM), and bi-directional gated recurrent unit (Bi-GRU) neural network. Furthermore, an improved sparrow search algorithm with multi-strategy fusion (ISSA) is introduced for hyperparameter optimization. The main conclusions are as follows:</p>
<list list-type="order">
<list-item>
<p>By applying PCA, the 13-dimensional input is reduced to 7 dimensions, eliminating redundancy and correlation among variables. This enhances the feature representation power of the input data for the prediction model and reduces its complexity. The fusion of DAM and Bi-GRU strengthens the feature extraction capability of the prediction model. The introduction of the feature attention mechanism in the encoder stage adaptively assigns weights to different environmental factors at each time step, while the time attention mechanism in the decoder stage dynamically adjusts the weights of the influence of different time steps on the current dissolved oxygen concentration. This enables the model to better capture the key information in the time series data. Combined with Bi-GRU, it simultaneously mines the sequential and inverse sequential correlations in the time series, comprehensively extracting temporal features.</p>
</list-item>
<list-item>
<p>The hyperparameters of the Bi-GRU model are searched and optimized using ISSA to enhance the model&#x2019;s optimal learning capability. The Gauss chaotic sequence is introduced into the population initialization, and the updating strategy of the discoverer&#x2019;s position is improved by referencing the salp swarm algorithm. Meanwhile, the updating strategy of the follower&#x2019;s position is optimized by drawing inspiration from the chicken swarm algorithm, and the Cauchy-Gaussian mutation strategy is incorporated to enhance the convergence performance of the SSA algorithm, balancing its global search and local exploitation capabilities.</p>
</list-item>
<list-item>
<p>The root mean square error (RMSE), mean absolute percentage error (MAPE), and Nash-Sutcliffe efficiency (NSE) of the proposed PCA-ISSA-DAM-Bi-GRU model for predicting dissolved oxygen are 0.2136, 0.0232, and 0.9427, respectively. The ablation study demonstrates that each component of the hybrid model contributes to enhancing the predictive performance of the model. By comparing the results with traditional baseline approaches, it is evident that each module in the hybrid model provides a more significant optimization effect on prediction accuracy.</p>
</list-item>
<list-item>
<p>By combining the proposed model with wireless sensor deployment, it can effectively predict the spatio-temporal distribution characteristics of dissolved oxygen in aquaculture water, enabling dynamic monitoring of water quality in marine ranching and intelligent analysis of the aquaculture environment, thereby facilitating the construction of modern marine ranching.</p>
</list-item>
</list>
<p>In summary, the model proposed in this paper, combined with wireless sensor deployment, can effectively predict the spatio-temporal distribution characteristics of dissolved oxygen in aquaculture water bodies. This enables dynamic monitoring of water quality in marine ranching and intelligent analysis of the aquaculture environment, thereby contributing to the modernization of marine ranching construction. The model provides a powerful tool for managing and optimizing aquaculture operations, ensuring sustainable development and improved productivity in marine ranching systems.</p>
</sec>
</body>
<back>
<sec id="s6" sec-type="data-availability">
<title>Data availability statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s7" sec-type="author-contributions">
<title>Author contributions</title>
<p>WL: Conceptualization, Formal analysis, Funding acquisition, Investigation, Methodology, Resources, Software, Validation, Visualization, Writing &#x2013; original draft, Writing &#x2013; review &amp; editing. JW: Conceptualization, Methodology, Writing &#x2013; review &amp; editing. ZL: Software, Visualization, Writing &#x2013; review &amp; editing. QL: Data curation, Visualization, Writing &#x2013; review &amp; editing.</p>
</sec>
<sec id="s8" sec-type="funding-information">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research, authorship, and/or publication of this article. This work was supported by the Key R&amp;D Program of Shaanxi Province (2023-ZDLGY-15); General Project of National Natural Science Foundation of China (51979045); New Generation Information Technology Special Project in Key Fields of Ordinary Universities in Guangdong Province (2020ZDZX3008); Key Special Project in the Field of Artificial Intelligence in Guangdong Province (2019KZDZX1046); University level doctoral initiation project (060302112309); Guangdong Youth Fund Project (2023A15151110770); Zhanjiang Marine Youth Talent Innovation Project (2023E0010).</p>
</sec>
<sec id="s9" sec-type="COI-statement">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec id="s10" sec-type="disclaimer">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Abdel-Tawwab</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Monier</surname> <given-names>M. N.</given-names>
</name>
<name>
<surname>Hoseinifar</surname> <given-names>S. H.</given-names>
</name>
<name>
<surname>Faggio</surname> <given-names>C.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Fish response to hypoxia stress: growth, physiological, and immunological biomarkers</article-title>. <source>Fish Physiol. Biochem.</source> <volume>45</volume>, <fpage>997</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1007/s10695-019-00614-9</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Arora</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Keshari</surname> <given-names>A. K.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Dissolved oxygen modelling of the Yamuna river using different ANFIS models</article-title>. <source>Water Sci. Technol.</source> <volume>84</volume>, <fpage>3359</fpage>&#x2013;<lpage>3371</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.2166/wst.2021.466</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cao</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Zhou</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Z.</given-names>
</name>
</person-group> (<year>2021</year>a). <article-title>Prediction of dissolved oxygen content in aquaculture based on clustering and improved ELM</article-title>. <source>IEEE Access</source> <volume>PP</volume>, <fpage>1</fpage>&#x2013;<lpage>1</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/access.2021.3064029</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cao</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Zhou</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Z.</given-names>
</name>
</person-group> (<year>2021</year>b). <article-title>Prediction model of dissolved oxygen in aquaculture based on improved long short-term memory neural network</article-title>. <source>Trans. Chin. Soc. Agric. Eng. (Transactions CSAE)</source> <volume>37</volume>, <fpage>235</fpage>&#x2013;<lpage>242</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.11975/j.issn.1002-6819.2021.14.027</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Yang</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Fu</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Zheng</surname> <given-names>Q.</given-names>
</name>
<name>
<surname>Song</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Fu</surname> <given-names>Z.</given-names>
</name>
<etal/>
</person-group>. (<year>2022</year>). <article-title>Water quality prediction based on LSTM and attention mechanism: A case study of the Burnett River, Australia</article-title>. <source>Sustainability</source> <volume>14</volume>, <elocation-id>13231</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/su142013231</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Choi</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Suh</surname> <given-names>S.-I.</given-names>
</name>
<name>
<surname>Kim</surname> <given-names>S.-H.</given-names>
</name>
<name>
<surname>Han</surname> <given-names>E. J.</given-names>
</name>
<name>
<surname>Ki</surname> <given-names>S. J.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Assessing the performance of deep learning algorithms for short-term surface water quality prediction</article-title>. <source>Sustainability</source> <volume>13</volume>, <elocation-id>10690</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/su131910690</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cuenco</surname> <given-names>M. L.</given-names>
</name>
<name>
<surname>Stickney</surname> <given-names>R. R.</given-names>
</name>
<name>
<surname>Grant</surname> <given-names>W. E.</given-names>
</name>
</person-group> (<year>1985</year>). <article-title>Fish bioenergetics and growth in aquaculture ponds: ii. effects of interactions among, size, temperature, dissolved oxygen, unionized ammonia and food on growth of individual fish</article-title>. <source>Ecol. Modelling</source> <volume>27</volume>, <fpage>191</fpage>&#x2013;<lpage>206</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/0304-3800(85)90002-X</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guo</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Li</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Cunha</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Jayavelu</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Cammarano</surname> <given-names>D.</given-names>
</name>
<etal/>
</person-group>. (<year>2022</year>). <article-title>Machine learning-based approaches for predicting SPAD values of maize using multi-spectral images</article-title>. <source>Remote Sens.</source> <volume>14</volume>, <elocation-id>1337</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/rs14061337</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guo</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Xiao</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Hao</surname> <given-names>F.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Chen</surname> <given-names>J.</given-names>
</name>
<name>
<surname>de Beurs</surname> <given-names>K.</given-names>
</name>
<etal/>
</person-group>. (<year>2023</year>). <article-title>Comparison of different machine learning algorithms for predicting maize grain yield using UAV-based hyperspectral images</article-title>. <source>Int. J. Appl. Earth Observation Geoinf.</source> <volume>124</volume>, <elocation-id>103528</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.jag.2023.103528</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huan</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Li</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Xu</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Yang</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Jiang</surname> <given-names>J.</given-names>
</name>
<etal/>
</person-group>. (<year>2022</year>). <article-title>Multi-step prediction of dissolved oxygen in rivers based on random forest missing value imputation and attention mechanism coupled with recurrent neural network</article-title>. <source>Water Supply</source> <volume>22</volume>, <fpage>5480</fpage>&#x2013;<lpage>5493</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.2166/ws.2022.154</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiange</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Liqin</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Senjun</surname> <given-names>H.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Water quality prediction based on IGRA-ISSA-LSTM model</article-title>. <source>Water Air Soil pollut.</source> <volume>234</volume>, <fpage>172</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1007/s11270-023-06117-x</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Dong</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Liu</surname> <given-names>R.</given-names>
</name>
<name>
<surname>Huang</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Dong</surname> <given-names>K.</given-names>
</name>
<name>
<surname>Ge</surname> <given-names>J.</given-names>
</name>
<etal/>
</person-group>. (<year>2021</year>). <article-title>Effects of temperature, dissolved oxygen, and their interaction on the growth performance and condition of rainbow trout (Oncorhynchus mykiss)</article-title>. <source>J. Of Thermal Biol.</source> <volume>98</volume>, <elocation-id>102928</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.jtherbio.2021.102928</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kuang</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Shi</surname> <given-names>P.</given-names>
</name>
<name>
<surname>Hua</surname> <given-names>C.</given-names>
</name>
<name>
<surname>Chen</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Zhu</surname> <given-names>H.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>An enhanced extreme learning machine for dissolved oxygen prediction in wireless sensor networks</article-title>. <source>IEEE Access</source> <volume>8</volume>, <fpage>198730</fpage>&#x2013;<lpage>198739</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/ACCESS.2020.3033455</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname> <given-names>W.</given-names>
</name>
<name>
<surname>Wu</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Zhu</surname> <given-names>N.</given-names>
</name>
<name>
<surname>Jiang</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Tan</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Guo</surname> <given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Prediction of dissolved oxygen in a fishery pond based on gated recurrent unit (GRU)</article-title>. <source>Inf. Process. Agric.</source> <volume>8</volume>, <fpage>185</fpage>&#x2013;<lpage>193</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.inpa.2020.02.002</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Xu</surname> <given-names>C.</given-names>
</name>
<name>
<surname>Tang</surname> <given-names>X.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Dissolved oxygen prediction model for the Yangtze River estuary basin using IPSO-LSSVM</article-title>. <source>Water</source> <volume>15</volume>, <elocation-id>2206</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/w15122206</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lipizer</surname> <given-names>M.</given-names>
</name>
<name>
<surname>Partescano</surname> <given-names>E.</given-names>
</name>
<name>
<surname>Rabitti</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Giorgetti</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Crise</surname> <given-names>A.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Qualified temperature, salinity and dissolved oxygen climatologies in a changing Adriatic sea</article-title>. <source>Ocean Sci. Discussions</source> <volume>11</volume>, <fpage>331</fpage>&#x2013;<lpage>390</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.5194/os-10-771-2014</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname> <given-names>P.</given-names>
</name>
<name>
<surname>Wang</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Sangaiah</surname> <given-names>A.</given-names>
</name>
<name>
<surname>Xie</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Yin</surname> <given-names>X.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Analysis and prediction of water quality using LSTM deep neural networks in ioT environment</article-title>. <source>Sustainability</source> <volume>11</volume>, <elocation-id>2058</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/su11072058</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Q.</given-names>
</name>
<name>
<surname>Song</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Chen</surname> <given-names>Y.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Attention-based recurrent neural networks for accurate short-term and long-term dissolved oxygen prediction</article-title>. <source>Comput. Electron. Agriculture</source> <volume>165</volume>, <elocation-id>104964</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.compag.2019.104964</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mirjalili</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Gandomi</surname> <given-names>A. H.</given-names>
</name>
<name>
<surname>Mirjalili</surname> <given-names>S. Z.</given-names>
</name>
<name>
<surname>Saremi</surname> <given-names>S.</given-names>
</name>
<name>
<surname>Faris</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Mirjalili</surname> <given-names>S. M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Salp swarm algorithm: a bio-inspired optimizer for engineering design problems</article-title>. <source>Adv. Eng. Software</source> <volume>114</volume>, <fpage>163</fpage>&#x2013;<lpage>191</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.advengsoft.2017.07.002</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Neilan</surname> <given-names>R. M.</given-names>
</name>
<name>
<surname>Rose</surname> <given-names>K.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Simulating the effects of fluctuating dissolved oxygen on growth, reproduction, and survival of fish and shrimp</article-title>. <source>J. Theor. Biol.</source> <volume>343</volume>, <fpage>54</fpage>&#x2013;<lpage>68</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.jtbi.2013.11.004</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Osamy</surname> <given-names>W.</given-names>
</name>
<name>
<surname>El-Sawy</surname> <given-names>A. A.</given-names>
</name>
<name>
<surname>Salim</surname> <given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>CSOCA: Chickenswarm optimization based clustering algorithm forwireless sensor networks</article-title>. <source>IEEE Access</source> <volume>8</volume>, <fpage>60676</fpage>&#x2013;<lpage>60688</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/ACCESS.2020.2983483</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sharad</surname> <given-names>T.</given-names>
</name>
<name>
<surname>Richa</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Gagandeep</surname> <given-names>K.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Performance evaluation of two ANFIS models for predicting water quality index of river Satluj (India)</article-title>. <source>Adv. Civil Eng.</source> <volume>2018</volume>, <fpage>1</fpage>&#x2013;<lpage>10</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1155/2018/8971079</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sun</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Wu</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Sun</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Dissolved oxygen prediction model in ponds based on improved beetle antennae search and LSTM network</article-title>. <source>Trans. Chin. Soc. Agric. Machinery</source> <volume>52</volume>, <fpage>252</fpage>&#x2013;<lpage>260</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.6041/j.issn.1000-1298.2021.S0.031</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tan</surname> <given-names>W.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Wu</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Lan</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Liu</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Xiao</surname> <given-names>K.</given-names>
</name>
<etal/>
</person-group>. (<year>2022</year>). <article-title>Application of CNN and long short-term memory network in water quality predicting</article-title>. <source>Intell. Autom. Soft Comput.</source> <volume>34</volume>, <fpage>1943</fpage>&#x2013;<lpage>1958</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.32604/iasc.2022.029660</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Than</surname> <given-names>N. H.</given-names>
</name>
<name>
<surname>Ly</surname> <given-names>C. D.</given-names>
</name>
<name>
<surname>Van Tat</surname> <given-names>P.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>The performance of classification and forecasting Dong Nai River water quality for sustainable water resources management using neural network techniques</article-title>. <source>J. Hydrol.</source> <volume>596</volume>, <elocation-id>126099</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.jhydrol.2021.126099</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname> <given-names>W. C.</given-names>
</name>
<name>
<surname>Xu</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Chau</surname> <given-names>K. W.</given-names>
</name>
<name>
<surname>Xu</surname> <given-names>D. M.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Yin-Yang firefly algorithm based on dimensionally Cauchy mutation</article-title>. <source>Expert Syst. With Applications</source> <volume>150</volume>, <elocation-id>113216</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.eswa.2020.113216</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Xie</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Mo</surname> <given-names>C.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Research progress in accurate prediction of aquaculture water quality by neural network</article-title>. <source>J. Fish China</source>. <volume>47</volume>(<issue>8</issue>), <fpage>089502</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.11964/jfc.20220913689</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Li</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Zhu</surname> <given-names>L.</given-names>
</name>
<name>
<surname>Li</surname> <given-names>G.</given-names>
</name>
<name>
<surname>Niu</surname> <given-names>B.</given-names>
</name>
<name>
<surname>Peng</surname> <given-names>F.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Optimized BP neural network for Dissolved Oxygen prediction</article-title>. <source>IFAC-PapersOnLine</source> <volume>51</volume>, <fpage>596</fpage>&#x2013;<lpage>601</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.ifacol.2018.08.132</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xue</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Shen</surname> <given-names>B.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A novel swarm intelligence optimization approach: Sparrow search algorithm</article-title>. <source>Syst. Sci. Control Engineering</source> <volume>8</volume>, <fpage>22</fpage>&#x2013;<lpage>34</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1080/21642583.2019.1708830</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname> <given-names>H.</given-names>
</name>
<name>
<surname>Liu</surname> <given-names>S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Water quality prediction in sea cucumber farming based on a GRU neural network optimized by an improved whale optimization algorithm</article-title>. <source>PeerJ Comput. Sci.</source> <volume>8</volume>, <fpage>e1000</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.7717/peerj-cs.1000</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname> <given-names>Y.-F.</given-names>
</name>
<name>
<surname>Fitch</surname> <given-names>P.</given-names>
</name>
<name>
<surname>Thorburn</surname> <given-names>P. J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Predicting the trend of dissolved oxygen based on the kPCA-RNN model</article-title>. <source>Water</source> <volume>12</volume>, <elocation-id>585</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/w12020585</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Jia</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname> <given-names>Z.</given-names>
</name>
<name>
<surname>Cao</surname> <given-names>S.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Spatiotemporal prediction model of dissolved oxygen in aquaculture intergrating IDA-GRU and IIDW</article-title>. <source>Trans. Chin. Soc. Agric. Engineering</source> <volume>39</volume>, <fpage>161</fpage>&#x2013;<lpage>171</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.11975/j.issn.1002-6819.202307067</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhu</surname> <given-names>C.</given-names>
</name>
<name>
<surname>Liu</surname> <given-names>X.</given-names>
</name>
<name>
<surname>Ding</surname> <given-names>W.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Prediction model of dissolved oxygen based on FOA-LSSVR</article-title>,&#x201d; in <conf-name>IEEE 2017 36th Chinese Control Conference (CCC)</conf-name>, <conf-loc>Dalian, China</conf-loc>, <conf-date>July 26-28, 2017</conf-date>. <publisher-name>IEEE</publisher-name>, <fpage>9819</fpage>&#x2013;<lpage>9823</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.23919/ChiCC.2017.8028922</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhu</surname> <given-names>N.</given-names>
</name>
<name>
<surname>Xia</surname> <given-names>Q.</given-names>
</name>
<name>
<surname>Tan</surname> <given-names>J.</given-names>
</name>
<name>
<surname>Jiang</surname> <given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname> <given-names>G.</given-names>
</name>
<name>
<surname>Chu</surname> <given-names>D.</given-names>
</name>
<etal/>
</person-group>. (<year>2019</year>). <article-title>Model-based prediction of dissolved oxygen content in fish production</article-title>. <source>Trans. ASABE</source> <volume>62</volume>, <fpage>1417</fpage>&#x2013;<lpage>1425</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.13031/trans.13263</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>