<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3-mathml3.dtd">
<article article-type="research-article" dtd-version="1.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Mol. Biosci.</journal-id>
<journal-title-group>
<journal-title>Frontiers in Molecular Biosciences</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Mol. Biosci.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2296-889X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1763157</article-id>
<article-id pub-id-type="doi">10.3389/fmolb.2025.1763157</article-id>
<article-version article-version-type="Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Original Research</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>An interpretability heart disease prediction model based on stacking ensemble with SHAP</article-title>
<alt-title alt-title-type="left-running-head">Chen 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/fmolb.2025.1763157">10.3389/fmolb.2025.1763157</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" equal-contrib="yes">
<name>
<surname>Chen</surname>
<given-names>Yanjie</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="author-notes" rid="fn001">
<sup>&#x2020;</sup>
</xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
</contrib>
<contrib contrib-type="author" equal-contrib="yes">
<name>
<surname>Chong</surname>
<given-names>Liqiang</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="author-notes" rid="fn001">
<sup>&#x2020;</sup>
</xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing &#x2013; review and editing</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Bao</surname>
<given-names>Zhenghao</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing &#x2013; review and editing</role>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Wang</surname>
<given-names>Shaoqiang</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2869457"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Yuchen</given-names>
</name>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing &#x2013; review and editing</role>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Feng</surname>
<given-names>Yanan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1895570"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Formal analysis" vocab-term-identifier="https://credit.niso.org/contributor-roles/formal-analysis/">Formal Analysis</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Funding acquisition" vocab-term-identifier="https://credit.niso.org/contributor-roles/funding-acquisition/">Funding acquisition</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing &#x2013; review and editing</role>
</contrib>
</contrib-group>
<aff id="aff1">
<label>1</label>
<institution>Department of Abdominal Ultrasound, The Affiliated Hospital of Qingdao University</institution>, <city>Qingdao</city>, <country country="CN">China</country>
</aff>
<aff id="aff2">
<label>2</label>
<institution>Department of Urology, The Affiliated Hospital of Qingdao University</institution>, <city>Qingdao</city>, <country country="CN">China</country>
</aff>
<aff id="aff3">
<label>3</label>
<institution>School of Information and Control Engineering, Qingdao University of Technology</institution>, <city>Qingdao</city>, <country country="CN">China</country>
</aff>
<aff id="aff4">
<label>4</label>
<institution>School of Science, Qingdao University of Technology</institution>, <city>Qingdao</city>, <country country="CN">China</country>
</aff>
<author-notes>
<corresp id="c001">
<label>&#x2a;</label>Correspondence: Yanan Feng, <email xlink:href="mailto:yananfeng0601@163.com">yananfeng0601@163.com</email>; Shaoqiang Wang, <email xlink:href="mailto:wangshaoqiang@qut.edu.cn">wangshaoqiang@qut.edu.cn</email>
</corresp>
<fn fn-type="equal" id="fn001">
<label>&#x2020;</label>
<p>These authors have contributed equally to this work</p>
</fn>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2026-02-20">
<day>20</day>
<month>02</month>
<year>2026</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2025</year>
</pub-date>
<volume>12</volume>
<elocation-id>1763157</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>12</month>
<year>2025</year>
</date>
<date date-type="rev-recd">
<day>27</day>
<month>12</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>29</day>
<month>12</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2026 Chen, Chong, Bao, Wang, Wang and Feng.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>Chen, Chong, Bao, Wang, Wang and Feng</copyright-holder>
<license>
<ali:license_ref start_date="2026-02-20">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. 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.</license-p>
</license>
</permissions>
<abstract>
<sec>
<title>Introduction</title>
<p>In the big data era, healthcare data has grown exponentially, presenting opportunities to explore the pathogenesis of heart disease. Clarifying the correlations between health indicators and heart disease is crucial for early prevention. This study employs ensemble learning to identify the key influencing factors, assisting clinicians in understanding the pathogenesis and enhancing prediction strategies.</p>
</sec>
<sec>
<title>Methods</title>
<p>A two-layer stacking ensemble model is proposed, integrating Naive Bayes, Decision Trees, CatBoost and Gradient Boosting Trees to enhance prediction accuracy. To address ensemble models&#x2019; complexity and poor interpretability, the SHAP technique is introduced to visualize the decision-making logic of the ensemble model.</p>
</sec>
<sec>
<title>Results</title>
<p>Experimental results show that the stacking model achieved 86.69% accuracy, 87.14% weighted precision, 86.69% weighted recall, and 86.91% weighted F1-score. It balances precision and recall, unlike single learners that prioritize one over the other. Global interpretive analysis demonstrates that age, sleep duration, self-rated health status and BMI are critical factors in assessing cardiovascular risk. Local interpretive analysis is conducted to evaluate the contribution of each feature to the prediction results of individual samples.</p>
</sec>
<sec>
<title>Discussion</title>
<p>The stacking model&#x2019;s superior performance demonstrates that ensemble learning can overcome the limitations of single learners. Additionally, key predictive factors are identified: maintaining an average sleep duration of 7-8 hours significantly reduces heart disease risk, while advanced age and poor health status increase susceptibility. This study provides a reliable predictive tool for personalized heart disease prevention and treatment.</p>
</sec>
</abstract>
<kwd-group>
<kwd>classifier</kwd>
<kwd>heart disease</kwd>
<kwd>interpretability</kwd>
<kwd>SHAP</kwd>
<kwd>stacking ensemble</kwd>
</kwd-group>
<funding-group>
<funding-statement>The author(s) declared that financial support was received for this work and/or its publication. This study was supported by the Clinical Medicine &#x2b; X Scientific Research Project of the Affiliated Hospital of Qingdao University (No.QDFY-X2024214).</funding-statement>
</funding-group>
<counts>
<fig-count count="13"/>
<table-count count="7"/>
<equation-count count="5"/>
<ref-count count="30"/>
<page-count count="00"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Molecular Diagnostics and Therapeutics</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<label>1</label>
<title>Introduction</title>
<p>Nowadays, heart-related diseases are the leading cause of death worldwide. A World Health Organization report estimates that cardiovascular diseases account for approximately 17.9 million deaths globally each year (<xref ref-type="bibr" rid="B18">Martin et al., 2024</xref>). Accurate and reliable detection of heart disease is crucial for preventing complications and enhancing cardiovascular safety. Early prediction of heart diseases can help avert or mitigate their impacts, thereby reducing mortality rates. Conventional heart disease diagnostic techniques such as reviewing patients&#x2019; medical histories, analyzing physical examination results, and evaluating relevant physiological systems&#x2014;are often costly and computationally intensive (<xref ref-type="bibr" rid="B12">Khan et al., 2024</xref>), particularly in regions lacking state-of-the-art technologies and qualified medical professionals (<xref ref-type="bibr" rid="B27">Yash et al., 2024</xref>).</p>
<p>Medical organizations collect data on various health-related issues, which was then utilized to gain valuable insights through diverse machine learning techniques. Some researches (<xref ref-type="bibr" rid="B21">Pahwa and Kumar, 2017</xref>; <xref ref-type="bibr" rid="B7">Chandrasekhar and Peddakrishna, 2023</xref>; <xref ref-type="bibr" rid="B5">Ba et al., 2023</xref>; <xref ref-type="bibr" rid="B17">Mahesh et al., 2022</xref>; <xref ref-type="bibr" rid="B26">Srinivasu et al., 2024</xref>; <xref ref-type="bibr" rid="B23">Rimal and Sharma, 2023</xref>; <xref ref-type="bibr" rid="B2">Albert et al., 2023</xref>; <xref ref-type="bibr" rid="B8">Dalal et al., 2023</xref>; <xref ref-type="bibr" rid="B11">Khan et al., 2023</xref>; <xref ref-type="bibr" rid="B28">Yongcharoenchaiyasit et al., 2023</xref>) were carried out to make predictions more accurate, aiming to save the lives of many precious individuals. For example, to improve the prediction accuracy of models, <xref ref-type="bibr" rid="B21">Pahwa and Kumar (2017)</xref> used random forest and Naive Bayes model to predict heart disease and proposed a new feature selection method that combines the gain ratio and the recursive feature elimination SVM algorithm. This method assigns weights to each feature, removes features with low value, and allows high-value features to have a greater influence on disease prediction. <xref ref-type="bibr" rid="B7">Chandrasekhar and Peddakrishna (2023)</xref> employed six machine learning algorithms&#x2014;random forest, KNN, logistic regression, Naive Bayes, Gradient Boosting Decision Tree(GBDT), and AdaBoost&#x2014;to perform predictions on two public datasets: the Cleveland dataset and the IEEE Dataport dataset. Results showed that logistic regression achieved 90.16% accuracy on the Cleveland dataset, while AdaBoost attained 90% accuracy on the IEEE Dataport dataset. <xref ref-type="bibr" rid="B5">Ba et al. (2023)</xref> developed an early detection model for heart disease. During preprocessing, missing values were filled using mean interpolation. GBDT model incorporating all features was trained, followed by SHapley Additive exPlanations (SHAP) analysis to identify the most significant contributors to the outcomes. The final features were selected based on SHAP values exceeding 0.1. <xref ref-type="bibr" rid="B17">Mahesh et al. (2022)</xref> employed the AdaBoost ensemble algorithm and K-fold cross-validation, supplemented by SMOTE to address data imbalance and noise. The results demonstrated that the model achieved the highest accuracy rate of 95.47%. <xref ref-type="bibr" rid="B26">Srinivasu et al. (2024)</xref> constructed five models including random forest, XGBoost, logistic regression, SVM and artificial neural network to predict heart disease and verified the harm of data leakage caused by sampling on the complete dataset. <xref ref-type="bibr" rid="B23">Rimal and Sharma (2023)</xref> employed different optimization techniques, such as Bayesian optimization, optuna optimization, and GA search, utilizing 5 and 10 generations with Random Forest and SVM. They achieved the highest accuracies of 86.6%, 89%, and 90% respectively.</p>
<p>Machine learning models are prone to overfitting. In contrast, deep learning has been extensively explored and validated for its effectiveness in heart disease diagnosis (<xref ref-type="bibr" rid="B1">Ahmad et al., 2023</xref>; <xref ref-type="bibr" rid="B14">Liu et al., 2018</xref>; <xref ref-type="bibr" rid="B25">Shaheen et al., 2024</xref>; <xref ref-type="bibr" rid="B3">Ali et al., 2020</xref>; <xref ref-type="bibr" rid="B4">Alqahtani et al., 2022</xref>; <xref ref-type="bibr" rid="B19">Medina-Inojosa et al., 2024</xref>). Ahmad et al. (<xref ref-type="bibr" rid="B1">Ahmad et al., 2023</xref>) proposed a hybrid deep learning model based on Bidirectional Long Short-Term Memory (BLSTM) for cardiovascular disease prediction. Recursive Feature Elimination (RFE) was employed to select optimal features. The proposed hybrid model achieved an accuracy of 94.507% and an F1-score of 94%. <xref ref-type="bibr" rid="B14">Liu et al. (2018)</xref> developed a CNN-RNN hybrid model, which achieved a promising F1-score of 93.6% in the early prediction of acute myocardial infarction by fusing ECG signal sequences and clinical imaging features. While the hybrid architecture validates the effectiveness of multimodal feature fusion for cardiovascular disease diagnosis, a more robust and clinically interpretable solution can be achieved by leveraging ensemble strategies combined with artificial intelligence. Ensemble models integrated with explainable technologies enable healthcare professionals to rapidly identify heart disease patients, facilitating early diagnosis and intervention to reduce cardiovascular risks.</p>
<p>In this manuscript, we investigate the effectiveness of various machine learning algorithms and implement different ensemble techniques to improve the accuracy of heart disease prediction. Specifically, we utilize four machine learning methods&#x2014;Naive Bayes (NB) (<xref ref-type="bibr" rid="B13">Liu and Zhang, 2020</xref>), Categorical Boosting (CatBoost) (<xref ref-type="bibr" rid="B29">Zhang et al., 2020</xref>), Decision Tree (DT) (<xref ref-type="bibr" rid="B10">Jabeur et al., 2021</xref>), and Gradient Boosting Tree (GB) (<xref ref-type="bibr" rid="B9">Friedman, 2001</xref>) to train and evaluate models, derive actionable insights, visualize results, interpret outcomes using SHAP (<xref ref-type="bibr" rid="B15">Lundberg and Lee, 2017</xref>; <xref ref-type="bibr" rid="B16">Lundberg et al., 2020</xref>; <xref ref-type="bibr" rid="B22">Ponce-Bobadilla et al., 2024</xref>), and achieve optimal performance in heart disease prediction. Experimental results demonstrate that our proposed model achieves higher accuracy than all baseline classifiers. The following are the findings of this research:<list list-type="order">
<list-item>
<p>We propose a stacking ensemble model using NB, CatBoost, DT, and GB for the prediction of heart disease.</p>
</list-item>
<list-item>
<p>We perform soft voting and compare the results with our proposed stacking model.</p>
</list-item>
<list-item>
<p>An explainable technique, SHAP is used to understand the contribution of features in the heart disease predictions of our proposed model.</p>
</list-item>
</list>
</p>
</sec>
<sec sec-type="methods" id="s2">
<label>2</label>
<title>Methods</title>
<sec id="s2-1">
<label>2.1</label>
<title>Base classifier</title>
<p>Naive Bayes (NB) Classifier operates based on Bayes&#x2019; theorem, which quantifies the probability of a class label given a set of input features. The &#x201c;naive&#x201d; characteristic of the algorithm stems from its core assumption: all features are conditionally independent of one another when the class label is known. The classifier first learns from labeled training data to compute prior probabilities and class-conditional probabilities. When predicting the class of a new sample, the NB classifier calculates the posterior probability of the sample belonging to each possible class using the learned probabilities, and then assigns the sample to the class with the highest posterior probability.</p>
<p>Decision Tree (DT) is a tree-like structure that embodies a sequential decision-making process. It starts with a root node, and recursive partitioning proceeds until all training samples within a node belong to the same class. There are various types of DTs, including ID3, C4.5, ID5.0, and CART, each based on different attribute selection criteria. A key challenge in DT construction is determining the optimal attribute for both the root node and its sub-nodes. ID3 is one of the most widely used DT variants, which employs Information Gain (IG)&#x2014;a metric derived from the concept of entropy&#x2014;as its attribute selection measure.</p>
<p>Gradient Boosting (GB) consists of three core components: an additive model, a loss function, and weak learners. The fundamental idea of GB is to combine multiple weak learners to form a strong predictive model. In each iteration, each subsequent weak learner learns from the errors of the previous one, thereby reducing the overall prediction error. This error correction is achieved by updating weights at each step, and the iterative process continues until the loss function is minimized.</p>
<p>CatBoost is a gradient boosting algorithm specifically designed to handle categorical data efficiently. It adopts ordered boosting to process categorical features directly, resulting in faster training speeds and enhanced model performance. Unlike other boosting methods, CatBoost generates symmetric trees, which reduces prediction time, improves accuracy, and mitigates overfitting through regularization. Additionally, CatBoost can handle various types of features, including numerical, categorical, and text data.</p>
</sec>
<sec id="s2-2">
<label>2.2</label>
<title>Stacking algorithm</title>
<p>Stacking is a hierarchical ensemble learning algorithm that constructs a more powerful integrated model (<xref ref-type="bibr" rid="B20">Meharie et al., 2022</xref>) by stacking multiple base learners with a meta-layer learner. Unlike Bagging and Boosting, Stacking focuses on optimizing the fusion of predictions from different models to achieve higher accuracy.</p>
<p>Instead of using a single model, we can combine the predictions from the multiple models on the basis of majority of voting for each of the output class. The voting algorithm makes more accurate final predictions by synthesizing the results of multiple independent models. Usually, the voting algorithm operates in hard voting and soft voting. As hard voting, each base model independently submits a single prediction, and the class with the highest votes is ultimately accepted as the unified conclusion. In contrast, soft voting employs a probability fusion strategy. The stacking algorithm operates as follows:<list list-type="simple">
<list-item>
<p>
<bold>Step1.</bold> Divide the dataset into training set <italic>A</italic> and testing set <italic>B.</italic>
</p>
</list-item>
<list-item>
<p>
<bold>Step2.</bold> Perform five-fold cross-validation on the m base learners: split training set A into five mutually exclusive subsets of similar size. Sequentially select one subset as the validation set and the remaining four as the training set. Train the base learners and generate validation set predictions <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, &#x22ef;, <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. After fitting each base learner, generate test set predictions <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, &#x22ef;, <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> from testing set <italic>B.</italic>
</p>
</list-item>
<list-item>
<p>
<bold>Step3.</bold> Use the validation set predictions <inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, &#x22ef;, <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as the training set for the meta-learner. After fitting the meta-learner, feed the test set predictions <inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, &#x22ef;, <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> into the meta-learner to produce the final prediction outcome.</p>
</list-item>
</list>
</p>
<p>The flowchart of the Stacking algorithm is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Stacking method flowchart.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g001.tif">
<alt-text content-type="machine-generated">Diagram illustrating a machine learning process with cross-validation. The training set is divided into folds, shown as blue and orange sections. Each fold is used in training base learners, from Base Learner 1 to Base Learner n. Outputs are combined by a Meta-Learner to produce the final prediction result. Arrows indicate data flow direction.</alt-text>
</graphic>
</fig>
<p>Our proposed stacking model consists of four classifiers: DT, NB, GB and CatBoost. It is difficult to handle high dimensional data with DT and NB works well with high dimensional data due to its naive assumptions. GB has an overfitting due to target leakage problem and CatBoost can handle this problem by using several permutations of the training dataset. So, the stack of these classifiers gives more accurate results. The step of our proposed stacking model is given in <xref ref-type="table" rid="T1">Table 1</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Stacking ensemble algorithm for heart disease prediction.</p>
</caption>
<table>
<tbody valign="top">
<tr>
<td align="left">
<bold>Input: Dataset</bold> <inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>, Number of folds</bold> <inline-formula id="inf14">
<mml:math id="m14">
<mml:mrow>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">
<bold>Output: Trained stacking model</bold> <inline-formula id="inf15">
<mml:math id="m15">
<mml:mrow>
<mml:mi mathvariant="bold-italic">S</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">1  Split the dataset <inline-formula id="inf16">
<mml:math id="m16">
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> into <inline-formula id="inf17">
<mml:math id="m17">
<mml:mrow>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> folds</td>
</tr>
<tr>
<td align="left">2  for each fold from 1 to <inline-formula id="inf18">
<mml:math id="m18">
<mml:mrow>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> do</td>
</tr>
<tr>
<td align="left">3    Split the dataset into training set <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>train</bold>
</sub> and validation set <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>val</bold>
</sub>
</td>
</tr>
<tr>
<td align="left">4      for each base learner B<sub>i</sub> in B do</td>
</tr>
<tr>
<td align="left">5          Base model training and prediction</td>
</tr>
<tr>
<td align="left">6            if B<sub>i</sub> is Na&#xef;ve Bayes then</td>
</tr>
<tr>
<td align="left">7              Calculate prior probability for each class in <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>train</bold>
</sub>
</td>
</tr>
<tr>
<td align="left">8              Calculate likelihood of features given in each class</td>
</tr>
<tr>
<td align="left">9              Use Bayes theorem to calculate posterior probabilities for <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>val</bold>
</sub>
</td>
</tr>
<tr>
<td align="left">10              Assign class labels based on probabilities to each instance in <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>val</bold>
</sub>
</td>
</tr>
<tr>
<td align="left">11                  Get prediction <inline-formula id="inf19">
<mml:math id="m19">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>K</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">12          else if <inline-formula id="inf20">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is Categorial boosting (CatBoost) then</td>
</tr>
<tr>
<td align="left">13                Initialize CatBoost model with default parameters</td>
</tr>
<tr>
<td align="left">14              Train model on <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>train</bold>
</sub> using boosting iteration</td>
</tr>
<tr>
<td align="left">15                    For each instance in <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>val</bold>
</sub>, compute weighted sum of trees</td>
</tr>
<tr>
<td align="left">16                  Apply sigmoid function to get probabilities</td>
</tr>
<tr>
<td align="left">17                  Assign class labels based on probabilities</td>
</tr>
<tr>
<td align="left">18                      Get prediction <inline-formula id="inf21">
<mml:math id="m21">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">19          else if <inline-formula id="inf22">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is decision tree then</td>
</tr>
<tr>
<td align="left">20                  Build decision tree using training set <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>train</bold>
</sub> by selecting best feature</td>
</tr>
<tr>
<td align="left">21                  Prone tree to avoid overfitting</td>
</tr>
<tr>
<td align="left">22          For each instance in <bold>D</bold>
<sup>
<bold>K</bold>
</sup>
<sub>
<bold>val</bold>,</sub> traverse tree from root to leaf based on feature              values</td>
</tr>
<tr>
<td align="left">23            Assign class labels at leaf node</td>
</tr>
<tr>
<td align="left">24            Get prediction <inline-formula id="inf23">
<mml:math id="m23">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">25        end if</td>
</tr>
<tr>
<td align="left">26      end for</td>
</tr>
<tr>
<td align="left">27        Concatenate predictions <inline-formula id="inf24">
<mml:math id="m24">
<mml:mrow>
<mml:msup>
<mml:mi>P</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> &#x3d; {<inline-formula id="inf25">
<mml:math id="m25">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf26">
<mml:math id="m26">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>,&#x2026;, <inline-formula id="inf27">
<mml:math id="m27">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>}</td>
</tr>
<tr>
<td align="left">28        Meta model training</td>
</tr>
<tr>
<td align="left">29          Use concatenated prediction <inline-formula id="inf28">
<mml:math id="m28">
<mml:mrow>
<mml:msup>
<mml:mi>P</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> as input features</td>
</tr>
<tr>
<td align="left">30        Train meta learner M (gradient boosting) on <inline-formula id="inf29">
<mml:math id="m29">
<mml:mrow>
<mml:msup>
<mml:mi>P</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">31        Get meta model prediction <inline-formula id="inf30">
<mml:math id="m30">
<mml:mrow>
<mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">32        end for</td>
</tr>
<tr>
<td align="left">33        return final predictions <inline-formula id="inf31">
<mml:math id="m31">
<mml:mrow>
<mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s2-3">
<label>2.3</label>
<title>SHAP</title>
<p>SHAP is a key methodology for interpreting machine learning model predictions. Its theoretical foundation stems from mathematician Shapleys value allocation theory in cooperative game theory, which uses Shapley values to quantify each participants marginal contribution to total payoff and determine their respective shares. In machine learning model interpretation, model predictions are treated as total payoff, with each feature acting as a participant. The Shapley value measures each features contribution to the prediction. The mathematical formula for Shapley values is provided in <xref ref-type="disp-formula" rid="e1">Equation 1</xref>.<disp-formula id="e1">
<mml:math id="m32">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mo>&#x2286;</mml:mo>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:munder>
</mml:mstyle>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>!</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2010;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mo>&#x222a;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<p>The core principle of SHAP is to quantify each features marginal contribution to the models predictions, then compute a weighted average of these contributions to interpret the models output. The SHAP calculation process is as follows:<list list-type="order">
<list-item>
<p>Generate all possible feature subsets by combinatorial arrangements of all features in the feature space.</p>
</list-item>
<list-item>
<p>For each feature, calculate its marginal contribution across different feature combinations, i.e., the difference in model predictions when the feature is included <italic>versus</italic> when it is excluded.</p>
</list-item>
<list-item>
<p>Calculate SHAP value of a feature by weighting and averaging its marginal contribution across all feature combinations.</p>
</list-item>
</list>
</p>
<p>SHAP interprets individual sample predictions to reveal why the model made specific predictions, offering detailed explanations for each sample point. By aggregating SHAP values across multiple samples, it can identify overall feature importance, delivering comprehensive model explanations. SHAP values visually demonstrate each features impact on predictions, making decision-making processes in complex black-box models like neural networks and ensemble learning more transparent and understandable, thereby enhancing model trust.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Experiment results</title>
<sec id="s3-1">
<label>3.1</label>
<title>Datasets</title>
<p>This research utilizes the U.S. Behavioral Risk Factor Surveillance System (BRFSS) data, which systematically collected American citizens&#x2019; health information through telephone interviews in 2020. The officially preprocessed dataset of key personal indicators from the 2020 BRFSS was downloaded from Kaggle (<ext-link ext-link-type="uri" xlink:href="https://www.kaggle.com/datasets">https://www.kaggle.com/datasets</ext-link>). The dataset consists of 319,795 samples, 17 variables, and 1 target variable. The analysis shows that among the 17 variables, there is 1 continuous variable, 3 discrete variables, 9 binary variables, 2 multi-class nominal variables, and 2 multi-class ordinal variables. The details of the dataset variables are shown in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Description of variables of the dataset.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Variable name</th>
<th align="center">Variable explain</th>
<th align="center">Type of variable</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">HeartDisease</td>
<td align="center">Do you have heart disease</td>
<td align="center">Target variable</td>
</tr>
<tr>
<td align="center">BMI</td>
<td align="center">Body mass index</td>
<td align="left">Continuous variable</td>
</tr>
<tr>
<td align="center">Smoking</td>
<td align="center">Smoking status</td>
<td align="center">Binary variable</td>
</tr>
<tr>
<td align="center">AlcoholDrinking</td>
<td align="center">Drinking</td>
<td align="center">Binary variable</td>
</tr>
<tr>
<td align="center">Stroke</td>
<td align="center">Stroke</td>
<td align="center">Binary variable</td>
</tr>
<tr>
<td align="center">PhysicalHealth</td>
<td align="left">Number of days with physical discomfort in last 30 days</td>
<td align="center">Discrete variable</td>
</tr>
<tr>
<td align="center">MentalHealth</td>
<td align="left">Number of days with psychological issues in last 30 days</td>
<td align="center">Discrete variable</td>
</tr>
<tr>
<td align="center">Sex</td>
<td align="center">Sex</td>
<td align="center">Binary variable</td>
</tr>
<tr>
<td align="center">AgeCategory</td>
<td align="center">Age category</td>
<td align="center">Multicategorical ordered variable</td>
</tr>
<tr>
<td align="center">Race</td>
<td align="center">Race</td>
<td align="center">Multicategorical nominal variable</td>
</tr>
<tr>
<td align="center">Diabetic</td>
<td align="center">Diabetes mellitus</td>
<td align="center">Multicategorical nominal variable</td>
</tr>
<tr>
<td align="center">PhysicalActivity</td>
<td align="center">Have you exercised in the last 30 days</td>
<td align="center">Binary variable</td>
</tr>
<tr>
<td align="center">GenHealth</td>
<td align="center">Overall health status</td>
<td align="center">Multicategorical ordered variable</td>
</tr>
<tr>
<td align="center">SleepTime</td>
<td align="center">Average sleep duration</td>
<td align="center">Discrete variable</td>
</tr>
<tr>
<td align="center">Asthma</td>
<td align="center">Asthma</td>
<td align="center">Binary variable</td>
</tr>
<tr>
<td align="center">KidneyDisease</td>
<td align="center">KD</td>
<td align="center">Binary variable</td>
</tr>
<tr>
<td align="center">SkinCancer</td>
<td align="center">Cutaneum carcinoma</td>
<td align="center">Binary variable</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3-2">
<label>3.2</label>
<title>Data preprocessing</title>
<sec id="s3-2-1">
<label>3.2.1</label>
<title>Feature encoding</title>
<p>The dataset comprises 17 categorical variables and 1 categorical target variable, all requiring encoding. The target variable heart disease has two categories: Yes (indicating heart disease) and No (indicating no heart disease). Categorical variables include AgeCategory, Race (American Indian/Alaskan Native, Asian, Black, Hispanic, White, Other), Diabetic (No, No (borderline diabetes),GenHealth (Excellent, Very good, Good, Fair, Poor), and Sex (Female and Male). The categorical variables Smoking, Alcohol Drinking, Physical Activity, Stroke, Skin Cancer, Asthma, Kidney Disease, and Diff Walking all have two categories: Yes and No, representing yes and no respectively.</p>
<p>We employ distinct encoding schemes for different variable types to preserve data structure characteristics and enhance model performance. For ordered multinomial variables, the ordinal relationships between categories significantly impact model performance and interpretability, necessitating their retention. Therefore, label encoding is applied to these variables, mapping categories to an ordered numerical scale. The GenHealth variables values (Poor, Fair, Good, Very good, Excellent) are sequentially coded as 0&#x2013;4. The Age Category variables 13 age brackets are coded in ascending order as 0&#x2013;12. For nominal multinomial variables without ordinal or hierarchical distinctions, label encoding is adopted to minimize additional dimensionality. This approach is particularly suitable for unordered variables where ordinal relationships have minimal impact, as distance-based machine learning models are not utilized. The Diabetic variables values (No, No (borderline diabetes), Yes, Yes (during pregnancy)) are coded as 0&#x2013;4. The Race variables values (American Indian/Alaskan Native, Asian, Black, Hispanic, White, Other) are assigned numerical values from 0 to 5. For binary variables with only two possible values, this manuscript applies one-hot encoding and removes redundant feature columns. The variable Sex is coded as 1 for male and 0 for female. The categorical variables Smoking, Alcohol Drinking, Stroke, Difficulty Walking, Physical Activity, Asthma, Kidney Disease, and Skin Cancer, along with the target variable heart disease, are coded as 1 for yes and 0 for no.</p>
</sec>
<sec id="s3-2-2">
<label>3.2.2</label>
<title>Data cleaning</title>
<p>The dataset used in this research contains no missing values, thus no treatment is required for them. While some features exhibit outliers, these are retained given the physiological individual variations among samples. Numerical data undergo normalization to eliminate unit and dimensionality effects.</p>
</sec>
<sec id="s3-2-3">
<label>3.2.3</label>
<title>Data visualization analysis</title>
<p>The distribution of the continuous variable BMI in the dataset. As shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, most participants in the dataset have a body mass index (BMI) between 18 and 34. Those with lower BMI tend to have fewer heart disease cases, while the obese group with a BMI between 28 and 24 shows a higher incidence of heart disease.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>BMI stacked column chart.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g002.tif">
<alt-text content-type="machine-generated">Histogram showing the BMI distribution among individuals with and without heart disease. The blue bars represent those without heart disease, displaying a higher density around a BMI of 30. The orange bars, indicating individuals with heart disease, show a lower density across all BMI levels.</alt-text>
</graphic>
</fig>
<p>The data reveals that approximately two-fifths of participants in this research are smokers, while three-fifths are non-smokers. HD patients show a higher prevalence of smoking compared to non-smokers. Regarding alcohol consumption, about one in ten individuals drink, whereas nine in ten abstain, with fewer heart disease patients consuming alcohol. Approximately one in five individuals experience walking difficulties, compared to four in five who do not. Gender-wise, the male-to-female ratio in the dataset is roughly 10:9, with slightly more male heart disease patients.</p>
<p>Then we employs Pearson correlation (<xref ref-type="bibr" rid="B6">Bonett and Wright, 2000</xref>) analysis to assess the correlation between variables, as mathematically expressed in <xref ref-type="disp-formula" rid="e2">Equation 2</xref>.<disp-formula id="e2">
<mml:math id="m33">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>X</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>Y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>X</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>Y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>X</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>Y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mi>Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>X</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:msqrt>
<mml:msqrt>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>Y</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>The numerical characteristics of this statistic carry clear interpretive significance: positive coefficients indicate a trend of co-directional movement between variables, while negative coefficients reflect inverse correlations, with the absolute values directly proportional to the strength of the linear relationship. As shown in <xref ref-type="fig" rid="F3">Figure 3</xref>, this correlation is visually demonstrated through heat maps.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Correlation Coefficient Heat Map The heat map reveals strong positive correlations between AgeCategory, Stroke, DiffWalking, PhysicalHealth, and Diabetic, while GenHealth shows a strong negative correlation with heart disease.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g003.tif">
<alt-text content-type="machine-generated">Correlation matrix heatmap displaying relationships between various health-related variables. Positive correlations are shown in red, negative in blue, with intensity indicating strength. Key variables include Heart Disease, BMI, Smoking, Alcohol Drinking, Stroke, and more. Color scale indicates correlation values from -1 to 1.</alt-text>
</graphic>
</fig>
</sec>
<sec id="s3-2-4">
<label>3.2.4</label>
<title>Feature selection</title>
<p>Proper feature selection can reduce dimensionality, improve model training efficiency, and enhance generalization capabilities. The feature selection results in this manuscript should simultaneously meet the requirements of each base learner in the Stacking integration model. Therefore, we employ three feature importance evaluation methods based on Naive Bayes, built-in feature importance in decision tree models, and built-in feature importance in CatBoost models to identify the common key features shared by these three base learners.</p>
<p>This research calculated the average permutation-based feature importance of Naive Bayes model and DT model using five-fold cross-validation, with results shown in <xref ref-type="fig" rid="F4">Figures 4</xref>, <xref ref-type="fig" rid="F5">5</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Importance ranking of permutation features based on NB.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g004.tif">
<alt-text content-type="machine-generated">Bar chart showing feature importance in a Naive Bayes model with five-fold cross-validation. The most significant features are AgeCategory with 0.0518 importance, and GenHealth with 0.0334, followed by AlcoholDrinking at 0.0139. The least significant features include Smoking and SleepTime, among others, with negative values.</alt-text>
</graphic>
</fig>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Feature importance ranking diagram based on decision tree.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g005.tif">
<alt-text content-type="machine-generated">Bar chart showing feature importance in a decision tree with five-fold cross-validation. GenHealth, BMI, and AgeCategory are the top three features with importance scores of 0.2429, 0.2200, and 0.1932, respectively. Other features include SleepTime, PhysicalHealth, and MentalHealth down to KidneyDisease with decreasing importance.</alt-text>
</graphic>
</fig>
<p>It is found that the feature importance ranking is different of the two models. NB is a probabilistic model, and its top feature is AgeCategory with feature importance 0.0518. While DT are tree-based models and its top feature is GenHealth with feature importance 0.2429. Uniform feature selection may remove sensitive features of some learners, thereby weakening their advantages. The decision to use the original feature space for training enables differentiated modeling through the base learner&#x2019;s self-driven feature selection mechanism, thereby enhancing its diversity.</p>
</sec>
</sec>
<sec id="s3-3">
<label>3.3</label>
<title>Evaluation indicators</title>
<p>A confusion matrix is a tool for evaluating the performance of classification models, presenting the comparison between predicted and actual categories in a tabular format. For binary classification tasks, the composition of a confusion matrix is shown in <xref ref-type="table" rid="T3">Table 3</xref>.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Confusion matrix.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Actual condition</th>
<th align="center">Positive prediction</th>
<th align="center">Negative prediction</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Actual is positive</td>
<td align="center">TP</td>
<td align="center">FN</td>
</tr>
<tr>
<td align="center">Actual value is negative</td>
<td align="center">FP</td>
<td align="center">TN</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Accuracy measures the proportion of correctly predicted samples relative to the total sample size. When positive and negative samples are nearly equal in a dataset, accuracy effectively reflects the models overall performance. However, it becomes unreliable in cases of severe class imbalance. The calculation method for accuracy is shown in <xref ref-type="disp-formula" rid="e3">Formula 3</xref> (<xref ref-type="bibr" rid="B30">Zhang et al., 2023</xref>).<disp-formula id="e3">
<mml:math id="m34">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>N</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>N</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>In medical diagnosis, where a single incorrect prediction can have severe consequences, high precision is particularly crucial. The precision rate is calculated as shown in <xref ref-type="disp-formula" rid="e4">Formula 4</xref>:<disp-formula id="e4">
<mml:math id="m35">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</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:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>Recall rate, also known as true rate or recall, measures the proportion of positive samples correctly predicted by the model from the actual positive class. It focuses on how many positive samples the model can retrieve. In medical diagnosis, recall rate is a crucial metric. The calculation method is shown in <xref ref-type="disp-formula" rid="e5">Formula 5</xref>:<disp-formula id="e5">
<mml:math id="m36">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>l</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>N</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-4">
<label>3.4</label>
<title>Parameter selection</title>
<p>To mitigate overfitting, this study employs 5-fold cross-validation and grid search to optimize parameters in the DT Classifier. The evaluation metrics include accuracy, precision, recall, and F1 score, with accuracy as the primary metric. The optimized parameters are presented in <xref ref-type="table" rid="T4">Table 4</xref>.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Classifier optimal parameter of DT.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Parameter</th>
<th align="center">Optimal value</th>
<th align="center">Illustration</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Criterion</td>
<td align="center">Gini</td>
<td align="center">Measure the partition quality of tree model</td>
</tr>
<tr>
<td align="center">max_depth</td>
<td align="center">1,000</td>
<td align="center">Maximum depth of a tree</td>
</tr>
<tr>
<td align="center">max_features</td>
<td align="center">1,000</td>
<td align="center">Number of features finding the best segmentation</td>
</tr>
<tr>
<td align="center">min_samples_leaf</td>
<td align="center">2</td>
<td align="center">Minimum sample size required at leaf nodes</td>
</tr>
<tr>
<td align="center">min_samples_split</td>
<td align="center">2</td>
<td align="center">Minimum sample size required for internal nodes</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We employs F1 score as the objective function for Bayesian optimization (<xref ref-type="bibr" rid="B24">Sebastiani and Wynn, 2000</xref>), aiming to achieve an optimal balance between precision and recall. The optimal parameter values obtained by the GB model through Bayesian optimization are presented in <xref ref-type="table" rid="T5">Table 5</xref>.</p>
<p>The optimal parameter values obtained by the GB model through Bayesian optimization are presented in <xref ref-type="table" rid="T6">Table 6</xref>.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Optimal parameters of CatBoost model.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Parameter</th>
<th align="center">Optimal value</th>
<th align="center">Illustration</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Depth</td>
<td align="center">8</td>
<td align="center">Maximum depth of a tree</td>
</tr>
<tr>
<td align="center">learning_rate</td>
<td align="center">0.2994</td>
<td align="center">Learning rate</td>
</tr>
<tr>
<td align="center">l2_leaf_reg</td>
<td align="center">4</td>
<td align="center">L2 regularization coefficient</td>
</tr>
<tr>
<td align="center">border_count</td>
<td align="center">64</td>
<td align="center">Number of boxes</td>
</tr>
<tr>
<td align="center">Iterations</td>
<td align="center">700</td>
<td align="center">Maximum number of trees</td>
</tr>
<tr>
<td align="center">random_strength</td>
<td align="center">9.8764</td>
<td align="center">Randomness of tree node splitting</td>
</tr>
<tr>
<td align="center">colsample_bylevel</td>
<td align="center">0.9188</td>
<td align="center">Proportion of features in each tree</td>
</tr>
<tr>
<td align="center">loss_function</td>
<td align="center">Logloss</td>
<td align="center">Loss function</td>
</tr>
<tr>
<td align="center">random_seed</td>
<td align="center">42</td>
<td align="center">Random_seed</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Optimal parameters of GB.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Parameter</th>
<th align="center">Optimal value</th>
<th align="center">Illustration</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">learning_rate</td>
<td align="center">0.2890</td>
<td align="center">Learning rate</td>
</tr>
<tr>
<td align="center">Loss</td>
<td align="center">Exponential</td>
<td align="center">Loss function</td>
</tr>
<tr>
<td align="center">max_depth</td>
<td align="center">3</td>
<td align="center">Maximum depth of a single decision tree</td>
</tr>
<tr>
<td align="center">max_features</td>
<td align="center">None</td>
<td align="center">Feature numbers</td>
</tr>
<tr>
<td align="center">max_leaf_nodes</td>
<td align="center">51</td>
<td align="center">Maximum numbers</td>
</tr>
<tr>
<td align="center">min_impurity_decrease</td>
<td align="center">0.0989</td>
<td align="center">Threshold of splitting</td>
</tr>
<tr>
<td align="center">min_samples_leaf</td>
<td align="center">2</td>
<td align="center">Minimum sample size</td>
</tr>
<tr>
<td align="center">min_samples_split</td>
<td align="center">13</td>
<td align="center">Minimum sample size required for a leaf node</td>
</tr>
<tr>
<td align="center">min_weight_fraction_leaf</td>
<td align="center">0.000125</td>
<td align="center">Minimum weighted score</td>
</tr>
<tr>
<td align="center">n_estimators</td>
<td align="center">500</td>
<td align="center">Number of trees</td>
</tr>
<tr>
<td align="center">Subsample</td>
<td align="center">0.683128</td>
<td align="center">Sample proportion for fitting a single tree</td>
</tr>
<tr>
<td align="center">validation_fraction</td>
<td align="center">0.1459</td>
<td align="center">Proportion of validation set partitioned in training data</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3-5">
<label>3.5</label>
<title>Model comparison and analysis</title>
<p>We use the Borderline-SMOTE algorithm for data balancing. This algorithm considers that the classification plane is determined by the samples on the classification boundary, and thus only a few minority class samples in the boundary region are needed to generate new minority class samples. The data set is divided into training set and test set in the ratio of 8:2, and the over sampling is carried out on the training set.</p>
<p>From <xref ref-type="fig" rid="F6">Figure 6</xref>, Borderline-SMOTE outperforms well in both Naive Bayes and decision tree models. It prevents noise amplification during sampling, thereby reducing noise-induced model bias. The Borderline-SMOTE algorithm is ultimately employed for data balancing. We selects the best combination of four models, Naive Bayes (NB), Decision Tree (DT), CatBoost and Gradient Boosting Tree (GBDT), and compares the performance of the four models on the same data set to select the best combination of Stacking integration model.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Performance of Borderline-SMOTE across different models.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g006.tif">
<alt-text content-type="machine-generated">Bar chart comparing four machine learning models: Naive Bayes, Decision Tree, CatBoost, and Gradient Boosting Tree across four metrics. CatBoost leads in accuracy at 83.51% and weighted average precision at 88.19%. Gradient Boosting Tree performs best in weighted average recall with 90.32%. CatBoost also excels in weighted average F1-score at 86.66%. Naive Bayes is lowest across all metrics.</alt-text>
</graphic>
</fig>
<p>In <xref ref-type="table" rid="T7">Table 7</xref>, the base learners&#x2014;probabilistic NB, rule-based DT and CatBoost, which excels at handling categorical features, not only diversify the base learners but also provide model complementarity. As a meta-learner, GB can integrate the prediction results of base learners through gradient boosting to capture complex nonlinear relationships. Further we compares the performance of a Stacking ensemble model with four single learners trained on the same dataset on the same test set, as shown in <xref ref-type="fig" rid="F7">Figure 7</xref>.</p>
<table-wrap id="T7" position="float">
<label>TABLE 7</label>
<caption>
<p>Comparison of performance of different combinations of stacking ensemble models.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Classifier</th>
<th align="center">Accuracy</th>
<th align="center">F1-score</th>
<th align="center">Precision</th>
<th align="center">Recall</th>
<th align="center">Time(s)</th>
<th align="center">AUC-ROC</th>
<th align="center">TPR</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">NB</td>
<td align="center">0.74</td>
<td align="center">0.73</td>
<td align="center">0.74</td>
<td align="center">0.73</td>
<td align="center">1</td>
<td align="center">0.81</td>
<td align="center">0.73</td>
</tr>
<tr>
<td align="center">CatBoost</td>
<td align="center">0.88</td>
<td align="center">0.88</td>
<td align="center">0.88</td>
<td align="center">0.88</td>
<td align="center">122</td>
<td align="center">0.96</td>
<td align="center">0.88</td>
</tr>
<tr>
<td align="center">DT</td>
<td align="center">0.88</td>
<td align="center">0.88</td>
<td align="center">0.87</td>
<td align="center">0.89</td>
<td align="center">7</td>
<td align="center">0.88</td>
<td align="center">0.89</td>
</tr>
<tr>
<td align="center">GB</td>
<td align="center">0.84</td>
<td align="center">0.84</td>
<td align="center">0.86</td>
<td align="center">0.8</td>
<td align="center">83</td>
<td align="center">0.92</td>
<td align="center">0.86</td>
</tr>
<tr>
<td align="center">
<bold>NDCG</bold>
</td>
<td align="center">0.87</td>
<td align="center">0.87</td>
<td align="center">0.87</td>
<td align="center">0.87</td>
<td align="center">455</td>
<td align="center">0.97</td>
<td align="center">0.89</td>
</tr>
<tr>
<td align="center">GNCD</td>
<td align="center">0.83</td>
<td align="center">0.83</td>
<td align="center">0.84</td>
<td align="center">0.82</td>
<td align="center">1,005</td>
<td align="center">0.83</td>
<td align="center">0.82</td>
</tr>
<tr>
<td align="center">Hard voting</td>
<td align="center">0.87</td>
<td align="center">0.86</td>
<td align="center">0.88</td>
<td align="center">0.85</td>
<td align="center">182</td>
<td align="center">0.87</td>
<td align="center">0.85</td>
</tr>
<tr>
<td align="center">Soft voting</td>
<td align="center">0.88</td>
<td align="center">0.88</td>
<td align="center">0.86</td>
<td align="center">0.91</td>
<td align="center">187</td>
<td align="center">0.88</td>
<td align="center">0.91</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Performance comparison of stacking integrated model and single learner.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g007.tif">
<alt-text content-type="machine-generated">Bar chart comparing five models: NB, DT, CatBoost, GBDT, and Stacking, across four metrics. Accuracy ranges from 70% to 86.69%, weighted average precision from 67.11% to 89.03%, weighted average recall from 75.90% to 86.60%, and weighted average F1-score from 80.70% to 95.00%.</alt-text>
</graphic>
</fig>
<p>The performance of Stacking model in accuracy, recall and F1 score is better than that of single learner, which indicates that Stacking model can comprehensively consider the correctness of classification, the ability to identify the positive class, and the balance between accuracy and recall, and has better overall performance, which can better meet the application needs of actual medical diagnosis scenarios.</p>
<p>The AUC-ROC of the proposed model and base classifiers are shown in <xref ref-type="fig" rid="F8">Figure 8</xref>. It clearly explains that our proposed model has the ability to better identify the TPR while minimizing the FPR.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>AUC-ROC of stacking model and base classifiers for heart disease prediction.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g008.tif">
<alt-text content-type="machine-generated">ROC curve graph for five classifiers showing true positive rate versus false positive rate. Lines for Decision Tree (AUC&#x3d;0.88), Gradient Boosting (AUC&#x3d;0.92), Naive Bayes (AUC&#x3d;0.81), CatBoost (AUC&#x3d;0.96), and Stacking Model (AUC&#x3d;0.97). Stacking Model performs best.</alt-text>
</graphic>
</fig>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>SHAP analysis</title>
<sec id="s4-1">
<label>4.1</label>
<title>Interpretability analysis</title>
<p>This research calculates the average SHAP values of individual features using the Stacking integration model and ranks them by numerical magnitude. Features with higher rankings demonstrate greater predictive contribution to the model. The feature ranking diagram assists physicians in identifying key factors that trigger heart disease, thereby enabling more targeted treatment strategies. As shown in <xref ref-type="fig" rid="F9">Figure 9</xref>, SleepTime (average sleep duration), GenHealth (physical health status), AgeCategory (age), Sex (gender), and BMI (body mass index) rank prominently, indicating their significant reference value for heart disease diagnosis.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Feature importance ranking diagram based on SHAP values.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g009.tif">
<alt-text content-type="machine-generated">Bar chart showing feature importance using SHAP values. The features with the highest impact on the model output are SleepTime, GenHealth, and AgeCategory, followed by Sex and BMI. The horizontal axis represents the SHAP value magnitude.</alt-text>
</graphic>
</fig>
<p>While the SHAP value-based feature importance ranking diagram visually demonstrates each feature&#x2019;s contribution to model predictions, it fails to capture how feature magnitude influences outcomes. This research presents a scatter plot-based summary diagram from the SHAP library to illustrate the impact of feature magnitude on test set samples&#x2019; predictions. The summary diagram is shown in <xref ref-type="fig" rid="F10">Figure 10</xref>.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>SHAP scatter plot.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g010.tif">
<alt-text content-type="machine-generated">Violin plot showing SHAP values for multiple features impacting model output, including SleepTime, GenHealth, and AgeCategory. Color gradient from blue (low) to red (high) indicates feature value magnitude. The x-axis shows SHAP impact from negative to positive values.</alt-text>
</graphic>
</fig>
<p>The vertical axis displays feature variables for heart disease prediction, sorted by average SHAP values. The horizontal axis shows SHAP values, indicating each feature&#x2019;s contribution to prediction outcomes. Each point represents a sample: red indicates higher feature values, while blue indicates lower values. Points positioned further to the right demonstrate greater influence on predicting heart disease, whereas those on the left contribute more to predicting no heart disease.</p>
<p>Sleep Time is the most significant factor in model predictions. Moderate sleep duration (7&#x2013;8 h per night) significantly reduces the risk of heart disease, whereas both excessive and insufficient sleep may increase this risk. A foreign research (<xref ref-type="bibr" rid="B3">Ali et al., 2020</xref>) on sleep patterns and cardiovascular disease found that chronic sleep deprivation (less than 6 h) substantially elevates heart disease risk. Sleep deprivation induces a stress response, activating the sympathetic nervous system, which accelerates heart rate, raises blood pressure, and constricts blood vessels&#x2014;ultimately overloading the heart and potentially triggering or worsening heart disease.</p>
</sec>
<sec id="s4-2">
<label>4.2</label>
<title>Interpretability analysis of feature interactions</title>
<p>Many factors alone do not directly cause diseases, but when combined with multiple other factors, they may increase the risk of disease development. This research employs SHAP library&#x2019;s interaction plots to investigate how the combined effects of features influence heart disease prediction outcomes. The feature interaction plot is a three-dimensional scatter diagram where the horizontal axis represents the feature value of the first feature, and the left vertical axis indicates the SHAP score of the first feature. The color of the points reflects the magnitude of the second feature&#x2019;s value&#x2014;bluer indicates smaller values, while redder signifies larger values.</p>
<p>
<xref ref-type="fig" rid="F11">Figure 11</xref> illustrates the interaction between average sleep duration and heart disease risk prediction. When sleep is maintained at 7&#x2013;8 h, the risk of heart disease remains relatively low regardless of physical health status. Conversely, when sleep is less than 5 h, individuals with good health have a lower risk, while those with poor health experience increased risk due to sleep deprivation. This suggests that people with suboptimal health should prioritize adequate rest to reduce disease susceptibility.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Feature interaction of SleepTime-GenHealth.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g011.tif">
<alt-text content-type="machine-generated">Scatter plot showing SHAP values for SleepTime on the y-axis and SleepTime on the x-axis. Points are colored by GenHealth, ranging from blue to red, indicating varying health levels.</alt-text>
</graphic>
</fig>
<p>We illustrate the interaction between body mass index (BMI) and age in predicting Heart disease and give the BMI-AgeCategory feature interaction figure in <xref ref-type="fig" rid="F12">Figure 12</xref>.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>BMI-AgeCategory feature interaction.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g012.tif">
<alt-text content-type="machine-generated">Scatter plot showing SHAP values for BMI against BMI. Data points are colored by age category, ranging from blue to red. Points are densely clustered around BMI 20 to 40, with SHAP values mostly between -0.2 and 0.2.</alt-text>
</graphic>
</fig>
<p>Further, we give the waterfall map (<xref ref-type="fig" rid="F13">Figure 13</xref>) in the SHAP library visually demonstrates how a single sample&#x2019;s prediction results are progressively generated by various features. By breaking down the model&#x2019;s predicted values, it shows each feature&#x2019;s contribution direction and magnitude to the final prediction, making the model&#x2019;s decision logic clearer.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>Waterfall plot of affected samples.</p>
</caption>
<graphic xlink:href="fmolb-12-1763157-g013.tif">
<alt-text content-type="machine-generated">Waterfall chart showing feature contributions to a prediction function, f(x). AgeCategory contributes &#x2b;0.23, GenHealth &#x2b;0.19, PhysicalHealth -0.18, BMI &#x2b;0.16, Sex &#x2b;0.12, Smoking &#x2b;0.08, eight other features &#x2b;0.05, while Asthma and DiffWalking contribute -0.05 each. Overall, contributions lead to f(x) equaling 1.</alt-text>
</graphic>
</fig>
</sec>
</sec>
<sec sec-type="conclusion" id="s5">
<label>5</label>
<title>Conclusion</title>
<p>This manuscript presents an ensemble stacking model for heart disease prediction. Before passing data to our proposed model, we perform preprocessing by first converting string columns into integers using factorization method. Then we use Border- LineSMOTE data balancing techniques to tackle data class imbalance problem. Our proposed stacking model consists of four classifiers having three classifiers: DT, NB and CatBoost at base layer and GB at meta layer. Also we perform soft voting algorithm and compared the results with the stacking model. SHAP is used for model interpretation. Different evaluation metrices are used for validation of our proposed model. Moreover, simulations are performed and our proposed model outperforms all the base classifiers and achieved 86.69% Accuracy, 86.91% F1 Score, 87.14% Precision, 86.69% Recall, 97%, AUC-ROC, 91% TPR and 455 s execution time. In the interpretive analysis, this study employ SHAP techniques to reveal the impact of key features on prediction outcomes. Global interpretive analysis demonstrates that age, sleep duration, self-rated health status, and BMI are critical factors in assessing cardiovascular risk. Considering individual variability across samples, local interpretive analysis is conducted to evaluate the contribution of each feature to the prediction results of individual samples. In the analysis of feature interactions, the study finds that when the average sleep duration is less than five hours, individuals with better physical health have a relatively lower risk of developing heart disease, whereas those with poorer physical health exhibit a relatively higher risk.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<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 authors.</p>
</sec>
<sec sec-type="ethics-statement" id="s7">
<title>Ethics statement</title>
<p>Ethical approval was not required for the studies involving humans. The studies were conducted in accordance with the local legislation and institutional requirements. Written informed consent for participation was not required from the participants or the participants&#x2019; legal guardians/next of kin in accordance with the national legislation and institutional requirements.</p>
</sec>
<sec sec-type="author-contributions" id="s8">
<title>Author contributions</title>
<p>YC: Data curation, Methodology, Writing &#x2013; original draft. LC: Investigation, Supervision, Writing &#x2013; review and editing. ZB: Investigation, Validation, Writing &#x2013; review and editing. SW: Methodology, Software, Supervision, Writing &#x2013; original draft. YW: Investigation, Visualization, Writing &#x2013; review and editing. YF: Formal Analysis, Funding acquisition, Resources, Writing &#x2013; original draft, Writing &#x2013; review and editing.</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>The author(s) declared that this work 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="ai-statement" id="s11">
<title>Generative AI statement</title>
<p>The author(s) declared that generative AI was not used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</p>
</sec>
<sec sec-type="disclaimer" id="s12">
<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">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ahmad</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Asghar</surname>
<given-names>M. Z.</given-names>
</name>
<name>
<surname>Alotaibi</surname>
<given-names>F. M.</given-names>
</name>
<name>
<surname>Alotaibi</surname>
<given-names>Y. D.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Diagnosis of cardiovascular disease using deep learning technique</article-title>. <source>Soft Comput.</source> <volume>27</volume> (<issue>13</issue>), <fpage>8971</fpage>&#x2013;<lpage>8990</lpage>. <pub-id pub-id-type="doi">10.1007/s00500-022-07788-0</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Albert</surname>
<given-names>A. J.</given-names>
</name>
<name>
<surname>Murugan</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Sripriya</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Diagnosis of heart disease using oversampling methods and decision tree classifier in cardiology</article-title>. <source>Res. Biomed. Eng.</source> <volume>39</volume> (<issue>1</issue>), <fpage>99</fpage>&#x2013;<lpage>113</lpage>. <pub-id pub-id-type="doi">10.1007/s42600-022-00253-9</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ali</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>El-sappagh</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Islam</surname>
<given-names>S. M. R.</given-names>
</name>
<name>
<surname>Kwak</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Ali</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Imran</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>A smart healthcare monitoring system for heart disease prediction based on ensemble deep learning and feature fusion</article-title>. <source>Inf. Fusion</source> <volume>63</volume>, <fpage>208</fpage>&#x2013;<lpage>222</lpage>. <pub-id pub-id-type="doi">10.1016/j.inffus.2020.06.008</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Alqahtani</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ahmad</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Khan</surname>
<given-names>A. S.</given-names>
</name>
<name>
<surname>Karthick</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Pant</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Kifetew</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A robust framework for data generative and heart disease prediction based on efficient deep learning models</article-title>. <source>Comput. Math. Methods Med.</source> <volume>2022</volume>, <fpage>1</fpage>&#x2013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.1155/2022/1413597</pub-id>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Baghdadi</surname>
<given-names>N. A.</given-names>
</name>
<name>
<surname>Farghaly Abdelaliem</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Malki</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Gad</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Ewis</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Atlam</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Advanced machine learning techniques for cardiovascular disease early detection and diagnosis</article-title>. <source>J. Big Data</source> <volume>10</volume> (<issue>1</issue>), <fpage>144</fpage>&#x2013;<lpage>156</lpage>. <pub-id pub-id-type="doi">10.1186/s40537-023-00817-1</pub-id>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bonett</surname>
<given-names>D. G.</given-names>
</name>
<name>
<surname>Wright</surname>
<given-names>T. A.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>Sample size requirements for estimating pearson, kendall and spearman correlations</article-title>. <source>Psychometrika</source> <volume>65</volume> (<issue>1</issue>), <fpage>23</fpage>&#x2013;<lpage>28</lpage>. <pub-id pub-id-type="doi">10.1007/bf02294183</pub-id>
</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chandrasekhar</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Peddakrishna</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Enhancing heart disease prediction accuracy through machine learning techniques and optimization</article-title>. <source>Processes</source> <volume>11</volume> (<issue>4</issue>), <fpage>1210</fpage>&#x2013;<lpage>1215</lpage>. <pub-id pub-id-type="doi">10.3390/pr11041210</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dalal</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Goel</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Onyema</surname>
<given-names>E. M.</given-names>
</name>
<name>
<surname>Alharbi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Mahmoud</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Algarni</surname>
<given-names>M. A.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>Application of machine learning for cardiovascular disease risk prediction</article-title>. <source>Comput. Intell. Neurosci.</source> <volume>2023</volume>, <fpage>9418666</fpage>. <pub-id pub-id-type="doi">10.1155/2023/9418666</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Friedman</surname>
<given-names>J. H.</given-names>
</name>
</person-group> (<year>2001</year>). <article-title>Greedy function approximation: a gradient boosting machine</article-title>. <source>Ann. Statistics</source> <volume>29</volume> (<issue>5</issue>), <fpage>1189</fpage>&#x2013;<lpage>1232</lpage>. <pub-id pub-id-type="doi">10.1214/aos/1013203451</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jabeur</surname>
<given-names>S. B.</given-names>
</name>
<name>
<surname>Gharib</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Mefteh-Wali</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Arfi</surname>
<given-names>W. B.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>CatBoost model and artificial intelligence techniques for corporate failure prediction</article-title>. <source>Technol. Forecast. Soc. Change</source> <volume>166</volume>, <fpage>120658</fpage>. <pub-id pub-id-type="doi">10.1016/j.techfore.2021.120658</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Khan</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Qureshi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Daniyal</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Tawiah</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>A novel study on machine learning algorithm-based cardiovascular disease prediction</article-title>. <source>Health Soc. Care Community.</source> <volume>1406060</volume>. <pub-id pub-id-type="doi">10.1155/2023/1406060</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Khan</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Javaid</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Bashir</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Akbar</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Alrajeh</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Aslam</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Heart disease prediction using novel ensemble and blending based cardiovascular disease detection networks: enscvdd-net and BlCVDD-Net</article-title>. <source>IEEE Access</source> <volume>12</volume>, <fpage>109230</fpage>&#x2013;<lpage>109254</lpage>. <pub-id pub-id-type="doi">10.1109/access.2024.3421241</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>An attribute-weighted bayes classifier based on asymmetric correlation coefficient</article-title>. <source>Int. J. Pattern Recognit. Artif. Intell.</source> <volume>34</volume> (<issue>10</issue>), <fpage>2050025</fpage>. <pub-id pub-id-type="doi">10.1142/s0218001420500251</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Myocardial infarction detection based on deep neural network on imbalanced data</article-title>. <source>Biomed. Signal Process. Control</source> <volume>44</volume>, <fpage>246</fpage>&#x2013;<lpage>254</lpage>. <pub-id pub-id-type="doi">10.1016/j.bspc.2018.03.011</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lundberg</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>S. I.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>A unified approach to interpreting model predictions</article-title>. <source>Adv. Neural Inf. Process. Syst.</source> <volume>30</volume>, <fpage>4765</fpage>&#x2013;<lpage>4774</lpage>. <pub-id pub-id-type="doi">10.48550/arXiv.1705.07874</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lundberg</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Erion</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>DeGrave</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Prutkin</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Nair</surname>
<given-names>B.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>From local explanations to global understanding with explainable AI for trees</article-title>. <source>Nat. Mach. Intell.</source> <volume>2</volume> (<issue>1</issue>), <fpage>56</fpage>&#x2013;<lpage>67</lpage>. <pub-id pub-id-type="doi">10.1038/s42256-019-0138-9</pub-id>
<pub-id pub-id-type="pmid">32607472</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mahesh</surname>
<given-names>T. R.</given-names>
</name>
<name>
<surname>Dhilip Kumar</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Vinoth</surname>
<given-names>K. V.</given-names>
</name>
<name>
<surname>Asghar</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Geman</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Arulkumaran</surname>
<given-names>G.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>AdaBoost ensemble methods using K-Fold cross validation for survivability with the early detection of heart disease</article-title>. <source>Comput. Intell. Neurosci.</source> <volume>2022</volume>, <fpage>1</fpage>&#x2013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.1155/2022/9005278</pub-id>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Martin</surname>
<given-names>S. S.</given-names>
</name>
<name>
<surname>Aday</surname>
<given-names>A. W.</given-names>
</name>
<name>
<surname>Almarzooq</surname>
<given-names>Z. I.</given-names>
</name>
<name>
<surname>Anderson</surname>
<given-names>C. A.</given-names>
</name>
<name>
<surname>Arora</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Avery</surname>
<given-names>C. L.</given-names>
</name>
<etal/>
</person-group> (<year>2024</year>). <article-title>2024 heart disease and stroke statistics: a report of US and global data from the American heart association</article-title>. <source>Circulation</source> <volume>149</volume> (<issue>8</issue>), <fpage>e347</fpage>&#x2013;<lpage>e913</lpage>. <pub-id pub-id-type="doi">10.1161/cir.0000000000001209</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Medina-Inojosa</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Tesfaye</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Deep learning enabled electrocardiogram aimed to detect coronary artery disease to predict atherosclerotic cardiovascular events in the community</article-title>. <source>Circulation</source>, <volume>150</volume> (<issue>Suppl. l_1</issue>), <fpage>A4148033</fpage>.</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meharie</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Hailu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Gebremedhin</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Tesfaye</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>H. L.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Applying an improved stacking ensemble model to predict the mortality of ICU patients with heart failure</article-title>. <source>J. Clin. Med.</source> <volume>11</volume> (<issue>21</issue>), <fpage>6460</fpage>. <pub-id pub-id-type="doi">10.3390/jcm11216460</pub-id>
<pub-id pub-id-type="pmid">36362686</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Pahwa</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Prediction of heart disease using hybrid technique for selecting features</article-title>,&#x201d; in <conf-name>2017 4th IEEE Uttar Pradesh Section International Conference on Electrical, Computer and Electronics</conf-name>, <conf-loc>Mathura</conf-loc> (<publisher-name>IEEE</publisher-name>), <fpage>500</fpage>&#x2013;<lpage>504</lpage>.</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ponce-Bobadilla</surname>
<given-names>A. V.</given-names>
</name>
<name>
<surname>Schmitt</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Maier</surname>
<given-names>C. S.</given-names>
</name>
<name>
<surname>Mensing</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Stodtmann</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Practical guide to SHAP analysis: explaining supervised machine learning model predictions in drug development</article-title>. <source>Clin. Transl. Sci.</source> <volume>17</volume> (<issue>11</issue>), <fpage>2941</fpage>&#x2013;<lpage>2952</lpage>. <pub-id pub-id-type="doi">10.1111/cts.70056</pub-id>
<pub-id pub-id-type="pmid">39463176</pub-id>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rimal</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Sharma</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Hyperparameter optimization: a comparative machine learning model analysis for enhanced heart disease prediction accuracy</article-title>. <source>Multimedia Tools Appl.</source> <volume>83</volume>, <fpage>1</fpage>&#x2013;<lpage>17</lpage>. <pub-id pub-id-type="doi">10.1007/s11042-023-17273-x</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sebastiani</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Wynn</surname>
<given-names>H. P.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>Maximum entropy sampling and optimal Bayesian experimental design</article-title>. <source>J. R. Stat. Soc. Ser. B Stat. Methodol.</source> <volume>62</volume> (<issue>1</issue>), <fpage>145</fpage>&#x2013;<lpage>157</lpage>. <pub-id pub-id-type="doi">10.1111/1467-9868.00225</pub-id>
</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shaheen</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Javaid</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Alrajeh</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Asim</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Aslam</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Hi-Le and HiTCLe: ensemble learning approaches for early diabetes detection using deep learning and eXplainable artificial intelligence</article-title>. <source>IEEE Access</source> <volume>12</volume>, <fpage>66516</fpage>&#x2013;<lpage>66538</lpage>. <pub-id pub-id-type="doi">10.1109/access.2024.3398198</pub-id>
</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Srinivasu</surname>
<given-names>P. N.</given-names>
</name>
<name>
<surname>Sirisha</surname>
<given-names>U.</given-names>
</name>
<name>
<surname>Sandeep</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Praveen</surname>
<given-names>S. P.</given-names>
</name>
<name>
<surname>Maguluri</surname>
<given-names>L. P.</given-names>
</name>
<name>
<surname>Bikku</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>An interpretable approach with explainable AI for heart stroke prediction</article-title>. <source>Diagnostics</source> <volume>14</volume> (<issue>2</issue>), <fpage>128</fpage>&#x2013;<lpage>138</lpage>. <pub-id pub-id-type="doi">10.3390/diagnostics14020128</pub-id>
<pub-id pub-id-type="pmid">38248005</pub-id>
</mixed-citation>
</ref>
<ref id="B27">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yashudas</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Gupta</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Prashant</surname>
<given-names>G. C.</given-names>
</name>
<name>
<surname>Dua</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>AlQahtani</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Reddy</surname>
<given-names>A. S. K.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>DEEP-CARDIO: Recommendation system for cardiovascular disease prediction using IOT network</article-title>. <source>IEEE Sensors J.</source> <volume>24</volume>, <fpage>14539</fpage>&#x2013;<lpage>14547</lpage>. <pub-id pub-id-type="doi">10.1109/jsen.2024.3373429</pub-id>
</mixed-citation>
</ref>
<ref id="B28">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yongcharoenchaiyasit</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Arwatchananukul</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Temdee</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Prasad</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Gradient boosting based model for elderly heart failure, aortic stenosis, and dementia classification</article-title>. <source>IEEE Access</source> <volume>11</volume>, <fpage>48677</fpage>&#x2013;<lpage>48696</lpage>. <pub-id pub-id-type="doi">10.1109/access.2023.3276468</pub-id>
</mixed-citation>
</ref>
<ref id="B29">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>A novel XGBoost method to identify cancer tissue-of-origin based on copy number variations</article-title>. <source>Front. Genet.</source> <volume>11</volume>, <fpage>610724</fpage>. <pub-id pub-id-type="doi">10.3389/fgene.2020.585029</pub-id>
<pub-id pub-id-type="pmid">33329723</pub-id>
</mixed-citation>
</ref>
<ref id="B30">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>An ensemble oversampling method for imbalanced classification with prior knowledge <italic>via</italic> generative adversarial network</article-title>. <source>Chemom. Intelligent Laboratory Syst.</source> <volume>235</volume>, <fpage>104775</fpage>. <pub-id pub-id-type="doi">10.1016/j.chemolab.2023.104775</pub-id>
</mixed-citation>
</ref>
</ref-list>
<fn-group>
<fn fn-type="custom" custom-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1277774/overview">Shudong Wang</ext-link>, China University of Petroleum, Beijing, China</p>
</fn>
<fn fn-type="custom" custom-type="reviewed-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2340787/overview">Fan Zhou</ext-link>, Shenyang Ligong University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3310590/overview">Yuanjian Qiao</ext-link>, Inner Mongolia University, China</p>
</fn>
</fn-group>
</back>
</article>