<?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. Earth Sci.</journal-id>
<journal-title>Frontiers in Earth Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Earth Sci.</abbrev-journal-title>
<issn pub-type="epub">2296-6463</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1216222</article-id>
<article-id pub-id-type="doi">10.3389/feart.2023.1216222</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Earth Science</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A fluid identification method for caved-fracture reservoirs based on the stacking model</article-title>
<alt-title alt-title-type="left-running-head">Zhao 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/feart.2023.1216222">10.3389/feart.2023.1216222</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Zhao</surname>
<given-names>Jun</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Lin</surname>
<given-names>Zongpeng</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2297930/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Lai</surname>
<given-names>Qiang</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Chen</surname>
<given-names>Weifeng</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wu</surname>
<given-names>Zhenguan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1688100/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>School of Geoscience and Technology</institution>, <institution>Southwest Petroleum University</institution>, <addr-line>Chengdu</addr-line>, <addr-line>Sichuan</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>CNPC, <institution>Research Institute of Southwest Oil and Gas Field Branch</institution>, <addr-line>Chengdu</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/1582636/overview">Qiaomu Qi</ext-link>, Chengdu University of Technology, China</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/2319966/overview">Jun Wang</ext-link>, Chengdu University of Technology, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2330191/overview">Fuqiang Lai</ext-link>, Chongqing University of Science and Technology, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Weifeng Chen, <email>swpucwf@126.com</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>10</day>
<month>08</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1216222</elocation-id>
<history>
<date date-type="received">
<day>03</day>
<month>05</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>07</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Zhao, Lin, Lai, Chen and Wu.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Zhao, Lin, Lai, Chen and Wu</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>It is difficult to identify the fluid properties with one single logging curve in a caved-fracture reservoir due to multi-stage tectonism, diagenetic evolution, rapid lithology change, developed fractures, and significant heterogeneity. Therefore, a stack generalization-based method is proposed for improving fluid identification accuracy. First, a traditional method with cross-plots is adopted by coring and logging data, but it is found that the identification effect of the caved-fracture reservoir fluid is poor. Second, based on the cross-plot, a correlation analysis is conducted to select sensitive logging parameters such as resistivity, compensated neutron, density, acoustic, and total hydrocarbon, which reflect changes in fluid properties, as feature vectors for the identification of fluid types in caved-fracture reservoirs. Third, support vector machine, k-nearest neighbor algorithm, decision tree, and stochastic gradient descent classification are selected as the base learners. 80% of the data sample points and the remaining 20% are selected as training and test samples for building the stacking models to verify the prediction accuracy of the model. Finally, a fully connected neural network is used as a meta-learner to control the final output. The experimental results show that the prediction accuracy of the stack generalization method can reach 88%. Compared with the cross-plot and single machine learning discriminant model, the fluid identification method based on the stack generalization model has a better effect and can improve the fluid identification effect of caved-fracture reservoirs in the study area.</p>
</abstract>
<kwd-group>
<kwd>caved-fracture reservoir</kwd>
<kwd>machine learning</kwd>
<kwd>fluid identification</kwd>
<kwd>logging</kwd>
<kwd>stacked generalization</kwd>
</kwd-group>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Economic Geology</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>As a new field in the realm of oil and gas exploration and development, the research of deep caved-fracture reservoirs has become increasingly critical. The supply of conventional oil and gas resources is difficult to meet the increasing demand for industrial development. The identification of caved-fracture oil and gas resources in prominent oil and gas fields within the Bohai Bay Basin in China serves as compelling evidence of the abundant reserves and development prospects associated with caved-fracture reservoirs (<xref ref-type="bibr" rid="B11">He et al., 2010</xref>).</p>
<p>The strata in the study area having caved-fracture-type reservoirs belong to the Carboniferous period. This region has undergone extensive tectonic activities and diagenetic evolution, resulting in the formation of numerous fractures and significant heterogeneity. Consequently, the identification of reservoir fluid properties becomes challenging. Many scholars, both domestically and internationally, have conducted research on this matter, such as the NMR and density porosity overlap method of apparent resistivity spectrum of gas layer identification method (<xref ref-type="bibr" rid="B6">Chen et al., 2017</xref>), the longitudinal wave velocity and longitudinal wave velocity ratio cross-plot fluid identification method (<xref ref-type="bibr" rid="B15">Jiang et al., 2014</xref>; <xref ref-type="bibr" rid="B14">Jia et al., 2018</xref>), the different lithological application of Poisson&#x2019;s ratio fluid identification method (<xref ref-type="bibr" rid="B7">Dai, 2018</xref>), vertical and horizontal wave velocity fluid identification (<xref ref-type="bibr" rid="B27">Zhang et al., 2008</xref>), the neural network method (<xref ref-type="bibr" rid="B3">Bian et al., 2013</xref>), and a combination of rock physical simulation and statistical techniques for fluid identification (<xref ref-type="bibr" rid="B1">Ahmed et al., 2017</xref>).</p>
<p>In the past few decades, machine learning algorithms have been widely used in logging interpretation for their ability to explore the nonlinear relationship between logging response features. The common machine learning models include the support vector machine (SVM) (<xref ref-type="bibr" rid="B17">Kumar et al., 2022</xref>), neural network (<xref ref-type="bibr" rid="B21">Maiti et al., 2007</xref>; <xref ref-type="bibr" rid="B31">Zhou, 2021</xref>), Bayesian network (<xref ref-type="bibr" rid="B19">Li and Anderson-Sprecher, 2006</xref>; <xref ref-type="bibr" rid="B4">Cai, 2021</xref>), k-nearest neighbor (KNN) algorithm (<xref ref-type="bibr" rid="B25">Wang et al., 2004</xref>), and capsule network (<xref ref-type="bibr" rid="B29">Zhou B et al., 2021</xref>). Zhou et al. used the SVM for fluid identification of thin reservoirs (<xref ref-type="bibr" rid="B32">Zhou et al., 2023</xref>). They selected kernel functions and established a prediction model for thin reservoirs, with a prediction accuracy of 85.7%. Bai et al. used the SVM to interpret the low-resistivity oil layer in a tight sandstone reservoir in a certain area (<xref ref-type="bibr" rid="B2">Bai et al., 2022</xref>). They found that the fluid recognition accuracy of the support vector machine classification model was higher than that of the log cross-plot method, the back propagation neural network method, and the Radial basis function neural network method. For the test of an Ordovician Carbonate rock reservoir in an oil field (<xref ref-type="bibr" rid="B28">Zhao et al., 2015</xref>), Zhao et al. used the KNN for fluid identification. They found that compared with other common identification methods, this method has higher identification accuracy, stronger generalization, and robustness and has a better effect on oil and water layer identification.</p>
<p>Different machine learning algorithms have their own advantages and disadvantages due to their differences in principle. It is difficult to evaluate the fluid properties of the area due to the complex formation environment by applying a single machine learning model.</p>
<p>In this paper, we apply a stacked generalization model to evaluate the fractured reservoir. Compared with a single machine learning algorithm, the method based on the stack generalization (<xref ref-type="bibr" rid="B24">Qin et al., 2021</xref>) model adopts the idea of integrated learning and has been widely used in various classification tasks. Especially when this method is applied to the fusion of task models with few samples and uneven samples, the identification effect of the model is also better than that of a single machine learning model (<xref ref-type="bibr" rid="B12">He et al., 2022</xref>). Currently, some authors use the stacked generalization method for log lithofacies identification (<xref ref-type="bibr" rid="B5">Cao et al., 2022</xref>; <xref ref-type="bibr" rid="B12">He et al., 2022</xref>), and there is limited research on the identification of fluid types in caved-fracture complex reservoirs using the stacked generalization model. Therefore, the methodology proposed in this study holds significant relevance for fluid identification in such reservoirs characterized by caved fractures.</p>
</sec>
<sec id="s2">
<title>2 Response characteristics and sensitivity analysis of reservoir fluid logging</title>
<p>The study area exhibits a monoclinic structural form that dips towards the southeast. The overlying Carboniferous stratum gradually thins from the southeast to the northwest and is characterized by multiple stages of deposition, forming an unconformity surface. The regional structure is located in the middle section of the Hongche fault zone in the northwestern margin of the basin. The Carboniferous caved-fracture lithology in this area is complex, and fractures and dissolution pores are widely developed. The complicated pore structure of the reservoir leads to the complex relationship between the saturated liquid and logging data, which makes it difficult to determine the liquid type with the logging response characteristics.</p>
<p>The available data of the 24 wells in the area are shown in <xref ref-type="table" rid="T1">Table 1</xref>, and the relative amplitude (FDB), total hydrocarbon base value (QL<sub>j</sub>), and hydrocarbon humidity of the whole hydrocarbon are calculated. The relative amplitude of total hydrocarbon is shown as<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>B</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Oil test, production data, and gas survey data from the study area.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Well name</th>
<th align="center">Top depth</th>
<th align="center">Bottom depth</th>
<th align="center">Total hydrocarbon distribution range</th>
<th align="center">Total hydrocarbon base value</th>
<th align="center">Total hydrocarbon average</th>
<th align="center">Gas measurement components</th>
<th align="center">Daily gas production (m&#xb3;)</th>
<th align="center">Daily water production (t)</th>
<th align="center">Interpretation of the conclusion</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">C471</td>
<td align="center">2,269</td>
<td align="center">2,272</td>
<td align="center">0.052&#x2013;2.16</td>
<td align="center">0.386</td>
<td align="center">0.48</td>
<td align="center">5</td>
<td align="center">&#x2014;</td>
<td align="center">2.16</td>
<td align="center">Water layer</td>
</tr>
<tr>
<td align="center">C471</td>
<td align="center">2,502</td>
<td align="center">2,518</td>
<td align="center">0.27&#x2013;14.9</td>
<td align="center">0.386</td>
<td align="center">0.93</td>
<td align="center">5</td>
<td align="center">1,650</td>
<td align="center">&#x2014;</td>
<td align="center">Gas-bearing layer</td>
</tr>
<tr>
<td align="center">C471</td>
<td align="center">2,628</td>
<td align="center">2,708</td>
<td align="center">0.13&#x2013;15.22</td>
<td align="center">0.386</td>
<td align="center">6.92</td>
<td align="center">5</td>
<td align="center">42,380</td>
<td align="center">&#x2014;</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C471</td>
<td align="center">2,994</td>
<td align="center">3,039</td>
<td align="center">0.06&#x2013;2.78</td>
<td align="center">0.386</td>
<td align="center">0.32</td>
<td align="center">5</td>
<td align="center">&#x2014;</td>
<td align="center">6.77</td>
<td align="center">Water layer</td>
</tr>
<tr>
<td align="center">C472</td>
<td align="center">2,323</td>
<td align="center">2,327</td>
<td align="center">0.002&#x2013;0.16</td>
<td align="center">0.004</td>
<td align="center">0.12</td>
<td align="center">2</td>
<td align="center">&#x2014;</td>
<td align="center">4.75</td>
<td align="center">Water layer</td>
</tr>
<tr>
<td align="center">C472</td>
<td align="center">2,474</td>
<td align="center">2,536</td>
<td align="center">0.003&#x2013;8.14</td>
<td align="center">0.004</td>
<td align="center">6.21</td>
<td align="center">1</td>
<td align="center">10,100</td>
<td align="center">&#x2014;</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C472</td>
<td align="center">2,688</td>
<td align="center">2,732</td>
<td align="center">0.004&#x2013;6.23</td>
<td align="center">0.004</td>
<td align="center">5.32</td>
<td align="center">1</td>
<td align="center">26,901</td>
<td align="center">&#x2014;</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C472</td>
<td align="center">2,950</td>
<td align="center">2,988</td>
<td align="center">0.003&#x2013;4.25</td>
<td align="center">0.004</td>
<td align="center">3.04</td>
<td align="center">1</td>
<td align="center">9,875</td>
<td align="center">24.48</td>
<td align="center">Gas&#x2013;water layer</td>
</tr>
<tr>
<td align="center">C473</td>
<td align="center">2,636</td>
<td align="center">2,648</td>
<td align="center">0.21&#x2013;3.72</td>
<td align="center">0.229</td>
<td align="center">2.84</td>
<td align="center">5</td>
<td align="center">6,670</td>
<td align="center">8.93</td>
<td align="center">Gas&#x2013;water layer</td>
</tr>
<tr>
<td align="center">C473</td>
<td align="center">2,844</td>
<td align="center">2,878</td>
<td align="center">0.05&#x2013;3.92</td>
<td align="center">0.229</td>
<td align="center">3.43</td>
<td align="center">5</td>
<td align="center">7,169</td>
<td align="center">10.69</td>
<td align="center">Gas&#x2013;water layer</td>
</tr>
<tr>
<td align="center">C473</td>
<td align="center">3,430</td>
<td align="center">3,458</td>
<td align="center">0.07&#x2013;2.41</td>
<td align="center">0.229</td>
<td align="center">0.36</td>
<td align="center">5</td>
<td align="center">&#x2014;</td>
<td align="center">21.25</td>
<td align="center">Water layer</td>
</tr>
<tr>
<td align="center">&#x2026;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
<td align="center">&#x2014;</td>
</tr>
<tr>
<td align="center">CH3069</td>
<td align="center">2,542</td>
<td align="center">2,547</td>
<td align="center">1.05&#x2013;2.81</td>
<td align="center">1.137</td>
<td align="center">2.0094</td>
<td align="center">5</td>
<td align="center">5,973</td>
<td align="center">7.93</td>
<td align="center">Gas&#x2013;water layer</td>
</tr>
<tr>
<td align="center">CF0615</td>
<td align="center">2,316</td>
<td align="center">2,327</td>
<td align="center">0.53&#x2013;20.48</td>
<td align="center">0.576</td>
<td align="center">6.06</td>
<td align="center">5</td>
<td align="center">21,079</td>
<td align="center">&#x2014;</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">CF0615</td>
<td align="center">2,342</td>
<td align="center">2,353</td>
<td align="center">0.23&#x2013;22.07</td>
<td align="center">0.576</td>
<td align="center">8.06</td>
<td align="center">5</td>
<td align="center">32,747</td>
<td align="center">&#x2014;</td>
<td align="center">Gas layer</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The hydrocarbon humidity value calculation formula is<disp-formula id="e2">
<mml:math id="m2">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
<mml:mo>%</mml:mo>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>where <italic>C</italic>
<sub>
<italic>1</italic>
</sub> is the dry gas and <italic>C</italic>
<sub>
<italic>2&#x2013;5</italic>
</sub> represent the wet gas. <italic>W</italic>
<sub>
<italic>h</italic>
</sub> is the humidity, which can be used to determine the hydrocarbon type (oil or gas).</p>
<p>The logging response characteristics of the main fluids in the area were analyzed and summarized based on the oil testing conclusion data and logging curves from five wells (<xref ref-type="table" rid="T2">Tables 2</xref>, <xref ref-type="table" rid="T3">3</xref>).</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Response characteristics of caved-fracture fluid logging.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="center">Type</th>
<th colspan="2" align="center">GR (API)</th>
<th colspan="2" align="center">AC (&#x3bc;s/ft)</th>
<th colspan="2" align="center">DEN (g/cm&#xb3;)</th>
<th colspan="2" align="center">CNL (%)</th>
<th colspan="2" align="center">RT (&#x3a9;&#xb7;m)</th>
</tr>
<tr>
<th align="center">Interval</th>
<th align="center">Avg</th>
<th align="center">Interval</th>
<th align="center">Avg</th>
<th align="center">Interval</th>
<th align="center">Avg</th>
<th align="center">Interval</th>
<th align="center">Avg</th>
<th align="center">Interval</th>
<th align="center">Avg</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Gas layer</td>
<td align="center">40.4&#x2013;77.7</td>
<td align="center">61.2</td>
<td align="center">70.3&#x2013;86.9</td>
<td align="center">76.8</td>
<td align="center">2.25&#x2013;2.55</td>
<td align="center">2.41</td>
<td align="center">21.6&#x2013;38.9</td>
<td align="center">26.3</td>
<td align="center">6.9&#x2013;85.7</td>
<td align="center">31.2</td>
</tr>
<tr>
<td align="center">Water layer</td>
<td align="center">64.6&#x2013;78.2</td>
<td align="center">68.2</td>
<td align="center">63.8&#x2013;68.6</td>
<td align="center">65.9</td>
<td align="center">2.54&#x2013;2.60</td>
<td align="center">2.56</td>
<td align="center">23.7&#x2013;37.2</td>
<td align="center">31.3</td>
<td align="center">30.3&#x2013;36.3</td>
<td align="center">33.2</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water layer</td>
<td align="center">36.7&#x2013;61.3</td>
<td align="center">47.7</td>
<td align="center">63.7&#x2013;78.6</td>
<td align="center">68.3</td>
<td align="center">2.52&#x2013;2.63</td>
<td align="center">2.54</td>
<td align="center">23.2&#x2013;32.7</td>
<td align="center">28.9</td>
<td align="center">21.7&#x2013;90.3</td>
<td align="center">47.7</td>
</tr>
<tr>
<td align="center">Dry layer</td>
<td align="center">16.5&#x2013;73.2</td>
<td align="center">39.2</td>
<td align="center">58.3&#x2013;66.2</td>
<td align="center">62.1</td>
<td align="center">2.45&#x2013;2.61</td>
<td align="center">2.54</td>
<td align="center">14.1&#x2013;25.7</td>
<td align="center">19.4</td>
<td align="center">29.2&#x2013;101</td>
<td align="center">83.3</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Response characteristics of caved-fracture fluid mud logging.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Type</th>
<th align="center">Total hydrocarbon relative magnitude</th>
<th align="center">Hydrocarbon humidity value</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Gas layer</td>
<td align="center">0.1&#x2013;10</td>
<td align="center">0&#x2013;0.016</td>
</tr>
<tr>
<td align="center">Water layer</td>
<td align="center">0.13&#x2013;1.06</td>
<td align="center">0&#x2013;0.004</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water layer</td>
<td align="center">0.1&#x2013;2.93</td>
<td align="center">0&#x2013;0.002</td>
</tr>
<tr>
<td align="center">Dry layer</td>
<td align="center">0.03&#x2013;1.19</td>
<td align="center">0.01&#x2013;0.03</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Based on the analysis and summary of the caved-fracture fluid logging response characteristics in the study area in <xref ref-type="table" rid="T2">Tables 2</xref>, <xref ref-type="table" rid="T3">3</xref>, according to the data of 73 oil test intervals of 24 wells in the C471 well area, the corresponding logging parameters were selected as QL-RT, DEN-AC, CNL-GR, and RD/RT-RI cross-plots (<xref ref-type="fig" rid="F1">Figure 1</xref>) to identify the caved-fracture fluid.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Cross-plot of logging parameters: <bold>(A)</bold> RT and QL; <bold>(B)</bold> AC and DEN; <bold>(C)</bold> GR and CNL; <bold>(D)</bold> SP and RD/RS.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g001.tif"/>
</fig>
<p>Based on <xref ref-type="fig" rid="F1">Figures 1A&#x2013;D</xref>, it can be observed that the gas layer, gas-bearing layer, and water layer exhibit low resistivity, while the dry layer displays high resistivity. The gas layer has the characteristics of high acoustic wave and low density, which is different from other fluid characteristics. The density log value of the dry layer is the highest, followed by the gas&#x2013;water layer and the water layer. According to the neutron-gamma logging response, the dry layer presents the characteristics of low&#x2013;medium gamma and low neutron logging value, the neutron logging value is significantly lower than that of the gas layer, and the neutron logging value of the water layer is slightly larger than that of the gas layer. Generally, conventional well logging curves such as RT, CNL, DEN, AC, and QL (full hydrocarbon) curves are highly sensitive to fluid properties.</p>
<p>Although the cross-plot method can reflect the properties of formation fluids to a certain extent, from the cross-plot, it can be observed that the cross-plot method is effective in distinguishing between dry layers and fluid reservoirs. However, it faces challenges in effectively differentiating gas layers, gas&#x2013;water layers, and water layers. It shows that the single conventional cross-plot has a poor overall effect on the identification of caved-fracture fluids and cannot make full use of logging curves reflecting fluid properties and express the semantic level stratigraphic information contained in the logging curve.</p>
</sec>
<sec id="s3">
<title>3 Model principle and construction</title>
<sec id="s3-1">
<title>3.1 Stacked generalization principle</title>
<p>Stacked generalization (<xref ref-type="bibr" rid="B8">David, 1992</xref>), as a typical learning method in ensemble learning (<xref ref-type="bibr" rid="B20">L&#xfc; et al., 2019</xref>), uses a certain learner to integrate the classification results of different base learners. The stacked generalization model can increase the nonlinear ability of the model by increasing the number of layers, but at the same time, it will also lead to the phenomenon of model overfitting. Therefore, the general stacked generalization model is a two-layer structure (<xref ref-type="bibr" rid="B22">Niyogisubizo et al., 2022</xref>). The stacked generalization model ensemble machine learning algorithm models with better identification effects, such as decision trees, nearest neighbors, and support vector machine algorithms. It makes full use of the different characteristics of different algorithms and then uses a new meta-learner to combine the prediction results of individual base learners to finally complete the prediction of the task results. The algorithm implementation process is illustrated in <xref ref-type="fig" rid="F2">Figure 2</xref>. First, the dataset is divided into multiple subsets, which serve as inputs for the basic learners. Each basic learner generates a prediction result based on its corresponding subset. The outputs of all the basic learners are then used as inputs for the meta-learner, which produces the final prediction result. By stacking and generalizing the outputs of multiple base learners, the overall task&#x2019;s prediction accuracy is improved.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Stacked generalization process.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g002.tif"/>
</fig>
<p>In order to prevent the meta-learner from directly learning the training set of the base learner, which causes too much risk of overfitting, the learning of the base learner is carried out by means of cross-validation (<xref ref-type="bibr" rid="B10">Geisser, 1975</xref>). The original training set D is randomly divided into <italic>k</italic> sets <inline-formula id="inf1">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf2">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> , <inline-formula id="inf3">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf4">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,&#x2026;, <inline-formula id="inf5">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the same size or with little difference. The <italic>j</italic>-th set <inline-formula id="inf6">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> has m pieces of data. Let the test set of the <italic>j</italic>-th base learner be <inline-formula id="inf7">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and the training set is <inline-formula id="inf8">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>D</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>D</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Denoting the total number of base learners with T, each base learner algorithm is expressed as <inline-formula id="inf9">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Let the <italic>t-</italic>th base learner algorithm <inline-formula id="inf10">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> learn at <inline-formula id="inf11">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>D</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; for the <italic>i-</italic>th example <inline-formula id="inf12">
<mml:math id="m14">
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf13">
<mml:math id="m15">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, a secondary training sample <inline-formula id="inf14">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is generated, and the output set of all base learners <inline-formula id="inf15">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for i examples is <inline-formula id="inf16">
<mml:math id="m18">
<mml:mrow>
<mml:mfenced open="(" close="" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<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:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>). <inline-formula id="inf17">
<mml:math id="m19">
<mml:mrow>
<mml:msup>
<mml:mi>D</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x222a;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<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:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is obtained throughout the cross-validation process as a training instance of the meta-learner L, and the final meta-learner&#x2019;s prediction <inline-formula id="inf18">
<mml:math id="m20">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the final output of the model.</p>
<p>Considering the diverse principles underlying the base learners and their varying interpretations of the data space dimensions in well logging information (<xref ref-type="bibr" rid="B30">Zhou H et al., 2021</xref>), classic algorithms such as the SVM, KNN, decision trees, and stochastic gradient descent classification method have been widely used in the field of machine learning for many years and have been extensively validated in practical applications. These algorithms have broad application domains and are supported by a rich body of research, demonstrating their ability to achieve robust performance in various problem domains (<xref ref-type="bibr" rid="B26">Wu et al., 2017</xref>; <xref ref-type="bibr" rid="B33">Zhou X et al., 2021</xref>; <xref ref-type="bibr" rid="B16">Jung and Kim, 2023</xref>; <xref ref-type="bibr" rid="B23">Pa&#x142;czy&#x144;ski et al., 2023</xref>). Therefore, in this article, they are used as the base learner, and the fully connected neural network is used as the meta-learner (detailed in the subsequent section). The pseudocode is shown in <xref ref-type="table" rid="T4">Table 4</xref>.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Schematic diagram of the implementation steps of the stacked generalization algorithm.</p>
</caption>
<table>
<tbody valign="top">
<tr>
<td align="left">&#x2003;&#x2003;Input: Training set: <inline-formula id="inf19">
<mml:math id="m21">
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>; m is the number of datasets, and <inline-formula id="inf20">
<mml:math id="m22">
<mml:mrow>
<mml:msup>
<mml:mi>D</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> represents the meta-learner training set</td>
</tr>
<tr>
<td align="left">Elementary learning algorithms: <inline-formula id="inf21">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; T learners, <inline-formula id="inf22">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the t-th base learner, <inline-formula id="inf23">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represent the SVM, KNN, decision tree, and stochastic gradient descent classification method in turn</td>
</tr>
<tr>
<td align="left">Secondary learning algorithms: <inline-formula id="inf24">
<mml:math id="m26">
<mml:mrow>
<mml:mi mathvariant="fraktur">L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, meta-learner, represents a fully connected neural network</td>
</tr>
<tr>
<td align="left">Cross-validation: indicates cross-validation, the number of cross-validation subsets k&#x3d;5</td>
</tr>
<tr>
<td align="left">Process</td>
</tr>
<tr>
<td align="left">1: <inline-formula id="inf25">
<mml:math id="m27">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf26">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> , <inline-formula id="inf27">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf28">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> ,&#x2026;, <inline-formula id="inf29">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> &#x3d; Cross-validation (T,k)</td>
</tr>
<tr>
<td align="left">2: for <inline-formula id="inf30">
<mml:math id="m32">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> do</td>
</tr>
<tr>
<td align="left">3: <inline-formula id="inf31">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>D</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">4: end for</td>
</tr>
<tr>
<td align="left">5: <inline-formula id="inf32">
<mml:math id="m34">
<mml:mrow>
<mml:msup>
<mml:mi>D</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2300;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">6: for <inline-formula id="inf33">
<mml:math id="m35">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> do</td>
</tr>
<tr>
<td align="left">7:&#x2003;for <inline-formula id="inf34">
<mml:math id="m36">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> do</td>
</tr>
<tr>
<td align="left">8:&#x2003;&#x2003;&#x2003;<inline-formula id="inf35">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">9:&#x2003;end for</td>
</tr>
<tr>
<td align="left">10: <inline-formula id="inf36">
<mml:math id="m38">
<mml:mrow>
<mml:msup>
<mml:mi>D</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>D</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x222a;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<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:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">11: end for</td>
</tr>
<tr>
<td align="left">12: <inline-formula id="inf37">
<mml:math id="m39">
<mml:mrow>
<mml:msup>
<mml:mi>h</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi>D</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">For an input x, there is output: <inline-formula id="inf38">
<mml:math id="m40">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>h</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Among them, <inline-formula id="inf39">
<mml:math id="m41">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the learner obtained after <inline-formula id="inf40">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is trained by <inline-formula id="inf41">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>D</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf42">
<mml:math id="m44">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the output of the meta-learner, which is also the final output of the whole model.</p>
</sec>
<sec id="s3-2">
<title>3.2 Model construction</title>
<p>Based on the introduction provided in the previous section, the SVM, KNN, decision tree, and stochastic gradient descent classification method with different mathematical principles are used as the base learners, and the fully connected neural network commonly used in deep learning is used as the meta-learner to control the final output. Among them, the fully connected neural network is also called multilayer perceptron, which is a kind of artificial neural network with forward feedback (<xref ref-type="bibr" rid="B9">Du et al., 2020</xref>), known as the deep feedforward network. A feedforward neural network includes an input layer, a hidden layer, and an output layer. The input layer mainly associates the feature information with the input nodes, transmits information for the hidden nodes in the next step, and provides data support for the calculation in the next step. The hidden layer is a node layer that further processes the feature information, calculates the data transmitted by the input node, and transmits the calculated information to the output node to improve the nonlinear ability of the model. The output layer is the last link in the transmission of information, which further calculates the data and transmits information to the outside of the network (<xref ref-type="fig" rid="F3">Figure 3</xref>).</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Meta-learner model structure diagram.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g003.tif"/>
</fig>
<p>In the forward propagation stage, it can be seen that the input layers <italic>x</italic>
<sub>
<italic>1</italic>
</sub>
<italic>, x</italic>
<sub>
<italic>2</italic>
</sub>
<italic>.x</italic>
<sub>
<italic>n</italic>
</sub> form the X vector. Therefore, the hidden layer neurons are activated by the hyperbolic function <italic>tanh</italic> to obtain the output value of this layer:<disp-formula id="e3">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="italic">tanh</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>where <italic>a</italic>
<sub>
<italic>j</italic>
</sub> represents the output value of the hidden layer neuron, <italic>tanh</italic> represents the hidden layer activation function, <italic>g</italic>
<sub>
<italic>j</italic>
</sub> represents the input weighted sum of the <italic>j</italic>-th hidden layer neuron node, <italic>n</italic> represents the number of neurons in the input layer, <italic>i</italic> represents the subscript of the input layer neuron, <italic>j</italic> represents the subscript of the hidden layer neuron, and w<sub>ij</sub> is the weight of the hidden layer neuron <italic>j</italic>.</p>
<p>Similarly, the output value of the output layer neuron is activated by the normalized exponential function <italic>softmax</italic>, which can be expressed as<disp-formula id="e4">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="italic">softmax</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>where y (<italic>a</italic>
<sub>
<italic>k</italic>
</sub>) represents the output value of the hidden layer neuron, <italic>softmax</italic> represents the activation function of the output layer, m is the number of neurons in the hidden layer, <italic>w</italic>
<sub>
<italic>jk</italic>
</sub> is the weight of the output layer neuron k, and <italic>x</italic>
<sub>
<italic>jk</italic>
</sub> represents the output value of the neurons in the hidden layer, which is equal to the input value of the neurons in the output layer.</p>
<p>Let<disp-formula id="e5">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>From the definition of the <italic>softmax</italic> function, it can be known that<disp-formula id="e6">
<mml:math id="m48">
<mml:mrow>
<mml:mi mathvariant="italic">softmax</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msup>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>where <italic>p</italic> represents the number of neurons in the output layer.</p>
<p>The loss function can be expressed as<disp-formula id="e7">
<mml:math id="m49">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="italic">ln</mml:mi>
<mml:mfrac>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msup>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="italic">ln</mml:mi>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
</mml:msup>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>In the backpropagation stage, when the loss function is passed from the output layer to the input layer, the stochastic gradient descent algorithm (SGD) is used as the optimizer to iteratively adjust the model weight. This method is the most basic iterative algorithm for optimizing neural networks at present, and it is simple and easy to implement (<xref ref-type="bibr" rid="B18">Li et al., 2022</xref>).</p>
<p>The gradient is also the partial derivative of the loss function L with respect to the weight w, and the calculation based on the chain rule can be expressed as<disp-formula id="e8">
<mml:math id="m50">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>The weight of the updated output layer can be obtained from the aforementioned formula, which is expressed as<disp-formula id="e9">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="normal">&#x3b7;</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>where &#x3b7; represents the model learning rate that controls the update speed of the parameters.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Model parameter selection</title>
<sec id="s4-1">
<title>4.1 Data normalization</title>
<p>Conventional well logging curves RT, CNL, DEN, AC, and QL are used as sample points, respectively, where QL can be calculated from the gas measurement data. According to the oil test data, 121 oil test intervals of 38 exploration wells were selected, and the corresponding fluid-sensitive logging parameters (deep lateral resistivity (RT), neutron (CNL), acoustic time difference (AC), formation density (DEN), and total hydrocarbon index (QL)) were used as the input data of the basic learner. The training dataset for this study consists of 100 samples, while the testing dataset comprises 26 samples. Among these, there are 76 training samples and 18 prediction samples for gas reservoirs. For water reservoirs, there are eight training samples and three prediction samples. Finally, for the gas&#x2013;water layers, there are 16 training samples and 5 prediction samples. The distribution of sample data is shown in <xref ref-type="table" rid="T5">Table 5</xref>.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Caved-fracture fluid sample data selection.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Type of fluid</th>
<th align="center">Fluid code</th>
<th align="center">Training data</th>
<th align="center">Prediction data</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Water layer</td>
<td align="center">0</td>
<td align="center">8</td>
<td align="center">3</td>
</tr>
<tr>
<td align="center">Gas layer</td>
<td align="center">1</td>
<td align="center">76</td>
<td align="center">18</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water layer</td>
<td align="center">2</td>
<td align="center">16</td>
<td align="center">5</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Based on the earlier discussion, where the cross-plot method demonstrated effective identification of dry formations, we will not specifically focus on the identification of dry formations in this study. The fluid data are mainly divided into the gas layer, water layer, and gas&#x2013;water layer. The label is set to 0 for the water layer, 1 for the gas layer, and 2 for the same layer of gas&#x2013;water.</p>
<p>The dimension and order of magnitude of different logging information are different. To eliminate the influence of unit and scale difference between logging information, it is necessary to normalize the features and normalize the input logging response feature data. The formula can be expressed as<disp-formula id="e11">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">norm</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>For nonlinear logarithmic characteristic curves, such as RT curves, logarithmic transformation should be performed before entering the model:<disp-formula id="e12">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">norm</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">lgX</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="italic">lgX</mml:mi>
</mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:msub>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">lgX</mml:mi>
</mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="italic">lgX</mml:mi>
</mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>In the formula, <inline-formula id="inf43">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">n</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">r</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the normalized data, <inline-formula id="inf44">
<mml:math id="m55">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> represents the original sample data, and <inline-formula id="inf45">
<mml:math id="m56">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>&#x3001;and <inline-formula id="inf46">
<mml:math id="m57">
<mml:mrow>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, respectively, represent the maximum and minimum values of the sample data.</p>
</sec>
<sec id="s4-2">
<title>4.2 Base learner parameter selection</title>
<p>After data standardization, the dataset was randomly divided into the training set and test set in the ratio of 8:2, and the training set was further divided into the sub-training set and sub-validation set using the five-fold cross-validation method. Using the sub-training set to train the model and the verification set to verify the training effect, the size of the model parameters is adjusted based on the effect of the verification. This process helps in selecting the optimal parameters for the basic learner. Stochastic gradient descent, KNN algorithm, decision tree algorithm, and support vector machine algorithm were selected as the basic learners, and different parameters in the algorithm were set. The relationship between different parameters of the experiment and the accuracy rate is shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Relationship between different base learner parameters and accuracy rate: <bold>(A)</bold> maximum depth and accuracy; <bold>(B)</bold> regularization coefficient and accuracy; <bold>(C)</bold> number of iterations and accuracy; <bold>(D)</bold> nearest neighbor numbers and accuracy.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g004.tif"/>
</fig>
<p>Among them, the maximum depth and the maximum number of leaf nodes are used as the decision parameters of the decision tree. Since the number of features is selected as 5, the maximum leaf child nodes of the decision tree are set to 3, 4, and 5. The larger the maximum depth of the decision tree is, the more the tree is split, the ability of the model to capture the nonlinearity of the data is enhanced, the probability of the model overfitting is increased, and the generalization ability of the model is worse. It can be seen from <xref ref-type="fig" rid="F4">Figure 4A</xref> that with the increase in the maximum depth of the decision tree, the accuracy of the model shows a fluctuating trend. When the maximum depth is 5 and the maximum number of child nodes is 4, the model accuracy is the highest, which is 79.8%.</p>
<p>The SVM algorithm completes the classification by maximizing the classification interface and finding a hyperplane to separate the classification targets as much as possible. When using SVM to identify fluids, it is necessary to pay attention to the penalty term coefficient C and the corresponding kernel function. Increasing the penalty coefficient C in a model strengthens its ability to constrain and suppress the parameters, which can lead to a higher degree of regularization. However, if the penalty coefficient C is set to an excessively large value, it can result in excessive parameter suppression and potentially cause underfitting. Kernel functions are generally used for higher-dimensional target tasks and can also provide models with different nonlinear capabilities. It can be seen from <xref ref-type="fig" rid="F4">Figure 4B</xref> that in the SVM classification algorithm, the accuracy of the results using the polynomial and radial basis kernel functions is higher than that of the linear kernel function, and the accuracy of the polynomial kernel function is slightly higher than that of the radial basis kernel function. When the penalty term coefficient C is 1.1 and the kernel function is a polynomial optimizer, the model has the best accuracy of 81.5%.</p>
<p>It can be seen from <xref ref-type="fig" rid="F4">Figure 4C</xref> that the stochastic gradient descent method is affected by the maximum number of iterations and the loss function. The log, hing, and square loss functions are selected as experimental comparisons. When the loss function is log loss, the stochastic gradient descent method evolves into a logistic regression algorithm with fast convergence and stable overall accuracy, with the highest accuracy reaching 81.2%. Other loss functions are more volatile and unstable, among which the square loss function has the most violent fluctuation.</p>
<p>As seen from <xref ref-type="fig" rid="F4">Figure 4D</xref>, the KNN algorithm is affected by the number of nearest neighbors and the construction method of the tree. The construction method of the tree is divided into brute, kd-tree, and ball-tree. It can be found that the construction method of the tree has no obvious influence on the algorithm. When experimenting on the number of nearest neighbors, it is found that the number of nearest neighbor algorithms has a significant impact on the generalization effect of the model. When the number of nearest neighbors is 5, the highest accuracy is 79.7%. When the number of nearest neighbors is 15&#x2013;20, the accuracy rate is not much different. When the number of nearest neighbors is larger, the model is more prone to overfitting, so the optimal number of nearest neighbors is 5.</p>
</sec>
<sec id="s4-3">
<title>4.3 Meta-learning model parameter optimization</title>
<p>The initial learning rate of the meta-learner is set to 0.001. Considering that there are too few data sample points, the model is prone to overfitting, and the regularization parameter penalty factor is set to 0.0005. The input layer is the secondary training set constructed by the output of the four basic learners after cross-validation training. Two hidden layers are set in the middle of the meta-learner, the number of neurons is set to 128 and 128, respectively, and the number of output neurons is set to 3. The learning rate decay factor is 0.8. The meta-learner is trained for 10,000 rounds, and the training loss and test loss are reduced to 0.04 and 0.03, respectively (<xref ref-type="fig" rid="F5">Figure 5</xref>). It can be seen from the curve that the training set loss and the validation set loss have a stable and consistent downward trend, and there is no overfitting phenomenon.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Meta-learner training time loss trend chart.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g005.tif"/>
</fig>
<p>The accuracy rate obtained by inferring the test set with the meta-learner model is used as the evaluation index, and the calculation method of the accuracy rate is as follows:<disp-formula id="e13">
<mml:math id="m58">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>where P is the accuracy rate and TP is the number of positive samples where the sample itself is positive. The model also predicts the number of positive samples, and FP is the number of negative samples that are predicted to be positive samples.</p>
<p>The hyperparameter training batch, the number of intermediate hidden layers, the learning rate, and the regularization parameters in the experiment are modified. Based on the experimental method, the optimal parameters of the fully connected neural network model were selected, the accuracy of the model test set was used as the measurement index, and judging whether the model is overfitting is supplemented by the accuracy of the training set. The training batch-accuracy, learning rate-accuracy, number of hidden layers-accuracy, and regularization coefficient-accuracy graphs are made, respectively (<xref ref-type="fig" rid="F6">Figures 6A&#x2013;D</xref>).</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Relationship between different meta-learning parameters and accuracy rate: <bold>(A)</bold> training batch and accuracy; <bold>(B)</bold> learning rate and accuracy; <bold>(C)</bold> hidden layer neural and accuracy; <bold>(D)</bold> regularization coefficient and accuracy.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g006.tif"/>
</fig>
<p>When the other parameters are fixed at a specific value, the training batches are set in the range of 500&#x2013;3,000, with an interval of 500 for each training iteration (<xref ref-type="fig" rid="F6">Figure 6A</xref>). It is found that the training batch tends to be stable from 2,500 to 3,000, and the accuracy trend of the training and test sets are consistent, with no overfitting. At this time, the batch is 2,500 and has the best accuracy. When the model learning rate is too small, the network model is prone to fall into local optimum, and when the model is too large, it is not stable enough and lacks robustness. It can be seen from <xref ref-type="fig" rid="F6">Figure 6B</xref> that when the learning rate is 0.009, the model training accuracy is high. When the number of neurons in the hidden layer is small, the model is prone to underfitting and lacks nonlinear ability. As the number of neurons increases, the nonlinear ability of the model increases. When the number of neurons is 512, the training accuracy increases and the test accuracy decreases significantly, and overfitting occurs at this time (<xref ref-type="fig" rid="F6">Figure 6C</xref>). Therefore, the number of neurons should be 256 for the best accuracy. As the regularization coefficient increases, the penalty for the parameters is larger, and the ability to suppress overfitting is stronger. When the regularization coefficient is 0.004, the model test accuracy is the highest (<xref ref-type="fig" rid="F6">Figure 6D</xref>).</p>
</sec>
</sec>
<sec id="s5">
<title>5 Field examples</title>
<p>Based on <xref ref-type="sec" rid="s3-2">Section 3.2</xref>, model construction, meta-learner parameter selection (<xref ref-type="table" rid="T6">Table 6</xref>) is used to construct the model. Partial training sample data are shown in <xref ref-type="table" rid="T7">Table 7</xref>. The specific flow chart of the model is shown in <xref ref-type="fig" rid="F7">Figure 7</xref>, which predicts the results of the fluid data of Carboniferous reservoirs in the study area.</p>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Corresponding parameters of the caved-fracture fluid prediction model.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Model</th>
<th align="center">Hidden layer activation function</th>
<th align="center">Output layer activation function</th>
<th align="center">Optimizer</th>
<th align="center">Regularization factor</th>
<th align="center">Hidden layer nodes</th>
<th align="center">Training times</th>
<th align="center">Hidden layer number</th>
<th align="center">Learning rate</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">MLP</td>
<td align="center">tanh</td>
<td align="center">softmax</td>
<td align="center">SGD</td>
<td align="center">0.004</td>
<td align="center">256</td>
<td align="center">2000</td>
<td align="center">3</td>
<td align="center">0.009</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T7" position="float">
<label>TABLE 7</label>
<caption>
<p>Partial training sample data.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Well name</th>
<th align="center">GR(API)</th>
<th align="center">CNL(%)</th>
<th align="center">AC(&#x3bc;s/ft)</th>
<th align="center">DEN(g/cm3)</th>
<th align="center">RT(&#x3a9;&#xb7;m)</th>
<th align="center">QL(%)</th>
<th align="center">Conclusion</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">C210</td>
<td align="center">44.6</td>
<td align="center">26.5</td>
<td align="center">74.9</td>
<td align="center">2.36</td>
<td align="center">64.0</td>
<td align="center">6.12</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C210</td>
<td align="center">56.4</td>
<td align="center">22.6</td>
<td align="center">73.5</td>
<td align="center">2.38</td>
<td align="center">68.3</td>
<td align="center">8.14</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C210</td>
<td align="center">40.5</td>
<td align="center">22.0</td>
<td align="center">86.2</td>
<td align="center">2.33</td>
<td align="center">86.5</td>
<td align="center">4.23</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C214</td>
<td align="center">56.2</td>
<td align="center">23.4</td>
<td align="center">80.6</td>
<td align="center">2.35</td>
<td align="center">77.3</td>
<td align="center">6.29</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C214</td>
<td align="center">54.5</td>
<td align="center">22.4</td>
<td align="center">77.7</td>
<td align="center">2.39</td>
<td align="center">61.7</td>
<td align="center">6.15</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C214</td>
<td align="center">62.0</td>
<td align="center">24.4</td>
<td align="center">73.5</td>
<td align="center">2.30</td>
<td align="center">42.3</td>
<td align="center">5.08</td>
<td align="center">Gas layer</td>
</tr>
<tr>
<td align="center">C229</td>
<td align="center">58.4</td>
<td align="center">30.3</td>
<td align="center">78.7</td>
<td align="center">2.48</td>
<td align="center">57.1</td>
<td align="center">0.94</td>
<td align="center">Gas&#x2013;water layer</td>
</tr>
<tr>
<td align="center">C243</td>
<td align="center">45.2</td>
<td align="center">27.8</td>
<td align="center">65.4</td>
<td align="center">2.50</td>
<td align="center">42.2</td>
<td align="center">1.30</td>
<td align="center">Gas&#x2013;water layer</td>
</tr>
<tr>
<td align="center">C214</td>
<td align="center">68.9</td>
<td align="center">32.2</td>
<td align="center">64.5</td>
<td align="center">2.52</td>
<td align="center">24.5</td>
<td align="center">1.06</td>
<td align="center">Water layer</td>
</tr>
<tr>
<td align="center">C214</td>
<td align="center">65.7</td>
<td align="center">35.0</td>
<td align="center">68.3</td>
<td align="center">2.55</td>
<td align="center">24.8</td>
<td align="center">0.64</td>
<td align="center">Water layer</td>
</tr>
<tr>
<td align="center">C216</td>
<td align="center">77.6</td>
<td align="center">34.4</td>
<td align="center">68.6</td>
<td align="center">2.52</td>
<td align="center">35.2</td>
<td align="center">0.58</td>
<td align="center">Water layer</td>
</tr>
<tr>
<td align="center">C216</td>
<td align="center">74.8</td>
<td align="center">33.2</td>
<td align="center">64.4</td>
<td align="center">2.53</td>
<td align="center">38.7</td>
<td align="center">0.79</td>
<td align="center">Water layer</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Flowchart of stacking generalization method application.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g007.tif"/>
</fig>
<p>
<xref ref-type="table" rid="T8">Table 8</xref> demonstrates that the interpreted conclusion is generally consistent with the oil test conclusion. The highest recognition rate for gas layers in the training samples is 98.7%, while in the test set, it reaches 88.8%. Graphing <xref ref-type="table" rid="T8">Table 8</xref>, it can be seen that the stacked generalization model identifies fluids more effectively than the single model (<xref ref-type="fig" rid="F8">Figure 8</xref>).</p>
<table-wrap id="T8" position="float">
<label>TABLE 8</label>
<caption>
<p>Results of caved-fracture fluid identification for different models.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="center">Model</th>
<th rowspan="2" align="center">Sample type</th>
<th rowspan="2" align="center">Fluid type</th>
<th colspan="3" align="center">Predicted results</th>
<th rowspan="2" align="center">Coincidence rate</th>
</tr>
<tr>
<th align="center">Water</th>
<th align="center">Gas</th>
<th align="center">Gas&#x2013;water</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="8" align="center">
<bold>SVM</bold>
</td>
<td rowspan="4" align="center">Train</td>
<td align="center">Water</td>
<td align="center">6</td>
<td align="center">0</td>
<td align="center">2</td>
<td align="center">0.75</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">1</td>
<td align="center">72</td>
<td align="center">3</td>
<td align="center">0.95</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">1</td>
<td align="center">2</td>
<td align="center">13</td>
<td align="center">0.81</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.91</td>
</tr>
<tr>
<td rowspan="4" align="center">Test</td>
<td align="center">Water</td>
<td align="center">2</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0.67</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">1</td>
<td align="center">15</td>
<td align="center">2</td>
<td align="center">0.83</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">0</td>
<td align="center">2</td>
<td align="center">3</td>
<td align="center">0.60</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.77</td>
</tr>
<tr>
<td rowspan="8" align="center">
<bold>KNN</bold>
</td>
<td rowspan="4" align="center">Train</td>
<td align="center">Water</td>
<td align="center">5</td>
<td align="center">1</td>
<td align="center">2</td>
<td align="center">0.63</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">2</td>
<td align="center">70</td>
<td align="center">4</td>
<td align="center">0.92</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">2</td>
<td align="center">2</td>
<td align="center">12</td>
<td align="center">0.75</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.87</td>
</tr>
<tr>
<td rowspan="4" align="center">Test</td>
<td align="center">Water</td>
<td align="center">2</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0.67</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">0</td>
<td align="center">16</td>
<td align="center">2</td>
<td align="center">0.89</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">3</td>
<td align="center">0.60</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.81</td>
</tr>
<tr>
<td rowspan="8" align="center">
<bold>SGD</bold>
</td>
<td rowspan="4" align="center">Train</td>
<td align="center">Water</td>
<td align="center">6</td>
<td align="center">0</td>
<td align="center">2</td>
<td align="center">0.75</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">2</td>
<td align="center">72</td>
<td align="center">2</td>
<td align="center">0.95</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">0</td>
<td align="center">2</td>
<td align="center">14</td>
<td align="center">0.88</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.92</td>
</tr>
<tr>
<td rowspan="4" align="center">Test</td>
<td align="center">Water</td>
<td align="center">3</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1.00</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">2</td>
<td align="center">14</td>
<td align="center">2</td>
<td align="center">0.78</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">4</td>
<td align="center">0.80</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.81</td>
</tr>
<tr>
<td rowspan="8" align="center">
<bold>DT</bold>
</td>
<td rowspan="4" align="center">Train</td>
<td align="center">Water</td>
<td align="center">4</td>
<td align="center">1</td>
<td align="center">3</td>
<td align="center">0.50</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">3</td>
<td align="center">68</td>
<td align="center">5</td>
<td align="center">0.89</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">1</td>
<td align="center">5</td>
<td align="center">10</td>
<td align="center">0.63</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.82</td>
</tr>
<tr>
<td rowspan="4" align="center">Test</td>
<td align="center">Water</td>
<td align="center">1</td>
<td align="center">0</td>
<td align="center">2</td>
<td align="center">0.33</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">2</td>
<td align="center">12</td>
<td align="center">6</td>
<td align="center">0.60</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">0</td>
<td align="center">2</td>
<td align="center">2</td>
<td align="center">0.50</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.58</td>
</tr>
<tr>
<td rowspan="8" align="center">
<bold>STACK</bold>
</td>
<td rowspan="4" align="center">Train</td>
<td align="center">Water</td>
<td align="center">7</td>
<td align="center">0</td>
<td align="center">1</td>
<td align="center">0.88</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">1</td>
<td align="center">75</td>
<td align="center">0</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">1</td>
<td align="center">2</td>
<td align="center">13</td>
<td align="center">0.81</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.95</td>
</tr>
<tr>
<td rowspan="4" align="center">Test</td>
<td align="center">Water</td>
<td align="center">3</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1.00</td>
</tr>
<tr>
<td align="center">Gas</td>
<td align="center">0</td>
<td align="center">16</td>
<td align="center">2</td>
<td align="center">0.89</td>
</tr>
<tr>
<td align="center">Gas&#x2013;water</td>
<td align="center">1</td>
<td align="center">1</td>
<td align="center">3</td>
<td align="center">0.80</td>
</tr>
<tr>
<td colspan="4" align="center">Overall</td>
<td align="center">0.88</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Graph of fluid identification accuracy of different models: <bold>(A)</bold> accuracy of training sample; <bold>(B)</bold> accuracy of testing sample.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g008.tif"/>
</fig>
<p>The stacking generalization model was used to explain the processing and interpretation of the oil test interval of well CF6 in the study area (<xref ref-type="fig" rid="F9">Figure 9</xref>). For the fluids in different well areas, the stacking generalization fusion model is used to identify the fluids, and the new and old perforated wells are combined with the logging method to identify the fluids. Oil test section: 2,749&#x2013;2,762&#xa0;m, daily gas production is 52,157 cubic meters, and the daily water production is 0t. Since 0 in the model output means that the model has no reasoning, the model output is increased by 1, and the outputs 1, 2, and 3 represent the water layer, gas&#x2013;water layer, and gas layer, respectively. In the 2,749&#x2013;2,754&#xa0;m section, the density log response value decreased, the neutron log response value increased, the resistivity showed a downward trend, and the model inferred that it was a gas layer. In the 2,756&#x2013;2,762.3&#xa0;m section, the density logging response value decreased, the neutron logging response value increased, resistivity showed a downward trend, and the acoustic logging response value was inferred as a gas layer by the model. In the 2,764&#x2013;2,771&#xa0;m section, the density shows a downward trend, the acoustic wave value increases accordingly, the neutron value logging response value increases, and the resistivity shows a gentle downward trend. The model of 2,764&#x2013;2,771&#xa0;m is inferred as a water layer. The model interpretation corresponds to the gas layer and the water layer, respectively, and also corresponds to the gas measurement data. From the oil test interpretation conclusion and the model interpretation conclusion, it can be seen that the model interpretation conclusion is roughly consistent with the oil test conclusion.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Interpretation results of the stacking generalization method in the oil test interval (2,749&#x2013;2,762&#xa0;m) of well CheF6.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g009.tif"/>
</fig>
<p>The stacking generalization method was also used for fluid identification in the CH21100 well area. Fluid identification was performed based on new and old perforated wells combined with logging methods, and a recommended well section was suggested. The mud logging shows that the gas measurement section, which has a thickness of 20&#xa0;m and QL between 2.93% and 8.348%, was interpreted as a gas layer (<xref ref-type="fig" rid="F10">Figure 10</xref>). Oil test section: 1,202&#x2013;1,222&#xa0;m, daily gas production is 62,852 cubic meters; 1,240&#x2013;1,275&#xa0;m, daily gas production is 16,553 cubic meters, and the daily water production is 12.4t. The interpretation of the model suggests that the gas layers are located in the 1,179&#x2013;1,183&#xa0;m, 1,203&#x2013;1,209&#xa0;m, and 1,210&#x2013;1,237&#xa0;m sections, while the gas&#x2013;water layer is in the 1,244&#x2013;1,258&#xa0;m section. These results are consistent with the comprehensive mud logging interpretation and oil testing conclusions.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Comprehensive interpretation results of logging and logging in well CH21100.</p>
</caption>
<graphic xlink:href="feart-11-1216222-g010.tif"/>
</fig>
</sec>
<sec sec-type="conclusion" id="s6">
<title>6 Conclusion</title>
<p>This paper proposes a classification method based on a stacked generalization model to identify caved-fracture fluid properties.<list list-type="simple">
<list-item>
<p>1) Compared to cross-plot and single machine learning discriminative models, the fluid identification method based on stacked generalization models yields superior results and enhances the effectiveness of fluid identification in the caved-fracture reservoirs.</p>
</list-item>
<list-item>
<p>2) The fusion algorithm based on the stacked generalization model can obtain the global optimal parameters through two modes: cascade learning and model fusion, which makes up for the shortcomings of common machine algorithms such as insufficient generalization ability and long training time.</p>
</list-item>
<list-item>
<p>3) The SVM, KNN, stochastic gradient descent, and decision tree algorithm were used as the base learners, a fully connected neural network was used as the meta-learner, the classification loss was used as the cost objective function, the gradient descent method was used to optimize the model parameters, and a stacking generalization model was built for recognition research of the fluid properties of the oil interval in the regional test. The results show that the recognition accuracy rate of the model based on stacking generalization reaches 88%.</p>
</list-item>
<list-item>
<p>4) In practical applications, the lack of coring data, similar mineral composition, and structure of certain rock types can result in errors in the model fluid identification of boundary intervals. To address this deficiency, logging data can be combined to complement the analysis.</p>
</list-item>
</list>
</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/Supplementary Material; further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>JZ: conceptualization, methodology, and writing&#x2014;review and editing. ZL: formal analysis, methodology, and writing&#x2014;original draft preparation. QL: investigation, resources, and validation. WC: supervision and investigation. ZW: visualization and data curation. All authors contributed to the article and approved the submitted version.</p>
</sec>
<sec id="s9">
<title>Funding</title>
<p>This paper was supported by State Key Laboratory of Oil and Gas Reservoir Geology and Exploitation, Southwest Petroleum University. The views expressed are the authors&#x0027; alone.</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>Author QL was employed by CNPC.</p>
<p>The authors declare that this study received funding from the CNPC-SWPU Innovation Consortium Project (2020CX010204). The funder had the following involvement: study design, data collection and analysis.</p>
<p>The remaining 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="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ahmed</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Khalid</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Shafi</surname>
<given-names>H. M. B.</given-names>
</name>
<name>
<surname>Connolly</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>DHI evaluation by combining rock physics simulation and statistical techniques for fluid identification of Cambrian-to-Cretaceous clastic reservoirs in Pakistan</article-title>. <source>Acta geophys.</source> <volume>65</volume>, <fpage>991</fpage>&#x2013;<lpage>1007</lpage>. <pub-id pub-id-type="doi">10.1007/s11600-017-0070-5</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bai</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Guan</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Log interpretation method of resistivity low-contrast oil pays in Chang 8 tight sandstone of Huan Xian area, Ordos Basin by support vector machine</article-title>. <source>Sci. Rep.</source> <volume>12</volume> (<issue>1</issue>), <fpage>1046</fpage>. <pub-id pub-id-type="doi">10.1038/s41598-022-04962-0</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bian</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Volcanic reservoirs fluid identification by neural network based on shear wave log data</article-title>. <source>Well Logging Technol.</source> <volume>37</volume> (<issue>03</issue>), <fpage>264</fpage>&#x2013;<lpage>268</lpage>. <pub-id pub-id-type="doi">10.16489/j.issn.1004-1338.2013.03.015</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Cai</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2021</year>). <source>Research on lithologic identification based on bayesian probability model</source>. <publisher-name>Chang&#x27; an University</publisher-name>.</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cao</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Gong</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Research on lithology identification based on stacking integrated learning</article-title>. <source>Comput. Technol. Dev.</source> <volume>32</volume> (<issue>7</issue>), <fpage>161</fpage>&#x2013;<lpage>166</lpage>. <pub-id pub-id-type="doi">10.3969/j.issn.1673-629X.2022.07.028</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Yin</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Derivation of human-induced pluripotent stem cells in chemically defined medium</article-title>. <source>Special Oil Gas Reserv.</source> <volume>24</volume> (<issue>05</issue>), <fpage>131</fpage>&#x2013;<lpage>137</lpage>. <pub-id pub-id-type="doi">10.1007/978-1-4939-6921-0_9</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dai</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Volcanic lithology and reservoir identification based elastic wave characteristics analysis in Yingcheng Formation, Xujiaweizi Depression</article-title>. <source>Oil Geophys. Prospect.</source> <volume>53</volume> (<issue>01</issue>), <fpage>122</fpage>&#x2013;<lpage>128&#x2b;8</lpage>. <pub-id pub-id-type="doi">10.13810/j.cnki.issn.1000-7210.2018.01.015</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>David</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>1992</year>). <article-title>Stacked generalization</article-title>. <source>Neural Netw.</source> <volume>5</volume> (<issue>02</issue>), <fpage>241</fpage>&#x2013;<lpage>259</lpage>. <pub-id pub-id-type="doi">10.1016/s0893-6080(05)80023-1</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Du</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Nie</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Characterization of thin sand reservoirs based on a multi-layer perceptron deep neural network</article-title>. <source>Oil Geophys. Prospect.</source> <volume>55</volume> (<issue>06</issue>), <fpage>1178</fpage>&#x2013;<lpage>1187&#x2b;1159</lpage>. <pub-id pub-id-type="doi">10.13810/j.cnki.issn.1000-7210.2020.06.002</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Geisser</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>1975</year>). <article-title>The predictive sample reuse method with applications</article-title>. <source>J. Am. Stat. Assoc.</source> <volume>70</volume>, <fpage>320</fpage>&#x2013;<lpage>328</lpage>. <pub-id pub-id-type="doi">10.1080/01621459.1975.10479865</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>He</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Guan</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Characteristics and exploration potential of Carboniferous hydrocarbon plays in Junggar Basin</article-title>. <source>Acta Pet. Sin.</source> <volume>31</volume> (<issue>01</issue>), <fpage>1</fpage>&#x2013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.7623/syxb201001001</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>He</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Gu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xue</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Log interpretation for lithofacies classification with a robust learning model using stacked generalization</article-title>. <source>J. Petroleum Sci. Eng.</source> <volume>214</volume>, <fpage>110541</fpage>. <pub-id pub-id-type="doi">10.1016/j.petrol.2022.110541</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jia</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Experimental study on identification of influencing factors of igneous gas and water layer by longitudinal and shear wave velocities</article-title>. <source>Reserv. Eval. Dev.</source> <volume>8</volume> (<issue>05</issue>), <fpage>8</fpage>&#x2013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.13809/j.cnki.cn32-1825/te.2018.05.002</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Dai</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Elastic parameter tests and characteristics analysis of volcanic rocks in Yingcheng Formation, Northern Songliao Basin</article-title>. <source>Oil Geophys. Prospect.</source> <volume>49</volume> (<issue>05</issue>), <fpage>916</fpage>&#x2013;<lpage>924&#x2b;820</lpage>. <pub-id pub-id-type="doi">10.13810/j.cnki.issn.1000-7210.2014.05.042</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jung</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>A new support vector machine for categorical features</article-title>. <source>Expert Syst. Appl.</source> <volume>229</volume>, <fpage>120449</fpage>. <pub-id pub-id-type="doi">10.1016/j.eswa.2023.120449</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kumar</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Seelam</surname>
<given-names>N. K.</given-names>
</name>
<name>
<surname>Rao</surname>
<given-names>G. S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Lithology prediction from well log data using machine learning techniques: a case study from talcher coalfield, eastern India</article-title>. <source>J. Appl. Geophys.</source> <volume>199</volume>, <fpage>104605</fpage>. <pub-id pub-id-type="doi">10.1016/j.jappgeo.2022.104605</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Lai</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>C.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>Research progress of Nedd4L in cardiovascular diseases</article-title>. <source>Inf. Technol. Inf.</source> <volume>8</volume> (<issue>03</issue>), <fpage>206</fpage>&#x2013;<lpage>209</lpage>. <pub-id pub-id-type="doi">10.1038/s41420-022-01017-1</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Anderson-Sprecher</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Facies identification from well logs: a comparison of discriminant analysis and na&#xef;ve bayes classifier</article-title>. <source>J. Petroleum Sci. Eng.</source> <volume>53</volume>, <fpage>149</fpage>&#x2013;<lpage>157</lpage>. <pub-id pub-id-type="doi">10.1016/j.petrol.2006.06.001</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>L&#xfc;</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Stacked generalization of Heterogeneous classifiers and its application in toxic comments detection</article-title>. <source>Acta Electron. Sin.</source> <volume>47</volume> (<issue>10</issue>), <fpage>2228</fpage>&#x2013;<lpage>2234</lpage>. <pub-id pub-id-type="doi">10.3969/j.issn.0372-2112.2019.10.026</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Maiti</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Tiwari</surname>
<given-names>R. K.</given-names>
</name>
<name>
<surname>K&#xfc;mpel</surname>
<given-names>H. J.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Neural network modelling and classification of lithofacies using well log data: a case study from ktb borehole site</article-title>. <source>Geophys. J. Int.</source> <volume>169</volume> (<issue>02</issue>), <fpage>733</fpage>&#x2013;<lpage>746</lpage>. <pub-id pub-id-type="doi">10.1111/j.1365-246x.2007.03342.x</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Niyogisubizo</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liao</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Nziyumva</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Murwanashyaka</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Nshimyumukiza</surname>
<given-names>P. C.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Predicting student&#x27;s dropout in university classes using two-layer ensemble machine learning approach: a novel stacked generalization</article-title>. <source>Comput. Educ. Artif. Intell.</source> <volume>3</volume>, <fpage>100066</fpage>. <pub-id pub-id-type="doi">10.1016/j.caeai.2022.100066</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pa&#x142;czy&#x144;ski</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Czy&#x17c;ewska</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Tala&#x15b;ka</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Fuzzy Gaussian decision tree</article-title>. <source>J. Comput. Appl. Math.</source> <volume>425</volume>, <fpage>115038</fpage>. <pub-id pub-id-type="doi">10.1016/j.cam.2022.115038</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qin</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Using Stacking model fusion to identify fluid in high-temperature and high-pressure reservoir</article-title>. <source>Oil Geophys. Prospect.</source> <volume>56</volume> (<issue>02</issue>), <fpage>364</fpage>&#x2013;<lpage>371&#x2b;214-215</lpage>. <pub-id pub-id-type="doi">10.13810/j.cnki.issn.1000-7210.2021.02.019</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>The advanced k-nearest neighborhood method used in the recognition of lithology</article-title>. <source>Prog. Geophys.</source> (<issue>02</issue>), <fpage>478</fpage>&#x2013;<lpage>480</lpage>.</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Survey on theory and application of K-nearest neighbor algorithm</article-title>. <source>Comput. Eng. Appl.</source> <volume>53</volume> (<issue>21</issue>), <fpage>1</fpage>&#x2013;<lpage>7</lpage>. <pub-id pub-id-type="doi">10.3778/j.issn.1002-8331.1707-0202</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Shan</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>D. l.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>Z. S.</given-names>
</name>
<etal/>
</person-group> (<year>2008</year>). <article-title>Method for identifying fluid property in volcanite reservoir</article-title>. <source>Oil Geophys. Prospect.</source> <volume>43</volume> (<issue>06</issue>), <fpage>728</fpage>&#x2013;<lpage>732-612&#x2b;742</lpage>. <pub-id pub-id-type="doi">10.3321/j.issn:1000-7210.2008.06.020</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Application of density clustering based K-nearest neighbor method for fluid identification</article-title>. <source>J. China Univ. Petroleum Ed. Nat. Sci.</source> <volume>39</volume> (<issue>5</issue>), <fpage>65</fpage>&#x2013;<lpage>71</lpage>. <pub-id pub-id-type="doi">10.3969/j.issn.1673-5005.2015.05.009</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Convergence of stochastic gradient descent in deep neural network</article-title>. <source>Acta Math. Appl. Sin.</source> <volume>37</volume> (<issue>01</issue>), <fpage>126</fpage>&#x2013;<lpage>136</lpage>. <pub-id pub-id-type="doi">10.1007/s10255-021-0991-2</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Lithology identification method of carbonate reservoir based on capsule network</article-title>. <source>Nat. Gas. Geosci.</source> <volume>32</volume> (<issue>05</issue>), <fpage>685</fpage>&#x2013;<lpage>694</lpage>. <pub-id pub-id-type="doi">10.11764/j.issn.1672-1926.2020.11.018</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). <source>Research on application of deep learning in lithology recognition of oil and gas reservoir</source>. <publisher-name>Lanzhou University of Technology</publisher-name>.</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Jin</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Thin reservoir identification based on logging interpretation by using the support vector machine method</article-title>. <source>Energies</source> <volume>16</volume> (<issue>4</issue>), <fpage>1638</fpage>. <pub-id pub-id-type="doi">10.3390/en16041638</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>A new method for high-precision fluid identification in bidirectional long short-term memory network</article-title>. <source>J. China Univ. Petroleum Ed. Nat. Sci.</source> <volume>45</volume> (<issue>01</issue>), <fpage>69</fpage>&#x2013;<lpage>76</lpage>. <pub-id pub-id-type="doi">10.3969/j.issn.1673-5005.2021.01.008</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>