<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Energy Res.</journal-id>
<journal-title>Frontiers in Energy Research</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Energy Res.</abbrev-journal-title>
<issn pub-type="epub">2296-598X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1268494</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2023.1268494</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Energy Research</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Short-term wind power prediction based on anomalous data cleaning and optimized LSTM network</article-title>
<alt-title alt-title-type="left-running-head">Xu et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fenrg.2023.1268494">10.3389/fenrg.2023.1268494</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Xu</surname>
<given-names>Wu</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2392411/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Shen</surname>
<given-names>Zhifang</given-names>
</name>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Fan</surname>
<given-names>Xinhao</given-names>
</name>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Liu</surname>
<given-names>Yang</given-names>
</name>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
</contrib-group>
<aff>
<institution>School of Electrical and Information Technology</institution>, <institution>Yunnan Minzu University</institution>, <addr-line>Kunming</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1504697/overview">Juan P. Amezquita-Sanchez</ext-link>, Autonomous University of Queretaro, Mexico</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1590007/overview">Kiran Bhaganagar</ext-link>, University of Texas at San Antonio, United States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1902631/overview">Shyam Singh Chandel</ext-link>, Shoolini University, India</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Wu Xu, <email>920368524@qq.com</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>02</day>
<month>11</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1268494</elocation-id>
<history>
<date date-type="received">
<day>28</day>
<month>07</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>09</day>
<month>10</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Xu, Shen, Fan and Liu.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Xu, Shen, Fan and Liu</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>Wind power prediction values are often unstable. The purpose of this study is to provide theoretical support for large-scale grid integration of power systems by analyzing units from three different regions in China and using neural networks to improve power prediction accuracy. The variables that have the greatest impact on power are screened out using the Pearson correlation coefficient. Optimize LSTM with Lion Swarm Algorithm (LSO) and add GCT attention module for optimization. Short-term predictions of actual power are made for Gansu (Northwest China), Hebei (Central Plains), and Zhejiang (Coastal China). The results show that the mean absolute percentage error (MAPE) of the nine units ranges from 9.156% to 16.38% and the root mean square error (RMSE) ranges from 1.028 to 1.546 MW for power prediction for the next 12 h. The MAPE of the units ranges from 11.36% to 18.58% and the RMSE ranges from 2.065 to 2.538 MW for the next 24 h. Furthermore, the LSTM is optimized by adding the GCT attention module to optimize the LSTM. 2.538 MW. In addition, compared with the model before data cleaning, the 12 h prediction error MAPE and RMSE are improved by an average of 34.82% and 38.10%, respectively; and the 24 h prediction error values are improved by an average of 26.32% and 20.69%, which proves the necessity of data cleaning and the generalizability of the model. The subsequent research content was also identified.</p>
</abstract>
<kwd-group>
<kwd>wind power prediction</kwd>
<kwd>anomaly data cleaning</kwd>
<kwd>lion swarm algorithm</kwd>
<kwd>gated channel transformation</kwd>
<kwd>long and short term neural net</kwd>
</kwd-group>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Wind Energy</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>In the context of global promotion of low-carbon economy and energy revolution, reducing fossil energy combustion, accelerating the development and utilization of renewable energy has become the general consensus and unanimous action of the international community; wind energy, as one of the most commercialized renewable energy sources, has achieved large-scale development and application worldwide, and wind power has become an essential component of new electricity systems <xref ref-type="bibr" rid="B6">Gonz&#xe1;lez-Sope&#xf1;a et al. (2021)</xref>; <xref ref-type="bibr" rid="B4">Diaconita et al. (2022)</xref>. Wind power has more than 700 GW of installed capacity worldwide as of 2023, and it is still expanding quickly every year. China, the United States, Germany, India, Spain, and the United Kingdom are among those that produce the most wind energy globally <xref ref-type="bibr" rid="B13">Li (2022)</xref>; <xref ref-type="bibr" rid="B5">Ding et al. (2022)</xref>. However, due to the high volatility of wind power caused by environmental factors, the prediction becomes inaccurate and can directly affect the safety of grid connection. As a result, one of the hottest areas of research right now is how to efficiently increase prediction accuracy <xref ref-type="bibr" rid="B3">Chen and Lin (2022)</xref>; <xref ref-type="bibr" rid="B21">Ramasamy et al. (2015)</xref>; <xref ref-type="bibr" rid="B2">Chandel et al. (2014b)</xref>; <xref ref-type="bibr" rid="B1">Chandel et al. (2014a)</xref>.</p>
<p>At present, due to the limitation of technical means, the power prediction by neural network is generally a short-term prediction. In this case, a lot of data from the SCADA system, but the system records and stores the operation data in the inevitable existence of noise and faults and other anomalous data, according to the distribution of the data in the power curve of the unit, the anomalous data is divided into: the bottom of the pile-up type, deviation from the power band type, the middle of the pile-up type, the type of discrete several categories <xref ref-type="bibr" rid="B32">Zhao et al. (2022)</xref>; <xref ref-type="bibr" rid="B24">Uddin and Sadiq (2022)</xref>. These data cannot truly reflect the operating state of the unit, and only the data after removing the abnormal data can reflect the unit&#x2019;s will-con state, and can be used to train the prediction model of the unit <xref ref-type="bibr" rid="B26">Wang et al. (2022a)</xref>. For this reason, scholars began to look for methods that can effectively remove the abnormal data. Literature 12 uses the K-means clustering algorithm to remove the abnormal power data <xref ref-type="bibr" rid="B23">SheenaKurian and Mathew (2023)</xref>, but the deletion rate of this algorithm is high, which destroys the temporal sequence of the original wind sequence and affects the later prediction results; Literature 13 utilizes the quartile method to clean the data <xref ref-type="bibr" rid="B22">Schubert et al. (2017)</xref>, which is generalizable but ineffective in identifying the high percentage of abnormal data; literature 14 combines the combination of the quartile method and DBSCAN in Literature 11 enhances the identification of anomalous data <xref ref-type="bibr" rid="B27">Wang et al. (2022b)</xref>, but it is more sensitive to the parameter settings and decreases the efficiency of prediction.</p>
<p>In addition, meteorological conditions are also a factor that affects the accuracy of prediction. Scholars have considered various methods to find out the factors affecting the output power results in order to make the study effective for practical use. For example, Jordan Nielson et al. used feed-forward back-propagation (FFBP) ANN model to predict the power output of individual wind turbines from the turbine itself, and improved the accuracy of power generation prediction by studying the atmospheric input variables in order to construct a power curve <xref ref-type="bibr" rid="B19">Meka et al. (2021)</xref>; Rajitha Meka et al. used Pearson&#x2019;s algorithm to discuss the factors that include ground temperature, wind speed, atmospheric pressure, wind direction, and more than ten types of meteorological data that have the potential to affect the power transmission results, and the most relevant variables to the output power were used as inputs to the temporal convolutional network (TCN), and the validity of the methodology was confirmed by a multistep prediction <xref ref-type="bibr" rid="B20">Nielson et al. (2020)</xref>. In addition, Principal Component Analysis (PCA) and shape value method were also used as correlation analysis, and the results obtained from all of the above methods showed that wind speed is the most important factor affecting the output power.</p>
<p>In terms of model selection, the literature <xref ref-type="bibr" rid="B16">Liu et al. (2018)</xref> uses support vector machine (SVM) for regression analysis, but due to the choice of kernel parameters, its generalization ability is weak and its learning capacity is insufficient for large-scale wind farm data, resulting in fluctuations in prediction results. The literature <xref ref-type="bibr" rid="B11">Krishna et al. (2021)</xref> also uses extreme learning machine (ELM) to simplify the network, which increases prediction accuracy to a certain extent, but because the hidden layer analytic complexity is low, it is difficult to generalize the results. Other researchers attempt to use the classical BP <xref ref-type="bibr" rid="B14">Li et al. (2022)</xref> network and LSTM <xref ref-type="bibr" rid="B18">Malakouti et al. (2022)</xref> network, both of which have achieved good prediction results, but the application to the actual wind power also has issues similar to those of SVM and ELM because the hidden layer and bias parameters in the network structure are random. As a result, the generalization ability decreases.</p>
<p>Researchers have begun to think about using some intelligent optimization algorithms to replace human optimization search because many underlying models call for the selection of debugging parameters, which significantly affects the efficiency of learning. For instance, the literature <xref ref-type="bibr" rid="B9">Hui et al. (2018)</xref> used the rich-poor optimization algorithm to optimize the parameters of the outlier robust learning machine to improve the generalization ability of the model, as well as the Optimize lstm based on improved whale algorithm <xref ref-type="bibr" rid="B29">Yang et al. (2022)</xref> and the variational modal decomposition and sparrow algorithm <xref ref-type="bibr" rid="B28">Wu and Wang (2021)</xref>. Literature <xref ref-type="bibr" rid="B25">Wang et al. (2020)</xref> error correction is performed using RBF-based optimization LSSVM to increase the precision of the prediction outputs. These combined models, which were previously mentioned, have decreased prediction efficiency as a result of the addition of optimization algorithms, but have only slightly increased prediction accuracy. They are somewhat concerned with one thing but not the other, and the majority of them are only studied for one unit of a single wind farm without the support of more real data, which makes them weak arguments.</p>
<p>In order to solve the aforementioned problems, a KD-LSO-G-LSTM wind power short-term prediction model is developed in this study. The following are some of the research contributions.<list list-type="simple">
<list-item>
<p>1) For the anomalous data in the original power, first use the elbow method to decide on the optimal number of clusters, which not only can avoid the issue of manual selection leading to lower efficiency, but also can make the best detection effect. Then, use the K-means algorithm to clean the first class of anomalous data values, and DBSCAN to reject the second class of anomalous data. The effectiveness of the approach for cleaning wind power is tested in the paper using comparison and ablation experiments, respectively;</p>
</list-item>
<list-item>
<p>2) Proposed using the original LSTM neural network and adding the Gated Channel Transformation (GCT) attention mechanism module to enhance the network&#x2019;s performance in the prior and subsequent moments;</p>
</list-item>
<list-item>
<p>3) Reducing the amount of time needed to discover the best settings for the G-LSTM by using the Lion Swarm method;</p>
</list-item>
<list-item>
<p>4) Nine wind turbines from three different regions of China (the Northwest, Central Plains, and Coastal) were chosen for simulation trials based on actual wind farm data in order to prevent model overfitting, and encouraging forecast results were produced.</p>
</list-item>
</list>
</p>
</sec>
<sec sec-type="materials|methods" id="s2">
<title>2 Materials and methods</title>
<sec id="s2-1">
<title>2.1 Abnormal data cleaning</title>
<sec id="s2-1-1">
<title>2.1.1 K-means</title>
<p>The most fundamental and widely used clustering algorithm is K-means clustering. Contrary to classification and sequence labeling tasks, clustering is an unsupervised algorithm that divides samples into multiple categories based on the inherent relationship between data without knowing any sample labels in advance, producing high similarity between samples of the same category and low similarity between samples of different categories. The main concept behind it is to iteratively identify a division scheme of K clusters so that the loss function associated with the clustering result is minimized. Where the loss function is the sum of the squared deviations of each sample from the cluster centroid to which it belongs <xref ref-type="bibr" rid="B10">Jin and Han (2021)</xref>.<disp-formula id="e1">
<mml:math id="m1">
<mml:mi>J</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(1)</label>
</disp-formula>Where <italic>x</italic>
<sub>
<italic>i</italic>
</sub> represents the <italic>ith</italic> sample, and <italic>c</italic>
<sub>
<italic>i</italic>
</sub> is the cluster it belongs to, and <italic>&#x3bc;</italic>
<sub>
<italic>ci</italic>
</sub> denotes the central point corresponding to the cluster, and M is the total number of samples. The core objective of K-means is to divide the given data set into K clusters and give the center corresponding to each sample data. These are the precise steps.<list list-type="simple">
<list-item>
<p>1) Data preprocessing, primarily data normalization;</p>
</list-item>
<list-item>
<p>2) Randomly select K center points, labeled as <inline-formula id="inf1">
<mml:math id="m2">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>;</p>
</list-item>
<list-item>
<p>3) Define the loss function:<italic>J</italic>(<italic>c</italic>, <italic>&#x3bc;</italic>);</p>
</list-item>
<list-item>
<p>4) Equations <xref ref-type="disp-formula" rid="e2">2</xref>, <xref ref-type="disp-formula" rid="e3">3</xref> should be repeated until <italic>J</italic> converges, where <italic>t</italic> denotes the number of iteration steps.</p>
</list-item>
</list>First, for each sample <italic>x</italic>
<sub>
<italic>i</italic>
</sub>, assign it to the nearest center:<disp-formula id="e2">
<mml:math id="m3">
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="italic">argmin</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(2)</label>
</disp-formula>The center of each class is then recalculated for each class center <italic>k</italic>:<disp-formula id="e3">
<mml:math id="m4">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="italic">argmin</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>:</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>The main goal of K-means is to decrease <italic>J</italic> by fixing the center and changing the category that each sample belongs to. The two processes switch off, <italic>J</italic> drops monotonically until it reaches its minimal value, and at the same time, the centroid and the category into which the samples are divided.</p>
</sec>
<sec id="s2-1-2">
<title>2.1.2 DBSCAN abnormal data cleaning</title>
<p>One of the more exemplary density-based clustering algorithms is DBSCAN. It is able to combine clusters with adequate high density of areas into clusters and can be utilized in noisy spatial databases of variable forms in the clusters, in contrast to division and hierarchical clustering methods that define clusters as the greatest set of densely connected points <xref ref-type="bibr" rid="B8">Hahsler et al. (2019)</xref>.</p>
<p>The core metrics of the algorithm are the neighborhood range radius and the minimum number of neighborhood points threshold, i.e., epsilon and minpts. The EPS neighborhood is defined as a circle with a center <italic>p</italic> and a radius epsilon. The number of data points in this neighborhood is <italic>m</italic>, which reflects the density of the cluster. minpts: The minimum number of data points, which is usually given directly. Based on the relationship between m and minpts, the data points can be distinguished as core points, boundary points, and outlier points. After dividing the data points, the algorithm divides the density relationship between two arbitrary data points in the same cluster into three categories: direct density reachable, density reachable, and density connected. Direct density reachable: if a point <italic>q</italic> is within the EPS neighborhood of data point <italic>p</italic> and data point <italic>q</italic> is the core point, then the center point <italic>p</italic> is directly density reachable from data point <italic>q</italic>. Density reachable: if data points <italic>p</italic>
<sub>1</sub>, <italic>p</italic>
<sub>2</sub>, <italic>&#x2026;</italic> , <italic>p</italic>
<sub>
<italic>n</italic>
</sub> in a certain EPS neighborhood, if <italic>p</italic>
<sub>
<italic>i</italic>
</sub> of these data points can be directly density reachable <italic>p</italic>
<sub>
<italic>i</italic>&#x2b;1</sub>, then it is said that <italic>p</italic>
<sub>1</sub> density up to <italic>p</italic>
<sub>
<italic>n</italic>
</sub>. Density connectivity: If a data point <italic>s</italic> is accessible by data point <italic>q</italic> and data point <italic>q</italic>, then data point <italic>q</italic> and data point <italic>q</italic> are said to be density connected.</p>
</sec>
</sec>
<sec id="s2-2">
<title>2.2 Lion group algorithm</title>
<p>A suggested algorithm called LSO, which has a high optimization efficiency, is based on how lion prides hunt. The lion pride method divides the lions into three groups in order to solve the global optimization issue given the objective function: The lioness, the lioness, and the cub. Its parameters are defined as follows <xref ref-type="bibr" rid="B12">Lee et al. (2020)</xref>.<list list-type="simple">
<list-item>
<p>1) For adult lions, the proportion factor <italic>&#x3b2;</italic> is a random number between 0 and 1, and the value of <italic>&#x3b2;</italic> is typically set at 0.5 to speed up convergence.</p>
</list-item>
<list-item>
<p>2) Lioness moving range perturbation factor <italic>&#x3b1;</italic>
<sub>
<italic>f</italic>
</sub>, the perturbation factor is defined as follows, and its purpose is to dynamically update the search range to promote convergence.</p>
</list-item>
</list>
<disp-formula id="e4">
<mml:math id="m5">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>p</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mi mathvariant="italic">exp</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>30</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(4)</label>
</disp-formula>where: <inline-formula id="inf2">
<mml:math id="m6">
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>p</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.1</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>H</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> denotes the maximum step range of lion activity; <italic>t</italic> and <italic>T</italic> denote the current number of iterations as well as the maximum number of iterations, respectively; and denote the maximum and minimum mean values in the range of lion movement.<list list-type="simple">
<list-item>
<p>3) The range&#x2019;s elongation or compression is controlled by the perturbation factor for cubs <italic>&#x3b1;</italic>
<sub>
<italic>c</italic>
</sub>, which is specified as follows:</p>
</list-item>
</list>
<disp-formula id="e5">
<mml:math id="m7">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>p</mml:mi>
<mml:mo>&#x2022;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>Suppose there are <italic>N</italic> lions in a D-dimensional algorithmic space, and let <italic>nLeader</italic> denote the number of adult lions, then:<disp-formula id="e6">
<mml:math id="m8">
<mml:mn>2</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>There is one male lion in the pride and the remainder are females. The coordinate information of the <italic>ith</italic> (1 &#x2264; <italic>i</italic> &#x2264; <italic>N</italic>) lion is <italic>x</italic>
<sub>
<italic>i</italic>
</sub> &#x3d; <italic>x</italic>
<sub>
<italic>i</italic>1</sub>, <italic>x</italic>
<sub>
<italic>i</italic>2</sub>, <italic>&#x2026;</italic> , <italic>x</italic>
<sub>
<italic>iD</italic>
</sub> (1 &#x2264; <italic>i</italic> &#x2264; <italic>N</italic>). The number of adult lions is: <italic>nLeader</italic> &#x3d; <italic>N</italic>&#x2a;<italic>&#x3b2;</italic>, and the number of juvenile lions <italic>N</italic> &#x2212; <italic>nLeader</italic>. Each of the three fulfills his responsibility while the male lion hunts for superiority, moves in a restricted region close to the ideal position. The position update formula is:<disp-formula id="e7">
<mml:math id="m9">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>And the lioness needs to work with the other end to update, according to Equation <xref ref-type="disp-formula" rid="e8">8</xref>:<disp-formula id="e8">
<mml:math id="m10">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>Lion cubs are divided into three situations: hunting with the lioness, feeding with the lion king, and elite reverse learning. The process is shown below:<disp-formula id="e9">
<mml:math id="m11">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>
<inline-formula id="inf3">
<mml:math id="m12">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the historical optimal position of a randomly chosen hunting collaborative partner in the <italic>kth</italic> generation of the lioness pride, where is a pseudo-random number generated using the normal distribution N (0,1). <inline-formula id="inf4">
<mml:math id="m13">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> represents the historical optimal solution for the <italic>kth</italic> generation of the <italic>ith</italic> lion, <italic>g</italic>
<sup>
<italic>k</italic>
</sup> represents the <italic>kth</italic> generation optimal position of the group. And: <inline-formula id="inf5">
<mml:math id="m14">
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>H</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> is the position of the <italic>ith</italic> lion cub driven.<inline-formula id="inf6">
<mml:math id="m15">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> represents the <italic>kth</italic> generation&#x2019;s best placement for the cub to follow the lioness, and <italic>q</italic> is the probability factor, a random number produced using the uniform distribution U [0,1] <xref ref-type="bibr" rid="B30">Zhang et al. (2020)</xref>.</p>
</sec>
<sec id="s2-3">
<title>2.3 LSTM</title>
<p>In many sequential tasks, long short-term memory (LSTM) is used, and it typically outperforms other sequential models like RNN when it comes to learning tasks involving vast amounts of data. The LSTM&#x2019;s structure means that it can store more memories and that it can better manage which memories are kept and which ones are deleted at a particular time step. The LSTM&#x2019;s structure means that it can better regulate which memories are kept and which ones are deleted at a certain time step. The cell structure is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>LSTM unit structure diagram.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g001.tif"/>
</fig>
<p>According to the above figure, an LSTM cell consists of a memory cell <italic>C</italic>
<sub>
<italic>t</italic>
</sub> and three gate structures (input gate <italic>i</italic>
<sub>
<italic>t</italic>
</sub>, forgetting gate <italic>f</italic>
<sub>
<italic>t</italic>
</sub>, output gate <italic>o</italic>
<sub>
<italic>t</italic>
</sub>). At the moment <italic>t</italic>, the <italic>x</italic>
<sub>
<italic>t</italic>
</sub> represents the input data and <italic>h</italic>
<sub>
<italic>t</italic>
</sub> represents the hidden layer. &#x2297; represents the vector outer product, &#x2295; and represents the superposition operation <xref ref-type="bibr" rid="B7">Greff et al. (2015)</xref>. The formula is as follows:<disp-formula id="e10">
<mml:math id="m16">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(10)</label>
</disp-formula>
<disp-formula id="e11">
<mml:math id="m17">
<mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(11)</label>
</disp-formula>
<disp-formula id="e12">
<mml:math id="m18">
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="italic">tanh</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(12)</label>
</disp-formula>
<disp-formula id="e13">
<mml:math id="m19">
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2a;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2a;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(13)</label>
</disp-formula>
<disp-formula id="e14">
<mml:math id="m20">
<mml:msub>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(14)</label>
</disp-formula>
<disp-formula id="e15">
<mml:math id="m21">
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2a;</mml:mo>
<mml:mi mathvariant="italic">tanh</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(15)</label>
</disp-formula>
</p>
<p>where <italic>U</italic> and <italic>W</italic> are the matrix weights, <italic>b</italic> is the offset, and <italic>&#x3c3;</italic> is the <italic>Sigmoid</italic> function.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Model structure of this paper</title>
<p>
<xref ref-type="fig" rid="F2">Figure 2</xref> depicts the model&#x2019;s flow in this article. The plan is to separate the data gathered by the SCADA system into a training set and a test set, count the number of clusters using the Elbow method, remove and clean the data gathered in the low power region (the first category), and the high power region (the second category), using K-means and DBSCAN, respectively. After that, the two sets of data are combined to create a new wind power sequence, which is then input to LSO-G-LSTM to determine the prediction results. Below is a description of the LSO-G-LSTM algorithm flow and the G-LSTM network structure, respectively.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Flow chart of the model in this paper.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g002.tif"/>
</fig>
<p>Even though LSTM can explain the inherent correlation of wind power output data, the wind power output varies significantly due to variations in wind speed and other factors, and predictions made using simply LSTM networks are frequently wrong. When building the model, the GCT attention mechanism module, which is compact and easy to understand, takes up little room, and the straightforward threshold settings make it easy to visualize the behavioral value of the GCT: competition OR synergy. To improve prediction accuracy, adding GCT to the LSTM coding layer can dynamically vary the contribution of various characteristics to the output and the weights of the input features <xref ref-type="bibr" rid="B31">Zhang et al. (2022)</xref>. The red dashed box in the figure depicts the G-LSTM unit&#x2019;s construction. The blue box in the illustration represents the GCT module. First assume that the input <inline-formula id="inf7">
<mml:math id="m22">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> denotes the activation features in the CNN, and its time series is <inline-formula id="inf8">
<mml:math id="m23">
<mml:mi>X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, the expanded matrix expression is:<disp-formula id="e16">
<mml:math id="m24">
<mml:mi>X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(16)</label>
</disp-formula>Where <inline-formula id="inf9">
<mml:math id="m25">
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> denotes a number of meteorological feature sets at moment <italic>t</italic>.</p>
<p>From the G-LSTM structure diagram, the relevant meteorological features are input to the attention mechanism at moment <italic>t</italic>. Combining the output of the hidden unit <italic>h</italic>
<sub>
<italic>t</italic>&#x2212;1</sub> and the memory information <italic>&#x3bc;</italic>
<sub>
<italic>t</italic>&#x2212;1</sub> at moment <italic>t</italic> &#x2212; 1, the GCT performs the following transformation on the input data sequence:<disp-formula id="e17">
<mml:math id="m26">
<mml:msubsup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="|" close="">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(17)</label>
</disp-formula>Where, <italic>&#x3bb;</italic>, <italic>&#x3c9;</italic>, <italic>&#x3b3;</italic> are trainable parameters contribute to the adaptiveness of the embedded output, <italic>&#x3bb;</italic> is used to control the activation threshold, <italic>&#x3c9;</italic>, <italic>&#x3b3;</italic> they determine the behavioral performance of the GCT in each channel. According to the figure shown, the GCT is divided into three components <xref ref-type="bibr" rid="B17">Lu et al. (2021)</xref>.</p>
<p>The first part is Global Context Embedding, given the embedding parameters <inline-formula id="inf10">
<mml:math id="m27">
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, defined as follows:<disp-formula id="e18">
<mml:math id="m28">
<mml:msubsup>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(18)</label>
</disp-formula>where <italic>&#x25b;</italic> is used to avoid the reciprocal to 0. The trainable parameter <inline-formula id="inf11">
<mml:math id="m29">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> are used to control the importance of different channels.</p>
<p>The second part is Channel Normalization, which, based on literature experience, uses <italic>&#x3b6;</italic>
<sub>2</sub> for cross-channel feature normalization, which is defined at this point as follows:<disp-formula id="e19">
<mml:math id="m30">
<mml:msubsup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:msqrt>
<mml:msubsup>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:msqrt>
<mml:msubsup>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(19)</label>
</disp-formula>
<inline-formula id="inf12">
<mml:math id="m31">
<mml:msqrt>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:msqrt>
</mml:math>
</inline-formula> is the scale factor to normalize <inline-formula id="inf13">
<mml:math id="m32">
<mml:msubsup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, thus avoiding the scale being too small. The third part, Gating Adaptation, by introducing a gating mechanism, GCT can help to promote competitive OR synergistic relationships of neurons. The definition is as follows:<disp-formula id="e20">
<mml:math id="m33">
<mml:msubsup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="italic">tanh</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>The GCT obtains channel competition when the additional trainable parameters are positive; when they are negative, it receives a synergistic relationship. With this functionality, the network performs more robustly and the training data is more steady when making predictions.</p>
<p>The correlation characteristics considering the contribution of different meteorological elements <inline-formula id="inf14">
<mml:math id="m34">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> are obtained by multiplying the characteristic correlation coefficients <inline-formula id="inf15">
<mml:math id="m35">
<mml:msubsup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> with the corresponding meteorological characteristic values <inline-formula id="inf16">
<mml:math id="m36">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>:<disp-formula id="e21">
<mml:math id="m37">
<mml:msub>
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x223c;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(21)</label>
</disp-formula>
</p>
<p>Obviously, the relevant correlated weather feature matrix of the input can be extracted flexibly by the feature attention mechanism. The hidden layer state <italic>h</italic>
<sub>
<italic>t</italic>
</sub> is then updated according to the following equation:<disp-formula id="e22">
<mml:math id="m38">
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<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:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x223c;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>Through the feature attention mechanism, the input layer considers the correlation between the input meteorological features and the output power, strengthens the key factors affecting the wind power output, and adaptively extracts the contribution of each feature to improve prediction accuracy. <italic>f</italic>
<sub>1</sub> is the LSTM network unit, and the input is no longer the original meteorological feature values but the weighted features considering the magnitude of correlation.</p>
<sec id="s3-1">
<title>3.1 LSO-G-LSTM</title>
<p>Based on the above theory, a wind power prediction model named LSO-G-LSTM is built in this paper whose steps are as follows:</p>
<p>Step 1: The total number of initial lions <italic>N</italic>, the maximum number of iterations <italic>T</italic>
<sub>
<italic>m</italic>
</sub>
<italic>ax</italic>, the adult lions <italic>&#x3b2;</italic>, and the trainable parameters <italic>&#x3bb;</italic>, <italic>&#x3c9;</italic>, <italic>&#x3b3;</italic> of the G-LSTM neural network are selected.</p>
<p>Step 2: Generate the initial population <inline-formula id="inf17">
<mml:math id="m39">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Step 3: Calculate the resulting fitness, assign it to the activation parameter <italic>&#x3bb;</italic> and the threshold parameters <italic>&#x3c9;</italic>, <italic>&#x3b3;</italic> in the GCT, and update the information of the male lion&#x2019;s position.</p>
<p>Step 4: Update the lioness and cub location information according to Eqs <xref ref-type="disp-formula" rid="e8">8</xref>, <xref ref-type="disp-formula" rid="e9">9</xref>.</p>
<p>Step 5: Judge whether the male, female and cubs should be sorted and renewed according to the degree of adaptation.</p>
<p>Step 6: Determine whether the optimal parameters are found, if yes, output; if no, repeat steps three to six until the optimal is found or the maximum number of iterations is reached.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Case study</title>
<p>In this paper, the wind power historical data of 2017&#x2013;2018 from three power plants in Northwest, Central and Coastal China are selected respectively, in which three units are selected from each power plant and sampled at 10-min intervals, and 10,000 data are taken from each group. LSTM, LSO-LSTM, and KD-LSO-G-LSTM models are constructed respectively, which are used to predict the wind power in the next 12 and 24 h, and the prediction results are compared with similar models in other literatures to analyze the errors.</p>
<p>PyCharm is the experimental platform. The operating system is 64 for Windows 10, the programming language is Python version 3.8, and the running RAM is 16.0 GB.</p>
<p>First, the meteorological data and unit characteristics of the three wind farms collected through the SCADA system were correlated and analyzed, so as to select the variables suitable for use as model inputs. The Pearson correlation coefficient method was used to analyze the degree of contribution of wind speed (ws), wind direction (wd), air temperature (T), atmospheric pressure (Pa), wind turbine rotational speed (rs), and relative humidity (RH) data to power (wp). The quotient of the covariance and standard deviation between two variables is defined by the Pearson correlation coefficient between the two variables as shown in the following equation.<disp-formula id="e23">
<mml:math id="m40">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>v</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
<p>Where, <italic>&#x3c1;</italic>
<sub>
<italic>x</italic>,<italic>y</italic>
</sub> denotes the overall correlation coefficient;<italic>covx,y</italic> denotes the covariance; <italic>E</italic> denotes the mathematical expectation;<italic>&#x3b4;</italic>
<sub>
<italic>x</italic>
</sub>, <italic>&#x3b4;</italic>
<sub>
<italic>y</italic>
</sub> represents the product of the standard deviation; and <italic>x</italic>-<italic>&#x3bc;</italic>
<sub>
<italic>x</italic>
</sub> and <italic>y</italic>-<italic>&#x3bc;</italic>
<sub>
<italic>y</italic>
</sub> denotes the value of its mean difference, respectively. The sample Pearson correlation coefficient is shown in Eq. <xref ref-type="disp-formula" rid="e23">23</xref>:<disp-formula id="e24">
<mml:math id="m41">
<mml:msub>
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2022;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2022;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(24)</label>
</disp-formula>
</p>
<p>Where, <inline-formula id="inf18">
<mml:math id="m42">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> represents the sample Pearson correlation coefficient; And <inline-formula id="inf19">
<mml:math id="m43">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:math>
</inline-formula> &#x3d; <italic>x</italic>-<inline-formula id="inf20">
<mml:math id="m44">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:math>
</inline-formula> &#x3d; <italic>y</italic>-<inline-formula id="inf21">
<mml:math id="m45">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> represents zero averaging of the variables x and y, so their Pearson correlation coefficient is actually the cosine similarity of <inline-formula id="inf22">
<mml:math id="m46">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:math>
</inline-formula>and <inline-formula id="inf23">
<mml:math id="m47">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:math>
</inline-formula>:<disp-formula id="e25">
<mml:math id="m48">
<mml:msub>
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="italic">cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2022;</mml:mo>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>The correlation between the variables is shown in the figure. The value ranges from [&#x2212;1,1], where a positive value indicates a positive correlation and a negative value indicates a negative correlation. The closer the value is to 1, the higher the correlation between the two groups of variables, which can be used as a basis for selecting input variables.</p>
<p>The correlation between the variables is shown in the <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Pearson correlation coefficient heat map.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g003.tif"/>
</fig>
<p>According to the thermal map, it can be seen that the two variables with the highest correlation with the final output wind power (wp) are wind speed (ws) and fan turbine speed (rs), and the correlation is 0.72 and 0.86, respectively. Therefore, this paper chooses these two variables as inputs to the LSTM model to predict the future wind power.</p>
<sec id="s4-1">
<title>4.1 Abnormal data detection and cleaning</title>
<sec id="s4-1-1">
<title>4.1.1 Raw data</title>
<p>Numbers 1, 2, and 3 correspond to the three units in the northwest power plant; 4, 5, and 6 to the center region; and 7, 8, and 9 to the coastline region in the raw data of nine units from three distinct wind farms. There are 10,000 samples chosen for each unit. In the data pre-processing stage, the link between power, wind speed, and fan speed is examined to pinpoint the location information of the anomalous data.</p>
<p>
<xref ref-type="fig" rid="F4">Figure 4</xref> shows the distribution range of wind speed for 9 units. Among them, the wind speed is almost Normal distribution, and most of the points are concentrated in the wind speed range of (3&#x2013;8) m/s. The points outside this range have a high probability of being abnormal data. For example, the data distributed around the wind speed of 0 m/s are called wind speed abnormal points, which have the characteristics of wind speed (cut in wind speed, power&#x3e;0). Most of the power data are distributed at 0 and do not show Normal distribution, which also indicates that the power data collected by the SCADA system contains more abnormal data. The fan speed is mainly concentrated between 8 and 15, and we can speculate that there is a high possibility of abnormal data in fan speeds outside this range (see attached materials for statistics on power and fan speed).</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Wind speed statistics for 9 units.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g004.tif"/>
</fig>
<p>It was discovered that each of the nine units had varying degrees of aberrant data through the visual inspection of the aforementioned individual factors. Therefore, in this paper, using Unit 1 as an example, the three-dimensional scatter plots of wind speed (<italic>x</italic>-axis), power (<italic>y</italic>-axis), and fan speed (<italic>z</italic>-axis) of Unit 1 are plotted. Results as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. This is because it is necessary to analyze the combination of these three groups of characteristic variables in order to further analyze the causes of the abnormal data distribution.</p>
<p>The distinctive scatter plots can be loosely categorized into three groups, as can be seen in the image. The first category (in the yellow dashed box) is the anomalous data piled up at the bottom, which typically appears due to a communication or abandoned wind power limit anomaly; The reason for the appearance of discrete anomalies is typically Extreme weather, sensor failure, or signal propagation noise; the third category (in the orange dashed box) has a small amount of data scattered at the top, similar to the second category.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Unit 1 3D scatter diagram.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g005.tif"/>
</fig>
</sec>
<sec id="s4-1-2">
<title>4.1.2 Abnormal data cleaning and ablationexperiments</title>
<p>The anomalous data should be removed because, based on the previous description and the analysis of the actual wind power plant power, wind speed, and wind turbine speed, they are not uniformly distributed in range and have a tendency to pile up at the bottom and show dispersion in the middle and top. This makes it difficult for a neural network to use timing logic to predict future wind power.</p>
<p>The ideal number of clusters is first determined using the Elbow approach. The degree of aberration is the squared distance error sum of the prime and sample points within each cluster, which is calculated using k-means to minimize the squared sample and prime error as the objective function. So, given a cluster, the tighter the cluster members are, the lower the degree of aberration, and the looser the cluster structure is, the greater the degree of aberration. The degree of aberration decreases as the category size increases, but for data with a certain level of differentiation, the degree of aberration improves significantly when a particular critical point is reached, then gradually declines <xref ref-type="bibr" rid="B15">Liu and Deng (2021)</xref>. This critical point can be thought of as the point where clustering performance is best. Still using Unit 1 as an example, the <xref ref-type="fig" rid="F6">Figure 6</xref> shows the curve of Elbow method for Unit 1.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Unit 1Elbow method curve.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g006.tif"/>
</fig>
<p>From the graph, it can be seen that the curve starts to smooth out at k &#x3d; 2, and the distortion of the curve is greatly improved at k &#x3d; 2.5. However, since k can only be obtained as an integer, k &#x3d; 2 is chosen as the clustering number in this paper. The left half of <xref ref-type="fig" rid="F7">Figure 7</xref> shows the classified data. It can be seen that after clustering processing, the original windspeed-windpower-rotorspeed scatter plot is divided into two parts, one part (red) is stacked data, and the other side (yellow) is discrete data. According to the literature, K-means algorithm can handle data with high density, so this paper uses K-means to clean the above part of the data. Although DBSCAN algorithm is not effective in identifying stacked abnormal data, it does not need to set K value in advance and can improve cleaning efficiency. Therefore, DBSCAN is chosen in this paper to process the yellow abnormal data in the figure. In addition, set epsilon &#x3d; 3 and minpts &#x3d; 4 in DBSCAN. The right half of <xref ref-type="fig" rid="F7">Figure 7</xref> shows the 3D scatter diagram of 9 units after K-means and DBSCAN processing.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Comparison before and after data cleaning.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g007.tif"/>
</fig>
<p>From the figure, it can be clearly seen that the K-means algorithm effectively eliminates the abnormal data accumulated in the power of 0, and also effectively deals with the discrete points of the red scatter points. For the yellow scattered points, because most of them are in the normal range, the cleaning effect is not obvious, but the problem of mistakenly deleting normal data is also avoided.</p>
<p>It is suggested that the error of the cleaning result and the standard power curve (Eq. <xref ref-type="disp-formula" rid="e26">26</xref>), and the deletion rate (Eq. <xref ref-type="disp-formula" rid="e27">27</xref>), the cleaning time (t) be used as the judging cleaning indexes to test the efficacy of the method in this study. The DBSCAN algorithm is designated as M1, K-means method as M2, and the algorithm in this paper as M3, and the outcomes are displayed in <xref ref-type="table" rid="T1">Table 1</xref>.<disp-formula id="e26">
<mml:math id="m49">
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(26)</label>
</disp-formula>where <italic>AAD</italic>
<sub>
<italic>i</italic>
</sub> is the mean absolute error and root mean square error for the <italic>ith</italic> wind speed interval; <italic>N</italic>
<sub>
<italic>i</italic>
</sub> is the amount of data in the <italic>ith</italic> interval; <italic>P</italic>
<sub>
<italic>i</italic>
</sub> is the value of the standard power curve in the <italic>ith</italic> interval; and <italic>P</italic>
<sub>
<italic>i</italic>,<italic>j</italic>
</sub> is the <italic>ith</italic> power data in the <italic>ith</italic> interval.<disp-formula id="e27">
<mml:math id="m50">
<mml:mi>D</mml:mi>
<mml:mi>%</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
<mml:mi>%</mml:mi>
</mml:math>
<label>(27)</label>
</disp-formula>where, <italic>L</italic>
<sub>0</sub> is the data volume of the original data set; <italic>L</italic>
<sub>1</sub> is the data volume of the remaining data set after removing the abnormal data using the data cleaning method.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Comparison of data before and after cleaning by KD algorithm.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Windnumber</th>
<th align="center">Algorithm</th>
<th align="center">ADD</th>
<th align="center">D/%</th>
<th align="center">t/s</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="3" align="center">1</td>
<td align="center">M1</td>
<td align="center">0.6823</td>
<td align="center">37.64</td>
<td align="center">0.36</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.2231</td>
<td align="center">47.21</td>
<td align="center">2.74</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.1764</td>
<td align="center">33.67</td>
<td align="center">2.54</td>
</tr>
<tr>
<td rowspan="3" align="center">2</td>
<td align="center">M1</td>
<td align="center">0.7201</td>
<td align="center">36.64</td>
<td align="center">0.31</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.3065</td>
<td align="center">40.23</td>
<td align="center">2.65</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.2023</td>
<td align="center">32.14</td>
<td align="center">2.36</td>
</tr>
<tr>
<td rowspan="3" align="center">3</td>
<td align="center">M1</td>
<td align="center">0.5421</td>
<td align="center">35.30</td>
<td align="center">0.65</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.2652</td>
<td align="center">36.72</td>
<td align="center">2.74</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.0963</td>
<td align="center">32.94</td>
<td align="center">2.03</td>
</tr>
<tr>
<td rowspan="3" align="center">4</td>
<td align="center">M1</td>
<td align="center">0.6452</td>
<td align="center">36.64</td>
<td align="center">0.31</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.2036</td>
<td align="center">40.23</td>
<td align="center">2.65</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.0998</td>
<td align="center">32.14</td>
<td align="center">2.36</td>
</tr>
<tr>
<td rowspan="3" align="center">5</td>
<td align="center">M1</td>
<td align="center">0.6564</td>
<td align="center">37.65</td>
<td align="center">0.76</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.1980</td>
<td align="center">48.95</td>
<td align="center">3.39</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.1513</td>
<td align="center">33.68</td>
<td align="center">2.39</td>
</tr>
<tr>
<td rowspan="3" align="center">6</td>
<td align="center">M1</td>
<td align="center">0.7654</td>
<td align="center">36.94</td>
<td align="center">0.47</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.3237</td>
<td align="center">39.65</td>
<td align="center">2.39</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.2247</td>
<td align="center">29.74</td>
<td align="center">1.97</td>
</tr>
<tr>
<td rowspan="3" align="center">7</td>
<td align="center">M1</td>
<td align="center">0.7122</td>
<td align="center">35.33</td>
<td align="center">0.34</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.3039</td>
<td align="center">41.06</td>
<td align="center">2.10</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.1905</td>
<td align="center">28.84</td>
<td align="center">2.03</td>
</tr>
<tr>
<td rowspan="3" align="center">8</td>
<td align="center">M1</td>
<td align="center">0.7640</td>
<td align="center">35.23</td>
<td align="center">0.35</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.3012</td>
<td align="center">41.09</td>
<td align="center">1.89</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.2239</td>
<td align="center">33.19</td>
<td align="center">1.76</td>
</tr>
<tr>
<td rowspan="3" align="center">9</td>
<td align="center">M1</td>
<td align="center">0.5631</td>
<td align="center">37.56</td>
<td align="center">0.33</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">0.3037</td>
<td align="center">48.56</td>
<td align="center">2.56</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">0.2144</td>
<td align="center">30.69</td>
<td align="center">2.29</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The cleaning time is the quickest when only the DBSCAN method is used to clean the data, as its time complexity is typically less than O(<italic>N</italic>
<sup>2</sup>), according to the data in the table. However, the deletion rate of this method is higher because the algorithm relies on the problem of incorrect identification of dense data with the setting of parameters as mentioned above in this paper, and the range of the threshold value can only be set smaller in order to obtain better cleaning effect of abnormal data, which in turn leads to more normal data being deleted by mistake.</p>
<p>Due to the mistaken deletion of normal data, the error between M1 cleaning results and the standard power curve is the largest among the three algorithms, Therefore, it is not feasible to use DBSCAN alone to handle different units in different regions on a large scale. Similar to the K-means method, which takes the longest to clean up and has a higher error, it has the issue of deleting a lot of data. The method used in this study has the lowest deletion rate and smallest inaccuracy of the three, demonstrating that classifying the original data and removing data from each class can optimize each algorithm&#x2019;s benefits and more precisely identify the abnormal data.</p>
<p>In a comprehensive view, although the algorithm in this paper has the problem of insufficient recognition rejection efficiency, it has the lowest deletion rate under the same conditions, the least damage to the data integrity of the units, the smallest error between the cleaned results and the standard power curve, the most concentrated near the standard power curve, and high generality for different units.</p>
</sec>
</sec>
<sec id="s4-2">
<title>4.2 Power prediction</title>
<p>The nine units cleaned from the prior data are input to the network to test the generalizability of the neural network model LSO-G-LSTM developed in this study, and the predicted power is output after parameter training to identify the best parameters.</p>
<p>First, set the parameters of each model. The total number of lions <italic>N</italic> &#x3d; 20, the maximum number of iterations <italic>T</italic>
<sub>
<italic>max</italic>
</sub> &#x3d; 100, and the number of adult lions <italic>&#x3b2;</italic> &#x3d; 0.5 were set in LSO. Secondly, the initial learning rate of LSTM, LSO-LSTM and LSO-G-LSTM was set as 0.01, inputsize as 2-dimensional, hiddensize &#x3d; 4,batchsize &#x3d; 128; The initial values of LSO-G-LSTM network parameters <italic>&#x3bb;</italic>, <italic>&#x3c9;</italic> and <italic>&#x3b3;</italic> are all 0. Finally, take the number 1 as an example to illustrate the variable parameters of the input model. Let this input be <italic>x</italic>
<sub>1<italic>t</italic>
</sub>, according to the meteorological and unit characteristics analyzed above, only the wind speed and fan speed are selected as the input to the model, so the corresponding input variable matrix is <inline-formula id="inf24">
<mml:math id="m51">
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, and other units use the same method as the model input, where the number (1) and (2) in the upper right corner represent the wind speed and fan speed respectively. And ensure that multiple groups of experimental environment under the same condition.</p>
<p>Because the predicted wind power sequence in this paper is short-term, it will not last longer than 3 days. The sampling interval for each of the nine units is 10 min, and the predicted sample points for the predicted power for the upcoming 12 and 24 h are 72 and 144, respectively. <xref ref-type="fig" rid="F8">Figure 8</xref> displays the wind power forecast results for the upcoming 12 h for each of the nine units.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Power prediction curve of 9 units for the next 12 h.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g008.tif"/>
</fig>
<p>Only a few data points from the nine sets of power estimates for the upcoming 12 h show that the LSTM neural network makes accurate predictions. This may be caused by the corruption of the time series of the original data after data cleaning, which also illustrates the shortcomings of LSTM in handling such data; Apart from samples 2, 6, 7, and 8, which are relatively close, there are large deviations from the initial data when predicting other units, and the phenomenon of overfitting appears at a later stage, which may be caused by the LSO algorithm entering a local optimum when training the LSTM parameters; The LSTM has significantly improved in terms of prediction accuracy after LSO optimization, and the prediction trend is roughly the same as the actual power; In this study, the model is able to concentrate on the impact of features on power after the addition of the GCT attention mechanism for LSTM. Additionally, after LSO training on three sets of GCT parameters, the prediction accuracy is significantly increased, and the curve fit is optimal, with deviation occurring only after about 50 samples. This study evaluates the prediction accuracy of several models using mean absolute percentage error (MAPE) and root mean square error (RMSE), which are defined as Equations <xref ref-type="disp-formula" rid="e28">(28)</xref>&#x2013;<xref ref-type="disp-formula" rid="e29">(29)</xref>, and the findings are displayed in <xref ref-type="table" rid="T2">Table 2</xref>. The more accurate the model prediction, the lower the value of MAPE and RMSE.<disp-formula id="e28">
<mml:math id="m52">
<mml:mi>M</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
<mml:mi>%</mml:mi>
</mml:math>
<label>(28)</label>
</disp-formula>
<disp-formula id="e29">
<mml:math id="m53">
<mml:mi>R</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:math>
<label>(29)</label>
</disp-formula>
</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Error table of power prediction for the next 12 h by 9 units.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Error</th>
<th align="center">Method</th>
<th align="center">1</th>
<th align="center">2</th>
<th align="center">3</th>
<th align="center">4</th>
<th align="center">5</th>
<th align="center">6</th>
<th align="center">7</th>
<th align="center">8</th>
<th align="center">9</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="6" align="center">MAPE/%</td>
<td align="center">L <xref ref-type="bibr" rid="B33">Yuan et al. (2019)</xref>
</td>
<td align="center">39.65</td>
<td align="center">38.22</td>
<td align="center">36.38</td>
<td align="center">35.37</td>
<td align="center">39.68</td>
<td align="center">38.20</td>
<td align="center">39.87</td>
<td align="center">38.23</td>
<td align="center">37.75</td>
</tr>
<tr>
<td align="center">xg-L <xref ref-type="bibr" rid="B34">Wisdom and Yar (2021)</xref>
</td>
<td align="center">28.56</td>
<td align="center">27.21</td>
<td align="center">28.69</td>
<td align="center">29.95</td>
<td align="center">20.15</td>
<td align="center">28.17</td>
<td align="center">26.47</td>
<td align="center">25.20</td>
<td align="center">29.65</td>
</tr>
<tr>
<td align="center">P-L <xref ref-type="bibr" rid="B35">Du et al. (2022)</xref>
</td>
<td align="center">31.23</td>
<td align="center">32.79</td>
<td align="center">33.10</td>
<td align="center">34.65</td>
<td align="center">30.58</td>
<td align="center">29.15</td>
<td align="center">28.46</td>
<td align="center">29.99</td>
<td align="center">31.78</td>
</tr>
<tr>
<td align="center">A-L <xref ref-type="bibr" rid="B36">Wu and Gao (2023)</xref>
</td>
<td align="center">22.14</td>
<td align="center">23.51</td>
<td align="center">25.02</td>
<td align="center">22.65</td>
<td align="center">24.86</td>
<td align="center">23.05</td>
<td align="center">22.73</td>
<td align="center">21.06</td>
<td align="center">24.38</td>
</tr>
<tr>
<td align="center">L-L <xref ref-type="bibr" rid="B37">Hamed et al. (2022)</xref>
</td>
<td align="center">19.46</td>
<td align="center">18.22</td>
<td align="center">17.41</td>
<td align="center">21.06</td>
<td align="center">22.65</td>
<td align="center">20.03</td>
<td align="center">20.45</td>
<td align="center">18.77</td>
<td align="center">19.41</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">15.32</td>
<td align="center">16.38</td>
<td align="center">12.44</td>
<td align="center">12.64</td>
<td align="center">11.08</td>
<td align="center">10.36</td>
<td align="center">9.156</td>
<td align="center">9.963</td>
<td align="center">10.25</td>
</tr>
<tr>
<td rowspan="6" align="center">RMSE/MW</td>
<td align="center">L <xref ref-type="bibr" rid="B33">Yuan et al. (2019)</xref>
</td>
<td align="center">2.032</td>
<td align="center">2.217</td>
<td align="center">2.254</td>
<td align="center">2.014</td>
<td align="center">2.112</td>
<td align="center">2.564</td>
<td align="center">2.236</td>
<td align="center">2.234</td>
<td align="center">2.446</td>
</tr>
<tr>
<td align="center">xg-L <xref ref-type="bibr" rid="B34">Wisdom and Yar (2021)</xref>
</td>
<td align="center">1.985</td>
<td align="center">1.996</td>
<td align="center">1.211</td>
<td align="center">1.345</td>
<td align="center">1.579</td>
<td align="center">1.665</td>
<td align="center">1.547</td>
<td align="center">1.358</td>
<td align="center">1.697</td>
</tr>
<tr>
<td align="center">P-L <xref ref-type="bibr" rid="B35">Du et al. (2022)</xref>
</td>
<td align="center">1.563</td>
<td align="center">1.425</td>
<td align="center">1.658</td>
<td align="center">1.788</td>
<td align="center">1.896</td>
<td align="center">1.975</td>
<td align="center">1.674</td>
<td align="center">1.801</td>
<td align="center">1.944</td>
</tr>
<tr>
<td align="center">At-L <xref ref-type="bibr" rid="B36">Wu and Gao (2023)</xref>
</td>
<td align="center">1.564</td>
<td align="center">1.544</td>
<td align="center">1.531</td>
<td align="center">1.203</td>
<td align="center">1.336</td>
<td align="center">1.437</td>
<td align="center">1.487</td>
<td align="center">1.883</td>
<td align="center">1.873</td>
</tr>
<tr>
<td align="center">L-L <xref ref-type="bibr" rid="B37">Hamed et al. (2022)</xref>
</td>
<td align="center">1.204</td>
<td align="center">1.345</td>
<td align="center">1.437</td>
<td align="center">1.230</td>
<td align="center">1.236</td>
<td align="center">1.744</td>
<td align="center">1.223</td>
<td align="center">1.478</td>
<td align="center">1.654</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1.113</td>
<td align="center">1.203</td>
<td align="center">1.236</td>
<td align="center">1.028</td>
<td align="center">1.139</td>
<td align="center">1.447</td>
<td align="center">1.136</td>
<td align="center">1.248</td>
<td align="center">1.546</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn1">
<label>
<sup>a</sup>
</label>
<p>L &#x3d; LSTM; xg-L &#x3d; xgBoost-LSTM; P-L &#x3d; PSO-LSTM; At-L &#x3d; Adaboost-LSTM; L-L &#x3d; LSO-LSTM; LG-L &#x3d; LSO-G-LSTM.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>When estimating the wind power for the following 12 h, it can be noted that the MAPE and RMSE of the suggested models in this research are the smallest when compared to other models. Error (MAPE) of the nine units ranges from 9.156% to 16.38% and the root mean square error (RMSE) ranges from 1.028 MW to 1.546 MW. Taking the first unit as an example, compared with LSTM, xgBoost-LSTM, PSO-LSTM, Adaboost-LSTM and LSO-LSTM, MAPE increased by 61.36%, 46.36%, 50.94%, 30.80% and 21.27% respectively. RMSE increased by 45.23%, 43.93%, 28.79%, 28.83% and 7.558%, respectively. This demonstrates the LSO-G-LSTM model&#x2019;s capacity to process vast amounts of data from numerous units in various regions and its ability to predict the power after 12 h more correctly and steadily. Additionally, <xref ref-type="fig" rid="F9">Figure 9</xref> displays each model&#x2019;s prediction curves for the power of 144 data points throughout the course of the following day.</p>
<p>On the other hand, the LSO-LSTM model, which performs well in the 12-h prediction, shows a decline in the performance of the 24-h prediction and frequently fails to fit the power accurately. The model in this paper performs well in the 12-h prediction, but there are large deviations in the prediction of units 3 and 6, possibly due to the increase in step length and more data points. The models&#x2019; prediction errors are displayed in <xref ref-type="table" rid="T3">Table 3</xref>.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Power prediction curve of 9 units for the next 24 h.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g009.tif"/>
</fig>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Error table of power prediction for the next 24 h by 9 units.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Error</th>
<th align="center">Method</th>
<th align="center">1</th>
<th align="center">2</th>
<th align="center">3</th>
<th align="center">4</th>
<th align="center">5</th>
<th align="center">6</th>
<th align="center">7</th>
<th align="center">8</th>
<th align="center">9</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="6" align="center">MAPE/%</td>
<td align="center">L <xref ref-type="bibr" rid="B33">Yuan et al. (2019)</xref>
</td>
<td align="center">40.85</td>
<td align="center">40.42</td>
<td align="center">38.58</td>
<td align="center">37.57</td>
<td align="center">41.88</td>
<td align="center">40.40</td>
<td align="center">42.07</td>
<td align="center">40.43</td>
<td align="center">39.95</td>
</tr>
<tr>
<td align="center">xg-L <xref ref-type="bibr" rid="B34">Wisdom and Yar (2021)</xref>
</td>
<td align="center">29.76</td>
<td align="center">29.41</td>
<td align="center">30.89</td>
<td align="center">32.15</td>
<td align="center">22.35</td>
<td align="center">30.37</td>
<td align="center">28.67</td>
<td align="center">27.40</td>
<td align="center">31.85</td>
</tr>
<tr>
<td align="center">P-L <xref ref-type="bibr" rid="B35">Du et al. (2022)</xref>
</td>
<td align="center">32.43</td>
<td align="center">34.99</td>
<td align="center">35.30</td>
<td align="center">36.85</td>
<td align="center">32.78</td>
<td align="center">31.35</td>
<td align="center">30.66</td>
<td align="center">32.19</td>
<td align="center">33.98</td>
</tr>
<tr>
<td align="center">A-L <xref ref-type="bibr" rid="B36">Wu and Gao (2023)</xref>
</td>
<td align="center">23.34</td>
<td align="center">25.71</td>
<td align="center">27.22</td>
<td align="center">24.85</td>
<td align="center">27.06</td>
<td align="center">25.25</td>
<td align="center">24.93</td>
<td align="center">23.26</td>
<td align="center">26.58</td>
</tr>
<tr>
<td align="center">L-L <xref ref-type="bibr" rid="B37">Hamed et al. (2022)</xref>
</td>
<td align="center">20.66</td>
<td align="center">20.42</td>
<td align="center">19.61</td>
<td align="center">23.26</td>
<td align="center">24.85</td>
<td align="center">22.23</td>
<td align="center">22.65</td>
<td align="center">20.97</td>
<td align="center">21.61</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">16.52</td>
<td align="center">18.58</td>
<td align="center">14.64</td>
<td align="center">14.84</td>
<td align="center">13.28</td>
<td align="center">12.56</td>
<td align="center">11.36</td>
<td align="center">12.16</td>
<td align="center">12.45</td>
</tr>
<tr>
<td rowspan="6" align="center">RMSE/MW</td>
<td align="center">L <xref ref-type="bibr" rid="B33">Yuan et al. (2019)</xref>
</td>
<td align="center">3.069</td>
<td align="center">3.254</td>
<td align="center">3.291</td>
<td align="center">3.051</td>
<td align="center">3.149</td>
<td align="center">3.601</td>
<td align="center">3.273</td>
<td align="center">3.271</td>
<td align="center">3.483</td>
</tr>
<tr>
<td align="center">xg-L <xref ref-type="bibr" rid="B34">Wisdom and Yar (2021)</xref>
</td>
<td align="center">3.022</td>
<td align="center">3.033</td>
<td align="center">2.248</td>
<td align="center">2.382</td>
<td align="center">2.616</td>
<td align="center">2.702</td>
<td align="center">2.584</td>
<td align="center">2.395</td>
<td align="center">2.734</td>
</tr>
<tr>
<td align="center">P-L <xref ref-type="bibr" rid="B35">Du et al. (2022)</xref>
</td>
<td align="center">2.600</td>
<td align="center">2.462</td>
<td align="center">2.695</td>
<td align="center">2.825</td>
<td align="center">2.933</td>
<td align="center">3.012</td>
<td align="center">2.711</td>
<td align="center">2.838</td>
<td align="center">2.981</td>
</tr>
<tr>
<td align="center">At-L <xref ref-type="bibr" rid="B36">Wu and Gao (2023)</xref>
</td>
<td align="center">2.601</td>
<td align="center">2.581</td>
<td align="center">2.568</td>
<td align="center">2.240</td>
<td align="center">2.373</td>
<td align="center">2.474</td>
<td align="center">2.524</td>
<td align="center">2.920</td>
<td align="center">2.914</td>
</tr>
<tr>
<td align="center">L-L <xref ref-type="bibr" rid="B37">Hamed et al. (2022)</xref>
</td>
<td align="center">2.241</td>
<td align="center">2.382</td>
<td align="center">2.474</td>
<td align="center">2.267</td>
<td align="center">2.273</td>
<td align="center">2.781</td>
<td align="center">2.264</td>
<td align="center">2.515</td>
<td align="center">2.691</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">2.151</td>
<td align="center">2.242</td>
<td align="center">2.273</td>
<td align="center">2.065</td>
<td align="center">2.176</td>
<td align="center">2.484</td>
<td align="center">2.173</td>
<td align="center">2.285</td>
<td align="center">2.583</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn2">
<label>
<sup>a</sup>
</label>
<p>L &#x3d; LSTM; xg-L &#x3d; xgBoost-LSTM; P-L &#x3d; PSO-LSTM; At-L &#x3d; Adaboost-LSTM; L-L &#x3d; LSO-LSTM; LG-L &#x3d; LSO-G-LSTM.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>According to the curves in the figure and the error statistics in the table, all models&#x2019; accuracy when performing multi-step prediction declines to varying degrees, but the error of the model developed in this research is still the smallest. It can be demonstrated that the LSTM is greatly enhanced by the addition of the GCT attention mechanism and is better suited for use as a model for short-term wind power prediction.</p>
<p>In addition, we should not ignore the influence of model output parameters on the prediction results. First of all, for the situation reflected by LSTM in the figure, we know that the model has an underfitting. Taking Group 1 as an example, the LSTM model is trained by calling the fit () function. This function returns a variable named. history, which contains loss and accuracy during model compilation. This information is displayed at the end of each epoch training session. For 12 h prediction, the total amount of data needed to be trained for each group of models is 9928, batchsize &#x3d; 128, so the batch required for training is &#x3d; 9928/16 &#x3d; 621 (rounded up), and the hidden layer is defined as [LSTM:2&#xd7; the number of layers by default 1, batchsize, each unit contains hidden units]. And output, (<italic>h</italic>
<sub>
<italic>n</italic>
</sub>, <italic>c</italic>
<sub>
<italic>n</italic>
</sub>), where output:LSTM output of the last hidden state, <italic>hn</italic>: the hidden state result of the last timestep, <italic>cn</italic>: the cell unit result of the last timestep. <xref ref-type="table" rid="T4">Table 4</xref> shows the loss value and accuracy of training set parameters during 12 h short-term power prediction for 9 units.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>LSTM model training set parameters.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Windnumber</th>
<th align="center">Method</th>
<th align="center">Epoch</th>
<th align="center">Loss</th>
<th align="center">Accuracy</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="3" align="center">1</td>
<td align="center">L <xref ref-type="bibr" rid="B33">Yuan et al. (2019)</xref>
</td>
<td align="center">780</td>
<td align="center">0.7234</td>
<td align="center">0.6198</td>
</tr>
<tr>
<td align="center">L-L <xref ref-type="bibr" rid="B37">Hamed et al. (2022)</xref>
</td>
<td align="center">1800</td>
<td align="center">0.1498</td>
<td align="center">0.8124</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1265</td>
<td align="center">0.2627</td>
<td align="center">0.9533</td>
</tr>
<tr>
<td rowspan="3" align="center">2</td>
<td align="center">L</td>
<td align="center">615</td>
<td align="center">0.7753</td>
<td align="center">0.5985</td>
</tr>
<tr>
<td align="center">L-L</td>
<td align="center">1800</td>
<td align="center">0.157</td>
<td align="center">0.7451</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1147</td>
<td align="center">0.2753</td>
<td align="center">0.8867</td>
</tr>
<tr>
<td rowspan="3" align="center">3</td>
<td align="center">L</td>
<td align="center">746</td>
<td align="center">0.7456</td>
<td align="center">0.6074</td>
</tr>
<tr>
<td align="center">L-L</td>
<td align="center">1800</td>
<td align="center">0.1074</td>
<td align="center">0.8046</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1327</td>
<td align="center">0.2936</td>
<td align="center">0.9137</td>
</tr>
<tr>
<td rowspan="3" align="center">4</td>
<td align="center">L</td>
<td align="center">802</td>
<td align="center">0.7007</td>
<td align="center">0.6454</td>
</tr>
<tr>
<td align="center">L-L</td>
<td align="center">1800</td>
<td align="center">0.1742</td>
<td align="center">0.7984</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1204</td>
<td align="center">0.2056</td>
<td align="center">0.8967</td>
</tr>
<tr>
<td rowspan="3" align="center">5</td>
<td align="center">L</td>
<td align="center">807</td>
<td align="center">0.7724</td>
<td align="center">0.6873</td>
</tr>
<tr>
<td align="center">L-L</td>
<td align="center">1800</td>
<td align="center">0.1985</td>
<td align="center">0.8543</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1264</td>
<td align="center">0.2438</td>
<td align="center">0.9072</td>
</tr>
<tr>
<td rowspan="3" align="center">6</td>
<td align="center">L</td>
<td align="center">743</td>
<td align="center">0.7521</td>
<td align="center">0.6558</td>
</tr>
<tr>
<td align="center">L-L</td>
<td align="center">1800</td>
<td align="center">0.1612</td>
<td align="center">0.8072</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1024</td>
<td align="center">0.2918</td>
<td align="center">0.975</td>
</tr>
<tr>
<td rowspan="3" align="center">7</td>
<td align="center">L</td>
<td align="center">784</td>
<td align="center">0.7753</td>
<td align="center">0.6887</td>
</tr>
<tr>
<td align="center">L-L</td>
<td align="center">1800</td>
<td align="center">0.1107</td>
<td align="center">0.8375</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1210</td>
<td align="center">0.2711</td>
<td align="center">0.8894</td>
</tr>
<tr>
<td rowspan="3" align="center">8</td>
<td align="center">L</td>
<td align="center">869</td>
<td align="center">0.7654</td>
<td align="center">0.6194</td>
</tr>
<tr>
<td align="center">L-L</td>
<td align="center">1800</td>
<td align="center">0.1375</td>
<td align="center">0.8643</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">1042</td>
<td align="center">0.2724</td>
<td align="center">0.9459</td>
</tr>
<tr>
<td rowspan="3" align="center">9</td>
<td align="center">L</td>
<td align="center">843</td>
<td align="center">0.7345</td>
<td align="center">0.6208</td>
</tr>
<tr>
<td align="center">L-L</td>
<td align="center">1800</td>
<td align="center">0.1724</td>
<td align="center">0.8647</td>
</tr>
<tr>
<td align="center">LG-L</td>
<td align="center">947</td>
<td align="center">0.2185</td>
<td align="center">0.9466</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="Tfn3">
<label>
<sup>a</sup>
</label>
<p>L &#x3d; LSTM; L-L &#x3d; LSO-LSTM; LG-L &#x3d; LSO-G-LSTM.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>According to <xref ref-type="table" rid="T4">Table 4</xref>, the epoch &#x3d; 780 obtained when the LSTM model stops training. At this time, loss780 &#x3d; 0.7234, accuracy780 &#x3d; 0.6198, the values of loss1-loss780 decrease monotonically, while the accuracy1-accuracy780 increases monotonically. This indicates that there is still room for loss to decrease while accuracy has room for improvement at the end of the separate LSTM training. After retraining, it is found that the epoch stops when loss943 &#x3d; 0.6751, accuracy943 &#x3d; 0.8845, and accuracy943 &#x3d; 0.8845. It is shown directly that the model falls into local optimality in the first training, and the model appears underfitting. For the LSO-LSTM model, after adding the LSO disturbance factors <italic>&#x3b1;</italic>
<sub>
<italic>f</italic>
</sub> and <italic>&#x3b1;</italic>
<sub>
<italic>c</italic>
</sub>, the model has not converged during training and the training will be stopped when the epoch &#x3d; 1800, when loss 1800 &#x3d; 0.1498 and accuracy 1800 &#x3d; 0.8124. However, when the epoch &#x3d; 1700, the accuracy 1800 &#x3d; 0.8124. loss1700 &#x3d; 0.2075, and accuracy1700 &#x3d; 0.8724. It can be seen that when the epoch is reduced, the accuracy of the training model will increase; however, when the epoch &#x3d; 1900 is continued, the loss and accuracy will decrease at the same time, indicating that the model is overfitting and it will be difficult for the model to converge. In most cases, the model can not fit the real value well, and the generalization ability is poor. With the epoch &#x3d; 1265, loss1265 &#x3d; 0.2627, and accuracy1265 &#x3d; 0.9533, accuracy1265 can be set with the epoch &#x3d; 1000 and 1100, and the loss will increase and the accuracy will decrease. With the epoch &#x3d; 1300 and 1400, the loss will no longer decrease. The value of accuracy does not change. Combined with the curve in the figure above and the error value in the table, it indicates that the model has converged and does not fall into the local optimal.</p>
<p>The input data for the aforementioned tests are all of the predictions after K-means and DBSCAN cleaning, and they serve merely to demonstrate the success of the LSTM model improvement shown in this research. This research examines the errors of each model without rejecting the identification of anomalous data using the 12 h anticipated power as an example, as shown in <xref ref-type="fig" rid="F10">Figure 10</xref> in order to demonstrate the significance of data pre-processing.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Prediction error in the next 12 h before Data cleansing.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g010.tif"/>
</fig>
<p>In addition, the errors of the model before and after data processing for the next 12 and 24 h are also compared, as shown in <xref ref-type="fig" rid="F11">Figure 11</xref>.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Error analysis of the model before and after data cleaning.</p>
</caption>
<graphic xlink:href="fenrg-11-1268494-g011.tif"/>
</fig>
<p>The error values are all increased to varying degrees, but the error increase of units 1, 2, 8 and 9 is larger, which also corroborates the hypothesis that the analysis of discrete abnormal data in <xref ref-type="fig" rid="F7">Figure 7</xref> has a greater impact on the prediction results. These results come from the prediction histogram of each model for the next 12 h without abnormal data detection and rejection. The errors of MAPE and RMSE predicted by LSTM for Unit 1 increased by 19.08% and 34.45%, respectively; those predicted by xgBoost-LSTM increased by 24.84% and 31.55%; those predicted by PSO-LSTM increased by 24.58% and 37.48%; those predicted by Adaboost-LSTM increased by 29.27% and 34.83%; those predicted by LSO-LSTM increased by 30.50% and 46.49%; and those predicted by the model in this These data also show how cleansing the raw wind power series is necessary for anomaly data analysis and identification.</p>
<p>Additionally, the figure supports the aforementioned conclusion. The red dash depicts the error indicators without data processing, whereas the blue dash shows the error indicators of each unit for the model&#x2019;s 12 and 24 h wind power predictions in this research. The blue dash is consistently smaller than the red line for the future 12-h power prediction, but for the future 24-h prediction, both error values rise and the blue and red curves converge due to the future wind power&#x2019;s instability and uncertainty as the prediction step increases. Nevertheless, when compared to other models and to itself both before and after cleaning the data, the KD-LSO-G-LSTM model suggested in this study produces the best prediction results.</p>
</sec>
</sec>
<sec sec-type="conclusion" id="s5">
<title>5 Conclusion</title>
<p>In order to improve the accuracy of wind power prediction, this study proposed a short-term wind power prediction model of KD-LSO-G-LSTM based on abnormal data detection and cleaning. In the manuscript, the stability and universality of the algorithm were discussed by taking wind turbines in different regions of China as examples. Firstly, in the data preprocessing part, K-means and DBSCAN algorithm are combined to detect and clean abnormal data to improve the stability of prediction. Secondly, by combining GCT attention mechanism module with LSTM input parameters, a new feature vector is constructed to ensure the optimal feature selection for prediction. Finally, the lion pride algorithm is used to optimize the model to avoid its parameters falling into local optimality in the training process, and also to ensure that underfitting and overfitting will not occur in the prediction, so as to improve the prediction accuracy. The proposed algorithm fills the gap in anomaly data cleaning and prediction accuracy. Three sets of experiments were conducted in this section.</p>
<p>The first set is an ablation experiment for KD abnormal data cleaning algorithm, aiming to evaluate the effectiveness of combining the two algorithms for data cleaning. The error, deletion rate and cleaning time of the cleaning data of 9 units are evaluated, and the result proves the superiority of KD algorithm in removing abnormal data. The second experiment evaluated the error of different algorithms in predicting the same wind power. Through the prediction results of 12 and 24 h in the future, it can be seen that the accuracy and stability of the proposed algorithm in predicting the power of more units are the least error among all models. The third set of experiments verified the prediction errors of different models before and after data cleaning, aiming to show the necessity of abnormal data cleaning. The results also showed that the errors of the models with abnormal data processing were smaller than those without processing.</p>
<p>Combined with the results of the above three groups of experiments, the effectiveness and universality of KD-LSO-G-LSTM in short-term power prediction can be obtained. However, due to the elimination of the original data in this paper, the original time series is damaged, which makes the efficiency of such time-serial-dependent prediction models as LSTM decrease. In future work, we will consider adding some series reconstruction methods to improve its prediction efficiency. In addition, China has a vast territory and a large population, which has high requirements for the stability and safety of electricity consumption, and its dependence on this kind of new energy is increasing year by year. Therefore, the forecast results of only three regions cannot prove whether the study is equally applicable in other regions of China. Future prospects for this study therefore include evaluating the proposed method on larger data sets and over more areas to confirm the superiority of the proposed method for short-term wind power prediction.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<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">
<title>Author contributions</title>
<p>WX: Funding acquisition, Writing&#x2013;review and editing. ZS: Writing&#x2013;original draft. XF: Supervision, Writing&#x2013;review and editing. YL: Writing&#x2013;review and editing.</p>
</sec>
<sec id="s8">
<title>Funding</title>
<p>The authors declare financial support was received for the research, authorship, and/or publication of this article. This research was funded by: National Natural Science Foundation of China (U1802271), Research on Digital Protection and Heritage of Brown Culture in the Context of Sustainable Development&#x201d; (2023YNMW010) of Yunnan Provincial People&#x2019;s Committee.</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<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 sec-type="disclaimer" id="s10">
<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>
<sec id="s11">
<title>Supplementary material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fenrg.2023.1268494/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fenrg.2023.1268494/full&#x23;supplementary-material</ext-link>
</p>
<supplementary-material xlink:href="Table1.DOCX" id="SM1" mimetype="application/DOCX" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<supplementary-material xlink:href="Table2.DOCX" id="SM2" mimetype="application/DOCX" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chandel</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Murthy</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Ramasamy</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2014a</year>). <article-title>Wind resource assessment for decentralised power generation: case study of a complex hilly terrain in western himalayan region</article-title>. <source>Sustain. Energy Technol. Assessments</source> <volume>8</volume>, <fpage>18</fpage>&#x2013;<lpage>33</lpage>. <pub-id pub-id-type="doi">10.1016/j.seta.2014.06.005</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chandel</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ramasamy</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Murthy</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2014b</year>). <article-title>Wind power potential assessment of 12 locations in western himalayan region of India</article-title>. <source>Renew. Sustain. Energy Rev.</source> <volume>39</volume>, <fpage>530</fpage>&#x2013;<lpage>545</lpage>. <pub-id pub-id-type="doi">10.1016/j.rser.2014.07.050</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2022</year>). &#x201c;<article-title>Overview of the development of offshore wind power generation in China</article-title>,&#x201d; in <source>Sustainable energy technologies and assessments</source>.</citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Diaconita</surname>
<given-names>A. I.</given-names>
</name>
<name>
<surname>Andrei</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Rusu</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2022</year>). &#x201c;<article-title>An overview of the offshore wind energy potential for twelve significant geographical locations across the globe</article-title>,&#x201d; in <source>Selected papers from 2022 7th international conference on advances on clean energy research</source> (<publisher-name>Energy Reports</publisher-name>), <volume>8</volume>, <fpage>194</fpage>&#x2013;<lpage>201</lpage>.</citation>
</ref>
<ref id="B5">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Ding</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2022</year>). <source>A short-term wind power prediction model based on ceemd and woa-kelm</source>. <publisher-name>Renewable Energy</publisher-name>.</citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Du</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Interval forecasting for urban water demand using PSO optimized KDE distribution and LSTM neural networks</article-title>. <source>Applied Soft Computing</source> <volume>122</volume>, <fpage>108875</fpage>&#x2013;<lpage>545</lpage>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gonz&#xe1;lez-Sope&#xf1;a</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Pakrashi</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Ghosh</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>An overview of performance evaluation metrics for short-term statistical wind power forecasting</article-title>. <source>Renew. Sustain. Energy Rev.</source> <volume>138</volume>, <fpage>110515</fpage>. <pub-id pub-id-type="doi">10.1016/j.rser.2020.110515</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Greff</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Srivastava</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Koutn&#xed;k</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Steunebrink</surname>
<given-names>B. R.</given-names>
</name>
<name>
<surname>Schmidhuber</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Lstm: a search space odyssey</article-title>. <source>IEEE Trans. Neural Netw. Learn. Syst.</source> <volume>28</volume>, <fpage>2222</fpage>&#x2013;<lpage>2232</lpage>. <pub-id pub-id-type="doi">10.1109/tnnls.2016.2582924</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hahsler</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Piekenbrock</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Doran</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>dbscan: fast density-based clustering with r</article-title>. <source>J. Stat. Softw.</source> <volume>91</volume>. <pub-id pub-id-type="doi">10.18637/jss.v091.i01</pub-id>
</citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hamed</surname>
<given-names>K. M.</given-names>
</name>
<name>
<surname>Soleimanian</surname>
<given-names>G. F.</given-names>
</name>
<name>
<surname>Kambiz</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Amin Babazadeh</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A New Hybrid Based on Long Short-Term Memory Network with Spotted Hyena Optimization Algorithm for Multi-Label Text Classification</article-title>. <source>Mathematics</source> <volume>10</volume> (<issue>3</issue>), <fpage>488</fpage>. <pub-id pub-id-type="doi">10.3390/math10030488</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hui</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Rong</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Songkai</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Ultra-short-term prediction of wind power based on fuzzy clustering and rbf neural network</article-title>. <source>Adv. Fuzzy Syst.</source> <volume>2018</volume>, <fpage>9805748:1</fpage>&#x2013;<lpage>7</lpage>. <pub-id pub-id-type="doi">10.1155/2018/9805748</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Jin</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>K-means clustering</article-title>,&#x201d; in <source>Learn data mining through excel</source>.</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Krishna</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Mishra</surname>
<given-names>S. P.</given-names>
</name>
<name>
<surname>Naik</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Dash</surname>
<given-names>P. K.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Adaptive vmd based optimized deep learning mixed kernel elm autoencoder for single and multistep wind power forecasting</article-title>. <source>Energy</source>.</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lee</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>M. S.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>J. S.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Recovery of inter-detector and inter-crystal scattering in brain pet based on lso and gagg crystals</article-title>. <source>Phys. Med. Biol.</source> <volume>65</volume>, <fpage>195005</fpage>. <pub-id pub-id-type="doi">10.1088/1361-6560/ab9f5c</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2022</year>). &#x201c;<article-title>Short-term wind power prediction via spatial temporal analysis and deep residual networks</article-title>,&#x201d; in <source>Frontiers in energy research</source>, <fpage>10</fpage>.</citation>
</ref>
<ref id="B14">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Xiao</surname>
<given-names>Z.-N.</given-names>
</name>
<name>
<surname>An</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2022</year>). &#x201c;<article-title>A wind power prediction method based on de-bp neural network</article-title>,&#x201d; in <source>Frontiers in energy research</source>, <fpage>10</fpage>.</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Determine the number of unknown targets in open world based on elbow method</article-title>. <source>IEEE Trans. Fuzzy Syst.</source> <volume>29</volume>, <fpage>986</fpage>&#x2013;<lpage>995</lpage>. <pub-id pub-id-type="doi">10.1109/tfuzz.2020.2966182</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Hajiali</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Torabi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ahmadi</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Simoes</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Novel forecasting model based on improved wavelet transform, informative feature selection, and hybrid support vector machine on wind power forecasting</article-title>. <source>J. Ambient Intell. Humaniz. Comput.</source> <volume>9</volume>, <fpage>1919</fpage>&#x2013;<lpage>1931</lpage>. <pub-id pub-id-type="doi">10.1007/s12652-018-0886-0</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lu</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Qian</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Yue</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Scaled gated networks</article-title>. <source>World Wide Web</source> <volume>25</volume>, <fpage>1583</fpage>&#x2013;<lpage>1606</lpage>. <pub-id pub-id-type="doi">10.1007/s11280-021-00968-2</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Malakouti</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ghiasi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ghavifekr</surname>
<given-names>A. A.</given-names>
</name>
<name>
<surname>Emami</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Predicting wind power generation using machine learning and cnn-lstm approaches</article-title>. <source>Wind Eng.</source> <volume>46</volume>, <fpage>1853</fpage>&#x2013;<lpage>1869</lpage>. <pub-id pub-id-type="doi">10.1177/0309524x221113013</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meka</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Alaeddini</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Bhaganagar</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>A robust deep learning framework for short-term wind power forecast of a full-scale wind farm using atmospheric variables</article-title>. <source>Energy</source> <volume>221</volume>, <fpage>119759</fpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2021.119759</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nielson</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Bhaganagar</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Meka</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Alaeddini</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Using atmospheric inputs for artificial neural networks to improve wind turbine power prediction</article-title>. <source>Energy</source> <volume>190</volume>, <fpage>116273</fpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2019.116273</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ramasamy</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Chandel</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yadav</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Wind speed prediction in the mountainous region of India using an artificial neural network model</article-title>. <source>Renew. Energy</source> <volume>80</volume>, <fpage>338</fpage>&#x2013;<lpage>347</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2015.02.034</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Schubert</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Sander</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ester</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kriegel</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Dbscan revisited, revisited</article-title>. <source>ACM Trans. Database Syst. (TODS)</source> <volume>42</volume>, <fpage>1</fpage>&#x2013;<lpage>21</lpage>. <pub-id pub-id-type="doi">10.1145/3068335</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>SheenaKurian</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Mathew</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>High impact of rough set and kmeans clustering methods in extractive summarization of journal articles</article-title>. <source>J. Inf. Sci. Eng.</source> <volume>39</volume>, <fpage>561</fpage>&#x2013;<lpage>574</lpage>. <pub-id pub-id-type="doi">10.6688/JISE.20230539(3).0007</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Uddin</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Sadiq</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Method of quartile for determination of weibull parameters and assessment of wind potential</article-title>. <source>Kuwait J. Sci</source>. <pub-id pub-id-type="doi">10.48129/kjs.20357</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2020</year>). &#x201c;<article-title>Power load forecasting of lssvm based on real time price and chaotic characteristic of loads</article-title>,&#x201d; in <source>Information security practice and experience</source>, <fpage>2172</fpage>&#x2013;<lpage>2178</lpage>.</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xue</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2022a</year>). <article-title>An adaptive wind power forecasting method based on wind speed-power trend enhancement and ensemble learning strategy</article-title>. <source>J. Renew. Sustain. Energy</source> <volume>14</volume>. <pub-id pub-id-type="doi">10.1063/5.0107049</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>K.-F.</given-names>
</name>
</person-group> (<year>2022b</year>). &#x201c;<article-title>Wind turbine abnormal data cleaning method considering multi-scene parameter adaptation</article-title>,&#x201d; in <source>2022 asian conference on Frontiers of power and energy (ACFPE)</source>, <fpage>292</fpage>&#x2013;<lpage>297</lpage>.</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wisdom</surname>
<given-names>U.</given-names>
</name>
<name>
<surname>Yar</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Data-Driven Predictive Maintenance of Wind Turbine Based on SCADA Data</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>162370</fpage>&#x2013;<lpage>162388</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2021.3132684</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>An ensemble neural network based on variational mode decomposition and an improved sparrow search algorithm for wind and solar power forecasting</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>166709</fpage>&#x2013;<lpage>166719</lpage>. <pub-id pub-id-type="doi">10.1109/access.2021.3136387</pub-id>
</citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>AdaBoost-based long short-term memory ensemble learning approach for financial time series forecasting</article-title>. <source>Current Science</source> <volume>115</volume>, <fpage>159</fpage>&#x2013;<lpage>165</lpage>. <comment>
<ext-link ext-link-type="uri" xlink:href="https://www.jstor.org/stable/26978163">https://www.jstor.org/stable/26978163</ext-link>
</comment>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>min Yuan</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A novel model based on ceemdan, iwoa, and lstm for ultra-short-term wind power forecasting</article-title>. <source>Environ. Sci. Pollut. Res.</source> <volume>30</volume>, <fpage>11689</fpage>&#x2013;<lpage>11705</lpage>. <pub-id pub-id-type="doi">10.1007/s11356-022-22959-0</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yuan</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Prediction interval of wind power using parameter optimized Beta distribution based LSTM model</article-title>. <source>Applied Soft Computing</source> <volume>82</volume>, <fpage>105550</fpage>. <pub-id pub-id-type="doi">10.1016/j.asoc.2019.105550</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Improved ude and lso for a class of uncertain second-order nonlinear systems without velocity measurements</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>69</volume>, <fpage>4076</fpage>&#x2013;<lpage>4092</lpage>. <pub-id pub-id-type="doi">10.1109/tim.2019.2942508</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Small-footprint keyword spotting based on gated channel transformation sandglass residual neural network</article-title>. <source>Int. J. Pattern Recognit. Artif. Intell.</source> <volume>36</volume>, <fpage>2258003:1</fpage>&#x2013;<lpage>2258003:16</lpage>. <pub-id pub-id-type="doi">10.1142/s0218001422580034</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>xia Chang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2022</year>). &#x201c;<article-title>Modeling and simulation of large-scale wind power base output considering the clustering characteristics and correlation of wind farms</article-title>,&#x201d; in <source>Frontiers in energy research</source>, <fpage>10</fpage>.</citation>
</ref>
</ref-list>
</back>
</article>