<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Archiving and Interchange DTD v2.3 20070202//EN" "archivearticle.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="methods-article" dtd-version="2.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Public Health</journal-id>
<journal-title>Frontiers in Public Health</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Public Health</abbrev-journal-title>
<issn pub-type="epub">2296-2565</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fpubh.2025.1608725</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Public Health</subject>
<subj-group>
<subject>Methods</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Enhancing sleep stage classification with ballistocardiogram signals: feature selection using attention mechanism and XGBoost</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Luo</surname> <given-names>Chao</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/3027993/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Liu</surname> <given-names>Banteng</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x002A;</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/3136176/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/project-administration/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Chai</surname> <given-names>Jiayu</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/3139008/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Teng</surname> <given-names>Zhijian</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/3138990/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>School of Information Engineering, Huzhou University</institution>, <addr-line>Huzhou</addr-line>, <country>China</country></aff>
<aff id="aff2"><sup>2</sup><institution>Key Laboratory of Artificial Organs, Computational Medicine in Zhejiang Province, College of Information Science and Technology, Zhejiang Shuren University</institution>, <addr-line>Hangzhou</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by" id="fn0001">
<p>Edited by: Jordi Piera-Jim&#x00E9;nez, Catalan Health Service, Spain</p></fn>
<fn fn-type="edited-by" id="fn0002">
<p>Reviewed by: Moein Enayati, Mayo Clinic, United States</p>
<p>Muhammad Saqib, Khyber Medical College, Pakistan</p></fn>
<corresp id="c001">&#x002A;Correspondence: Banteng Liu, <email>bantl@zjsru.edu.cn</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>28</day>
<month>07</month>
<year>2025</year>
</pub-date>
<pub-date pub-type="collection">
<year>2025</year>
</pub-date>
<volume>13</volume>
<elocation-id>1608725</elocation-id>
<history>
<date date-type="received">
<day>09</day>
<month>04</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>15</day>
<month>07</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x00A9; 2025 Luo, Liu, Chai and Teng.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Luo, Liu, Chai and Teng</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>Traditional sleep staging using contact sensors may compromise data validity. This study proposes a non-contact ballistocardiogram (BCG)-based method to improve both accuracy and comfort in sleep monitoring. BCG signals were processed using continuous wavelet transform and low-pass filtering to extract heart rate variability (HRV) and respiratory rate variability (RRV). A novel feature selection model integrating attention mechanisms with XGBoost was developed, where attention weights are used to prioritize features before iterative refinement by XGBoost. Evaluated on 10,201 sleep segments, the Fast-ABC Boost model achieved an accuracy of 89.85%, along with superior precision, recall, F1-score, and Kappa values compared to conventional methods. The attention-XGBoost fusion effectively mitigates interference from noisy and redundant features while optimizing feature relevance, demonstrating robust adaptability to the complexity of sleep signals. This innovation advances the accuracy non-contact sleep staging, enabling practical applications in home healthcare and personalized sleep management, while improving user comfort.</p>
</abstract>
<kwd-group>
<kwd>sleep staging</kwd>
<kwd>ballistocardiogram (BCG)</kwd>
<kwd>heart rate variability (HRV)</kwd>
<kwd>respiratory rate variability (RRV)</kwd>
<kwd>XGBoost</kwd>
<kwd>feature selection</kwd>
</kwd-group>
<counts>
<fig-count count="8"/>
<table-count count="6"/>
<equation-count count="12"/>
<ref-count count="36"/>
<page-count count="12"/>
<word-count count="8235"/>
</counts>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Digital Public Health</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="sec1">
<label>1</label>
<title>Introduction</title>
<p>In recent years, as the pace of modern life has accelerated, sleep patterns have undergone significant changes, leading to a continuously rise in the incidence of sleep-related disorders (<xref ref-type="bibr" rid="ref1">1</xref>). In clinical practice, physiological indicators from different sleep stages are widely used to diagnose and monitor sleep disorders, assess sleep quality, and provide crucial support for developing of scientific treatment plans and intervention strategies. Accurately distinguishing and identifying each sleep stage is not only essential for gaining a deeper understanding of sleep mechanisms, but also a key aspect of improving the management of sleep disorder and enhancing individual health. In 2007, the American Academy of Sleep Medicine (AASM) released the latest sleep staging guidelines, which divide sleep into five stages: wakefulness (Wakefulness, W), rapid eye movement (Rapid Eye Movement, REM) sleep, and three non-rapid eye movement (Non-Rapid Eye Movement, NREM) stages (N1, N2, N3) (<xref ref-type="bibr" rid="ref2">2</xref>), as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>. Based on this standard, current sleep research typically divides the entire sleep process into 30-s intervals, labeling each interval with the corresponding sleep stage to facilitate subsequent analysis.</p>
<fig position="float" id="fig1">
<label>Figure 1</label>
<caption>
<p>Sleep staging guidelines released by AASM.</p>
</caption>
<graphic xlink:href="fpubh-13-1608725-g001.tif">
<alt-text content-type="machine-generated">Flowchart illustrating sleep stages."Sleep Stage" branches into "WK," "NREM," and "REM." "NREM" further branches into "N1," "N2," and "N3." N1, N2, N3, REM, and WK together constitute the five sleep stages defined by the AASM standard.</alt-text>
</graphic>
</fig>
<p>Traditional studies have shown that heart rate variability (HRV) features play a crucial role in sleep stage monitoring, and these HRV features are typically extracted from electrocardiogram (ECG) signals. HRV analysis from ECG has been used to study sleep, revealing that the low-frequency HRV power and heart rate are lower during deep sleep compared to REM sleep (<xref ref-type="bibr" rid="ref3">3</xref>). Following this successful study, other researchers proposed sleep stage estimation algorithms based on ECG-derived HRV (<xref ref-type="bibr" rid="ref4">4</xref>, <xref ref-type="bibr" rid="ref5">5</xref>). However, these methods require multiple electrodes to be directly attached to the patient&#x2019;s skin during measurement (<xref ref-type="bibr" rid="ref6 ref7 ref8">6&#x2013;8</xref>), which can cause inconvenience in daily life. From the perspective of sleep research, long-term non-invasive HRV monitoring holds significant value.</p>
<p>Ballistocardiogram (BCG) signals reflect cardiac activity. Unlike ECG, BCG can be measured non-contact using pressure sensors, without the need for direct electrode contact with the body, and the equipment is low-cost. Studies (<xref ref-type="bibr" rid="ref9 ref10 ref11">9&#x2013;11</xref>) have demonstrated good consistency between BCG and ECG signals in HRV analysis through comprehensive statistical analysis. Therefore, using BCG signals for high-accuracy sleep staging offers important research value.</p>
<p>Currently, various types of sensors are used to collect BCG signals, such as chairs (<xref ref-type="bibr" rid="ref12">12</xref>), weight scales (<xref ref-type="bibr" rid="ref13">13</xref>), and sheet sensors (<xref ref-type="bibr" rid="ref14">14</xref>). Among them, sheet sensors (<xref ref-type="bibr" rid="ref15">15</xref>) have emerged as the ideal choice for sleep studies, as they can be placed directly under the mattress to continuously monitor heart rate during sleep.</p>
<p>A typical BCG signal contains multiple peaks, such as H, I, J, K, L, M, etc. (<xref ref-type="bibr" rid="ref16">16</xref>, <xref ref-type="bibr" rid="ref17">17</xref>), as shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>. The I-J-K waves in the BCG waveform are the main components and are typically used as features for detecting heartbeats.</p>
<fig position="float" id="fig2">
<label>Figure 2</label>
<caption>
<p>Schematic diagram of BCG signal waveform.</p>
</caption>
<graphic xlink:href="fpubh-13-1608725-g002.tif">
<alt-text content-type="machine-generated">Graph showing a wave pattern labeled at points H, I, J, K, L, and M. The section labeled "IJK waves" is highlighted with a shaded area between dashed red lines, depicting the wave from point I through J to K. An arrow indicates the wave's width within the highlighted section.</alt-text>
</graphic>
</fig>
<p>BCG signal processing aims to extract heartbeat and respiratory information, which are crucial for sleep staging. Digital filtering is a widely used, efficient, and reliable method. For instance, Alvarado-Serrano et al. (<xref ref-type="bibr" rid="ref18">18</xref>) employed continuous spline wavelet transform to reconstruct heartbeat signals and estimated heart rate using an adaptive threshold method. Thirion et al. (<xref ref-type="bibr" rid="ref19">19</xref>) applied a moving average filter and a Butterworth IIR filter to extract heart rate signals. Liu et al. (<xref ref-type="bibr" rid="ref20">20</xref>) optimized the parameters of variational mode decomposition (VMD) to analyze heart rate signals from fiber Bragg grating sensors. Wu et al. (<xref ref-type="bibr" rid="ref21">21</xref>) designed an adaptive soft filter with convolution kernels of varying sizes to extract heartbeat waveforms. Sadek et al. (<xref ref-type="bibr" rid="ref22">22</xref>) compared MODWT, CWT, and template matching for heart rate detection, finding that CWT with a Gaussian function performed best, while MODWT was the most time-efficient.</p>
<p>Most studies utilize heart rate variability (HRV) features extracted from BCG signals for sleep staging. Suliman et al. (<xref ref-type="bibr" rid="ref23">23</xref>) and Mitsukura et al. (<xref ref-type="bibr" rid="ref24">24</xref>) employed template matching and SVM models for five-stage classification based on HRV features. Liu et al. (<xref ref-type="bibr" rid="ref25">25</xref>) analyzed heartbeat intervals and HRV features for both two-stage and four-stage sleep staging, while Yoshihi et al. (<xref ref-type="bibr" rid="ref26">26</xref>) incorporated body movement data to improve stage estimation. Meanwhile, BCG signals also provide respiratory information (<xref ref-type="bibr" rid="ref27">27</xref>), which can be used to extract respiratory rate variability (RRV) features. Yi et al. (<xref ref-type="bibr" rid="ref28">28</xref>) and Wu et al. (<xref ref-type="bibr" rid="ref29">29</xref>) integrated HRV and RRV features for multi-stage sleep classification using machine learning models, while Ahmed et al. (<xref ref-type="bibr" rid="ref30">30</xref>) further incorporated motion data from BCG signals for sleep&#x2013;wake classification using deep learning techniques. The combination of HRV and RRV features has demonstrated potential in enhancing sleep staging accuracy.</p>
<p>Despite significant progress in sleep staging based on BCG signals, several challenges remain. BCG signals are highly susceptible to individual differences and external noise due to their dependence on body movements and cardiac mechanical activities. In high-noise environments, signal contamination or loss can hinder heartbeat extraction. Additionally, real-world BCG datasets often suffer from severe class imbalance, with the N2 stage typically accounting for more than 40%, while the N1 stage represents less than 5%.</p>
<p>To address above challenges, this study proposes a sleep staging method based on BCG signals and the Fast-ABC Boost model, which prioritizes misclassified minority classes to enhance overall classification performance. Furthermore, an attention mechanism combined with the XGBoost algorithm is introduced for feature selection, enhancing robustness against noise and imbalanced data. Experimental validation on a BCG-based sleep staging dataset demonstrates the superiority of this approach compared to traditional feature selection techniques. As shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>, the proposed framework consists of following main components:</p><list list-type="order">
<list-item>
<p>Separation of Heart Rate and Respiratory Signals: The first step involves using multi-scale continuous wavelet transform (CWT) and a low-pass Butterworth filter to separate the heart rate and respiratory signals from the original BCG signals. Next, the signal is divided into 30-s intervals, and the positions of the characteristic peaks are extracted to calculate the first-order difference, thus forming the JJ<sub>i</sub> and BB<sub>i</sub> sequences.</p>
</list-item>
<list-item>
<p>Feature Extraction and Selection: Based on the JJ<sub>i</sub> and BB<sub>i</sub> sequences, multi-dimensional HRV and RRV features are extracted through analysis and calculation. Long-term features are then extracted using extended time windows. An attention mechanism, combined with the XGBoost algorithm, is applied to mitigate the impact of redundant and noisy features, while selecting the most critical features for sleep staging.</p>
</list-item>
<list-item>
<p>Class Imbalance Handling and Model Evaluation: The BCG sleep data were collected from 10 subjects, with full-night recordings from each. The data were combined into a single dataset and randomly split into training and testing sets. To address class imbalance, SMOTE (Synthetic Minority Over-sampling Technique) was applied to augment the minority class in the training set. The Fast-ABC Boost model was then used to evaluate performance on the real-world sleep data.</p>
</list-item>
</list>
<fig position="float" id="fig3">
<label>Figure 3</label>
<caption>
<p>Diagram of sleep staging method based on BCG signal.</p>
</caption>
<graphic xlink:href="fpubh-13-1608725-g003.tif">
<alt-text content-type="machine-generated">Flowchart depicting the process of collecting and analyzing overnight single-channel BCG data. It consists of three main sections:1. &#x002A;&#x002A;Separation of Heart Rate and Respiratory Signals&#x002A;&#x002A;: Data is segmented into 30-second intervals, processed to extract heart rate and respiratory features using CWT and LPF. Peak extraction and first-order derivatives are computed to identify JJi and BBi features.2. &#x002A;&#x002A;Feature Extraction and Selection&#x002A;&#x002A;: HRV and RRV features are extracted, concatenated, and selected to form high-dimensional feature sets.3. &#x002A;&#x002A;Class Imbalance Handling and Model Evaluation&#x002A;&#x002A;: Final features undergo data segmentation, forming training and testing sets. SMOTE addresses class imbalance. Fast-ABC Boost creates final classifiers evaluated on N1, N2, N3, REM, and WK states.</alt-text>
</graphic>
</fig>
</sec>
<sec sec-type="methods" id="sec2">
<label>2</label>
<title>Methods</title>
<sec id="sec3">
<label>2.1</label>
<title>Data preprocessing</title>
<sec id="sec4">
<label>2.1.1</label>
<title>Heart rate signal processing</title>
<p>BCG signals (as shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>) are highly sensitive to both external and internal factors, and their characteristics are significantly influenced by individual differences and temporal variations. Physiological factors such as body constitution, weight, and cardiac structure of different individuals can affect the intensity and morphology of BCG signals. Additionally, even within a single individual, over time, BCG signals are influenced by dynamic factors such as breathing patterns, posture changes, and position adjustments, which can lead to increased signal volatility, making it challenging to construct a robust temporal representation model. Furthermore, BCG signals are highly susceptible to environmental noise, device vibrations, and external interference during the acquisition process, which can significantly deteriorate the quality of the data (<xref ref-type="bibr" rid="ref31">31</xref>). The analysis of heart rate signals typically relies on the accurate detection of the J-peak within the heartbeat cycle. By obtaining the J-peak location and calculating the first-order difference, the heartbeat interval sequence can be obtained for further HRV analysis.</p>
<fig position="float" id="fig4">
<label>Figure 4</label>
<caption>
<p>Visualization of raw BCG signal.</p>
</caption>
<graphic xlink:href="fpubh-13-1608725-g004.tif">
<alt-text content-type="machine-generated">Graph of a Raw Ballistocardiogram (BCG) Signal showing amplitude fluctuations over time. The x-axis represents time in seconds from 0 to 30, while the y-axis shows amplitude ranging from 1400 to 2600. The signal exhibits numerous peaks and troughs.</alt-text>
</graphic>
</fig>
<p>To effectively extract heart rate event information from the BCG signal and adapt flexibly to its multi-frequency characteristics, this study uses a multi-scale continuous wavelet transform (CWT) filtering method. By generating CWT decompositions at different scales, the scale with the largest combined energy and variance is selected for feature extraction.</p>
<p>To precisely locate the J-peak, a reasonable heart rate peak detection mechanism is set up. First, the height of the smallest peak is set to be greater than the average value of the positive portion, which effectively filters out low-amplitude interference signals. Then, the significance of the peak is set as 0.3 times the standard deviation, which filters out insignificant peaks and ensures that the detected peaks are more reliable. Next, the peak interval is set to be between 0.4 and 1.4&#x202F;s to capture transient heart rate fluctuations caused by noise or interference, avoiding the omission of critical heart rate information. Finally, the position of the J-peak is extracted from the heart rate signal. The results are shown in <xref ref-type="fig" rid="fig5">Figure 5</xref>.</p>
<fig position="float" id="fig5">
<label>Figure 5</label>
<caption>
<p>Visualization of peak extraction from heart rate signal features.</p>
</caption>
<graphic xlink:href="fpubh-13-1608725-g005.tif">
<alt-text content-type="machine-generated">Line graph titled "Extracted Heart Rate Signal with Detected Peaks" showing a heart rate signal over 30 seconds. Blue line represents the heart rate signal with oscillating amplitude. Orange dots mark detected peaks on the signal. Amplitude ranges from negative two thousand to positive two thousand.</alt-text>
</graphic>
</fig>
<p>To eliminate random errors caused by electrode contact issues and abnormal pulsations, an outlier handling method was designed. First, the first-order difference of all J-peak positions within a 30-s segment is calculated to generate the JJ<sub>i</sub> sequence, and the average value of the sequence is computed. Then, outliers that are smaller than 0.3 times the average value and larger than 1.5 times the average value are removed and replaced with the average value of the sequence.</p>
</sec>
<sec id="sec5">
<label>2.1.2</label>
<title>Respiratory signal processing</title>
<p>To effectively extract respiratory event information from the BCG signals, this study employs a Butterworth low-pass filter, with a cutoff frequency set at 0.5&#x202F;Hz and using bidirectional filtering to effectively separate the respiratory signals from the BCG data. Then, by directly setting the distance threshold to 2&#x202F;s, peak points are successfully extracted (the results are shown in <xref ref-type="fig" rid="fig6">Figure 6</xref>), and the first-order difference of all peak positions is calculated, forming the BB<sub>i</sub> sequence.</p>
<fig position="float" id="fig6">
<label>Figure 6</label>
<caption>
<p>Visualization of peak extraction from respiratory signal features.</p>
</caption>
<graphic xlink:href="fpubh-13-1608725-g006.tif">
<alt-text content-type="machine-generated">Graph depicting a respiratory signal over time with amplitude on the vertical axis and time in seconds on the horizontal axis. The waveform oscillates periodically, with orange dots marking detected peaks at regular intervals.</alt-text>
</graphic>
</fig>
</sec>
</sec>
<sec id="sec6">
<label>2.2</label>
<title>Feature extraction and feature selection</title>
<sec id="sec7">
<label>2.2.1</label>
<title>Feature extraction method based on multi-scale time window</title>
<p>This study adopts a multi-scale time window method to extract time-domain features at different time scales and explores the potential relationship between these features and sleep stages. By extracting time-domain features from longer time-scale windows, the long-term trends, state transitions, and physiological changes in the sleep signal can be analyzed more comprehensively. This approach helps capture the dynamic characteristics of sleep cycles, thereby improving the accuracy and robustness of sleep stage recognition. Therefore, this study concatenates each 30-s time segment with the subsequent 1, 3, 9, and 19 segments (representing 1-, 2-, 5-, and 10-min time series, respectively), from which time-domain features are extracted. This multi-scale time-domain feature extraction method aims to reveal the temporal patterns of sleep signals at different time scales, providing richer information for more precise classification of sleep stages.</p>
</sec>
<sec id="sec8">
<label>2.2.2</label>
<title>Attention mechanism for weighted feature selection</title>
<p>The attention mechanism is a key concept in the field of deep learning, inspired by the way biological systems in humans focus on important features when processing large amounts of information. By emulating this mechanism, models can better focus on task-relevant information when handling complex data (<xref ref-type="bibr" rid="ref32">32</xref>). This allows the model to dynamically prioritize important features and reducing reliance on irrelevant ones.</p>
<p>In this study, multiple fully connected layers (Dense Layers) are used to learn more complex feature mappings, assigning weight values to each feature. BatchNormalization is added after each Dense layer to normalize activations, helping to improve training speed and stability. A Dropout layer is then included to reduce overfitting. Finally, a sigmoid activation function is used to ensure that the weights are between 0 and 1, reflecting the relative importance of each feature in the model. Features with higher weights receive more attention, while features with lower weights have less influence. This weighting mechanism allows the subsequent feature selection model to filter features more accurately, focusing on learning the most important features for the task and avoiding interference from noisy features during model training.</p>
</sec>
<sec id="sec9">
<label>2.2.3</label>
<title>XGBoost-based feature selection for high-dimensional HRV and RRV data</title>
<p>High-dimensional HRV and RRV features can be extracted from the JJ<sub>i</sub> and BBi sequences of 30-s and longer time segments through mathematical analysis. However, these features often contain a significant amount of noise and redundancy. On the one hand, certain individual features contribute little to model accuracy and may even have a negative impact on performance, and are thus considered noise features. On the other hand, different physiological features may exhibit similar variation trends within the same sleep stage, leading to a certain degree of redundancy among features. Therefore, this study adopts the XGBoost algorithm for feature selection (<xref ref-type="bibr" rid="ref33">33</xref>). The core idea of XGBoost is to optimize the model by minimizing the objective function, which consists of a loss function and a regularization term, as defined in <xref ref-type="disp-formula" rid="EQ1">Equation (1)</xref>:</p><disp-formula id="EQ1">
<label>(1)</label>
<mml:math id="M1">
<mml:mi mathvariant="italic">Obj</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>&#x03B8;</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo movablelimits="false">&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
<mml:mi>L</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo stretchy="true">&#x0302;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:munderover>
<mml:mo movablelimits="false">&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>K</mml:mi>
</mml:munderover>
<mml:mi>&#x03A9;</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula><p>where <inline-formula>
<mml:math id="M2">
<mml:mi>L</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo stretchy="true">&#x0302;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> is the loss function, representing the error between the true value <inline-formula>
<mml:math id="M3">
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> and the predicted value <inline-formula>
<mml:math id="M4">
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo stretchy="true">&#x0302;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula>;<inline-formula>
<mml:math id="M5">
<mml:mi>&#x03A9;</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">k</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</inline-formula> is the regularization term used to control the model&#x2019;s complexity and prevent overfitting. In the optimization process, XGBoost approximates the loss function through a second-order Taylor expansion, as defined in <xref ref-type="disp-formula" rid="EQ2">Equation (2)</xref>:</p><disp-formula id="EQ2">
<label>(2)</label>
<mml:math id="M6">
<mml:mi mathvariant="italic">Obj</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>&#x03B8;</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>&#x2248;</mml:mo>
<mml:munderover>
<mml:mo movablelimits="false">&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
<mml:mo stretchy="true">[</mml:mo>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mi>f</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mi>f</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo stretchy="true">]</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>&#x03A9;</mml:mi>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula><p>where <inline-formula>
<mml:math id="M7">
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> and <inline-formula>
<mml:math id="M8">
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> are the first-order and second-order derivatives, representing the gradient and curvature, respectively, and they help the model converge more quickly. The XGBoost algorithm calculates the weight of each feature.</p>
<p>To ensure that the selected feature set is both representative and effectively captures important information related to the research objective, this study first applies the attention mechanism for feature weighting. The weighted features are then input into the XGBoost algorithm for feature selection. After obtaining the weight of each feature, the features are sorted by their weights, and those whose weight proportions exceed a certain threshold are selected. Next, a dynamic feature set update strategy is employed, where the selected features are re-input into the algorithm for further iterative calculation, gradually refining the feature set. This process effectively avoids interference from low-weight or noisy features on the calculation results of high-weight features and helps retain the features most influential to model performance. The process flow diagram of this method is shown in the <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p>
<fig position="float" id="fig7">
<label>Figure 7</label>
<caption>
<p>Architecture diagram of a feature selection model based on attention mechanism combined with XGBoost.</p>
</caption>
<graphic xlink:href="fpubh-13-1608725-g007.tif">
<alt-text content-type="machine-generated">Flowchart of the INFO Algorithm. Feature data passes through an Attention Layer, resulting in weighted features. This undergoes processing by XGBoost using the TPE Algorithm, involving Five-Fold Cross Validation and Gini Importance Calculation. The output features are ranked by weight, selecting the top n features. The feature set is updated with optimal parameters, producing the final feature data.</alt-text>
</graphic>
</fig>
</sec>
</sec>
<sec id="sec10">
<label>2.3</label>
<title>INFO algorithm for optimizing parameter selection and enhancing model generalization</title>
<p>To reduce the impact of parameter combinations on model training performance, this study adopts the Weighted Mean of Vectors algorithm (INFO) (<xref ref-type="bibr" rid="ref34">34</xref>), which aims to enhance the model&#x2019;s generalization ability by optimizing its parameter configuration. The algorithm is based on the principle of weighted mean and updates the positions of the vectors through three key steps: update rules, vector combination, and local search. First, in the update rule stage, the algorithm combines the mean method with the convergence acceleration principle to generate new optimized vectors, thereby enhancing the stability and convergence speed of the search process. Next, in the vector combination stage, the optimized vectors obtained from the update rule are combined with the original vectors using a weighted approach, enhancing the information extension and development capability to improve global optimization performance. Finally, in the local search stage, the algorithm uses global position information and the weighted mean strategy to perform a local search, effectively avoiding the trap of local optima and ensuring that the search process moves toward the global optimal solution. This optimization algorithm not only enhances the model&#x2019;s search capability in high-dimensional spaces but also improves its robustness and generalization ability in complex tasks.</p>
</sec>
<sec id="sec11">
<label>2.4</label>
<title>SMOTE for addressing class imbalance in sleep stage data</title>
<p>To address the issue of class imbalance in the data samples due to the low proportion of the N1 stage during the sleep cycle, this study employs the Synthetic Minority Over-sampling Technique (SMOTE) (<xref ref-type="bibr" rid="ref35">35</xref>) for feature augmentation. The advantages of the SMOTE feature augmentation method are as follows: First, it generates new synthetic sample points by interpolating between minority class samples rather than simply replicating existing minority class samples. Second, in the feature space, the method selects several nearest neighbors of a minority class sample and generates new samples via linear interpolation between the sample and these neighbors. The formula for SMOTE is defined in <xref ref-type="disp-formula" rid="EQ3">Equation (3)</xref>:</p><disp-formula id="EQ3">
<label>(3)</label>
<mml:math id="M9">
<mml:mi mathvariant="italic">New</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mtext mathvariant="italic">Sample</mml:mtext>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>&#x03BB;</mml:mi>
<mml:mo>&#x00D7;</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi mathvariant="italic">NN</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula><p>where <inline-formula>
<mml:math id="M10">
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> is the minority class sample, <inline-formula>
<mml:math id="M11">
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi mathvariant="italic">NN</mml:mi>
</mml:msubsup>
</mml:math>
</inline-formula> is its nearest neighbor, and <inline-formula>
<mml:math id="M12">
<mml:mi>&#x03BB;</mml:mi>
</mml:math>
</inline-formula> is a random number between 0 and 1, representing the interpolation ratio. This approach increases the number of minority class samples while retaining the original distribution of the data, thus avoiding the overfitting thus avoiding the overfitting that may result from simply duplicating minority class samples.</p>
</sec>
<sec id="sec12">
<label>2.5</label>
<title>Sleep staging based on fast-ABC boost</title>
<p>To address the problem of low accuracy in traditional classifiers, this study proposes a classifier modeling strategy based on Fast-ABC Boost (<xref ref-type="bibr" rid="ref36">36</xref>). This model is an iterative algorithm that integrates a series of weak classifiers (regression trees) and selects appropriate base classes during the iteration process, achieving strong classification performance. <xref ref-type="disp-formula" rid="EQ4">Equation (4)</xref> defines the first derivative of the loss function with respect to the base class, while <xref ref-type="disp-formula" rid="EQ5">Equation (5)</xref> defines the second derivative.</p><disp-formula id="EQ4">
<label>(4)</label>
<mml:math id="M13">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
</mml:math>
</disp-formula><disp-formula id="EQ5">
<label>(5)</label>
<mml:math id="M14">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>&#x2202;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</disp-formula>
<p>Where <inline-formula>
<mml:math id="M15">
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> represents the probability of the <italic>i</italic>th sample belonging to category k. <inline-formula>
<mml:math id="M16">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mi mathvariant="normal">L</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mi mathvariant="normal">F</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> denotes the first derivative of the loss function <inline-formula>
<mml:math id="M17">
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> with respect to the base class <inline-formula>
<mml:math id="M18">
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, providing gradient information about the loss function with respect to the base class. This guides the algorithm to adjust the direction under the current category probabilities to minimize the loss. <inline-formula>
<mml:math id="M19">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>&#x2202;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi mathvariant="normal">L</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="normal">F</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">k</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mi>&#x2202;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>&#x2202;</mml:mi>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:math>
</inline-formula> represents the second derivative of the loss function <inline-formula>
<mml:math id="M20">
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
</inline-formula> with respect to the base class <inline-formula>
<mml:math id="M21">
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="normal">F</mml:mi>
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, providing curvature information of the loss function and helping to select an appropriate step size, accelerating the convergence of the algorithm. By integrating these derivatives, the base class selection algorithm can adjust the category probabilities in time during the iteration process to optimize model performance. This allows the algorithm to make more informed decisions during the tree splitting process, thus improving the robustness and accuracy of the model. Compared to the traditional ABCLogitBoost, which uses an &#x201C;exhaustive search&#x201D; strategy, the Fast-ABC Boost algorithm improves computational efficiency and enhances model robustness by introducing three new parameters for smarter and more efficient base class selection. In ABCLogitBoost, base class selection is performed through exhaustive search, where the algorithm tries each class as a base class and selects the one that minimizes the training loss. Fast-ABC Boost introduces the &#x201C;s-worst class&#x201D; strategy: During each iteration, the algorithm only selects the best-performing class from the s worst-performing classes (where 1&#x202F;&#x2264;&#x202F;s&#x202F;&#x2264;&#x202F;K, and K is the total number of classes). Additionally, Fast-ABC Boost introduces the &#x201C;gap&#x201D; parameter g and the &#x201C;warm-up&#x201D; parameter w to optimize the frequency of base class selection. Base class selection begins after w iterations of warm-up, and then the search is performed once every g&#x202F;+&#x202F;1 iterations. This reduces the frequency of base class selection, lowering computational costs, while maintaining model efficiency without significantly affecting classification performance. By appropriately setting the parameters s, g and w, Fast-ABC Boost can achieve better classification performance than the exhaustive strategy, demonstrating superior robustness and efficiency in multi-class tasks.</p>
<p>In this study, the dataset is randomly divided into a training set and a test set in an 8:2 ratio. The INFO algorithm is used for systematic tuning of the model&#x2019;s hyperparameters. By testing each possible s-worst class option as the base class selection scheme, the aim is to minimize the impact of parameter combinations on model performance and generalization. Once the optimal hyperparameters are determined, they are fixed and used in all subsequent experiments. To obtain a robust and realistic estimate of model performance, we further conduct five-fold cross-validation across the entire dataset using the selected parameter configuration. Final performance metrics are reported as the average across all five folds.</p>
</sec>
</sec>
<sec id="sec13">
<label>3</label>
<title>Experiment</title>
<sec id="sec14">
<label>3.1</label>
<title>Dataset description</title>
<p>The BCG data utilized in this study were provided by Bobo Technology (Suzhou) Co., Ltd., in collaboration with the affiliated Sir Run Run Shaw Hospital. The project received ethical approval from the Ethics Committee of Sir Run Run Shaw Hospital, Zhejiang University School of Medicine (Approval No. 20190520-67). The raw signal data were collected from 10 independent recordings using a BCG-based sleep monitoring device (Model: MD-EA, Medical Device Registration No. 20232070772). Each recording captured a full night of sleep from a different subject, with an average wake time of 1.02&#x202F;&#x00B1;&#x202F;0.78&#x202F;h, an average sleep time of 7.84&#x202F;&#x00B1;&#x202F;1.43&#x202F;h, and an average total monitoring duration of 8.86&#x202F;&#x00B1;&#x202F;0.74&#x202F;h. The study population consisted of 10 healthy individuals (3 males and 7 females), with an average age of 28&#x202F;years. All participants were in good physical condition with no known health issues. All data were manually calibrated by three licensed physicians from Sir Run Run Shaw Hospital, affiliated with Zhejiang University&#x2019;s Medical College. Sleep stages were annotated in 30-s epochs. Any segments with inconsistent annotations among the three physicians were considered invalid and subsequently excluded from the dataset. After this rigorous validation process, a total of 10,201 valid sample data points were retained for analysis. Details of the dataset parameters are summarized in <xref ref-type="table" rid="tab1">Table 1</xref>.</p>
<table-wrap position="float" id="tab1">
<label>Table 1</label>
<caption>
<p>Sleep sample data statistics.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Number category</th>
<th align="center" valign="top">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">WK</td>
<td align="center" valign="top">1,082 (10.61%)</td>
</tr>
<tr>
<td align="left" valign="top">REM</td>
<td align="center" valign="top">2,183 (21.40%)</td>
</tr>
<tr>
<td align="left" valign="top">NREM (N1)</td>
<td align="center" valign="top">442 (04.33%)</td>
</tr>
<tr>
<td align="left" valign="top">NREM (N2)</td>
<td align="center" valign="top">4,414 (43.27%)</td>
</tr>
<tr>
<td align="left" valign="top">NREM (N3)</td>
<td align="center" valign="top">2080 (20.39%)</td>
</tr>
<tr>
<td align="left" valign="top">Total</td>
<td align="center" valign="top">10,201 (100%)</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="sec15">
<label>3.2</label>
<title>Evaluation index</title>
<p>To evaluate the performance of the models in the sleep staging task, this study employed accuracy (ACC), precision (PRE), recall, F1-score, and Cohen&#x2019;s kappa as evaluation metrics. The calculation methods for these metrics are presented in <xref ref-type="disp-formula" rid="EQ6">Equations (6</xref>&#x2013;<xref ref-type="disp-formula" rid="EQ12">12)</xref>.</p><disp-formula id="EQ6">
<label>(6)</label>
<mml:math id="M22">
<mml:mtext mathvariant="italic">Accuracy</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">TN</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">TN</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FN</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
</disp-formula><disp-formula id="EQ7">
<label>(7)</label>
<mml:math id="M23">
<mml:mtext mathvariant="italic">Precision</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FP</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
</disp-formula><disp-formula id="EQ8">
<label>(8)</label>
<mml:math id="M24">
<mml:mi>F</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">TP</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FN</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
</disp-formula><disp-formula id="EQ9">
<label>(9)</label>
<mml:math id="M25">
<mml:mtext mathvariant="italic">Recall</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FN</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
</disp-formula><disp-formula id="EQ10">
<label>(10)</label>
<mml:math id="M26">
<mml:mtext mathvariant="italic">Kappa</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>e</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
</disp-formula><disp-formula id="EQ11">
<label>(11)</label>
<mml:math id="M27">
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">TN</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">TN</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FN</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
</disp-formula><disp-formula id="EQ12">
<label>(12)</label>
<mml:math id="M28">
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>e</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FN</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FP</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">TN</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FP</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">TN</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FN</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="true">(</mml:mo>
<mml:mi mathvariant="italic">TP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FP</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">TN</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">FN</mml:mi>
<mml:mo stretchy="true">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mfrac>
</mml:math>
</disp-formula>
<p>Where True Positive (TP) refers to the number of samples that are correctly classified as category <italic>i</italic>. False Negative (FN) refers to the number of category <italic>i</italic> samples that are misclassified as not belonging to category <italic>i</italic>. False Positive (FP) refers to the number of non-category <italic>i</italic> samples that are misclassified as belonging to category <italic>i</italic>. True Negative (TN) refers to the number of samples correctly identified as not belonging to category <italic>i</italic>.</p>
</sec>
</sec>
<sec sec-type="results" id="sec16">
<label>4</label>
<title>Results</title>
<sec id="sec17">
<label>4.1</label>
<title>Feature selection</title>
<p>This study is based on the first-order difference of the peak position sequences of heart rate and respiratory signals in 30-s and longer time segments. A feature extraction method based on the JJ<sub>i</sub> and BB<sub>i</sub> sequences is designed to explore their application in the analysis of heart rate variability (HRV) and respiratory rate variability (RRV) feature sequences. We comprehensively considered various HRV and RRV features, including time-domain, frequency-domain, non-linear domain, complexity index, Poincar&#x00E9; plot geometry, and long-time window time-domain features. These features can more comprehensively characterize the complex variations in physiological signals and reflect the long-term trends of sleep. A total of 232 HRV and RRV features were extracted, as detailed in <xref ref-type="table" rid="tab2">Table 2</xref>. To further select HRV and RRV features that are strongly correlated with different sleep stages, feature selection was conducted using an attention mechanism combined with the XGBoost algorithm. The parameters were determined by the INFO algorithm, with the following settings: (Number of iterations: 3, Weight ratio: 0.796). Ultimately, 70 features were selected, and their weights are shown in <xref ref-type="fig" rid="fig8">Figure 8</xref>.</p>
<table-wrap position="float" id="tab2">
<label>Table 2</label>
<caption>
<p>HRV and RRV feature statistics.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top">Count</th>
<th align="left" valign="top">Feature</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top"><bold>34</bold></td>
<td align="left" valign="top"><bold>Time domain features</bold></td>
</tr>
<tr>
<td align="left" valign="top">10</td>
<td align="left" valign="top">Mean, Median, Max, Min, and MAD for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top">12</td>
<td align="left" valign="top">RMSSD, SDNN, SDSD, CVNN, CVSD, and RMSA for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top">4</td>
<td align="left" valign="top">NN20, PNN20, NN50, and PNN50 for the JJ sequence.</td>
</tr>
<tr>
<td align="left" valign="top">4</td>
<td align="left" valign="top">Mean, Min, Max, and Std for the HR sequence.</td>
</tr>
<tr>
<td align="left" valign="top">4</td>
<td align="left" valign="top">TINN and HTI for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top"><bold>44</bold></td>
<td align="left" valign="top"><bold>Frequency domain features</bold></td>
</tr>
<tr>
<td align="left" valign="top">16</td>
<td align="left" valign="top">LF, HF, MF, VL, TF, TLF, ULF, and Ttlpwr for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top">10</td>
<td align="left" valign="top">LFf, HFf, MFf, TLFf, and TFf for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top">8</td>
<td align="left" valign="top">LFn, HFn, MFn, and TLFn for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top">6</td>
<td align="left" valign="top">LFHF, MFLF, and TLFLF for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top">4</td>
<td align="left" valign="top">HFmaxf and HFamp for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top"><bold>14</bold></td>
<td align="left" valign="top"><bold>Characteristics of the poincar&#x00E9; plot geometry</bold></td>
</tr>
<tr>
<td align="left" valign="top">8</td>
<td align="left" valign="top">SD1, SD2, SD1SD2, and S for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top">6</td>
<td align="left" valign="top">CVI, CSI, and CSI_Modified for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top"><bold>14</bold></td>
<td align="left" valign="top"><bold>Indices of heart rate asymmetry</bold></td>
</tr>
<tr>
<td align="left" valign="top">14</td>
<td align="left" valign="top">GI, C1d, C1a, SD1d, SD1a, C2d, C2a, SD2d, SD2a, SD2I, Cd, Ca, SDNNd, and SDNNa for the JJ sequence.</td>
</tr>
<tr>
<td align="left" valign="top"><bold>2</bold></td>
<td align="left" valign="top"><bold>Indices of complexity</bold></td>
</tr>
<tr>
<td align="left" valign="top">2</td>
<td align="left" valign="top">SampEn for the JJ sequence and BB sequence.</td>
</tr>
<tr>
<td align="left" valign="top"><bold>124</bold></td>
<td align="left" valign="top"><bold>Time series characteristics under multi-scale time windows</bold></td>
</tr>
<tr>
<td align="left" valign="top">48</td>
<td align="left" valign="top">Mean, Median, Mode, Max, Min, and MAD for the JJ sequenceand BB sequence in the i-minute time window (i&#x202F;=&#x202F;1, 2, 5, 10).</td>
</tr>
<tr>
<td align="left" valign="top">56</td>
<td align="left" valign="top">RMSSD, SDNN, SDSD, CVNN, CVSD, SDANN, SDNNI for the JJ sequence and BB sequence in the i-minute time window (i&#x202F;=&#x202F;1, 2, 5, 10).</td>
</tr>
<tr>
<td align="left" valign="top">4</td>
<td align="left" valign="top">PNN50 for the JJ sequence in the i-minute time window (i&#x202F;=&#x202F;1, 2, 5, 10).</td>
</tr>
<tr>
<td align="left" valign="top">16</td>
<td align="left" valign="top">Mean, Min, Max, and Std for the HR sequence in the i-minute time window (i&#x202F;=&#x202F;1, 2, 5, 10).</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig position="float" id="fig8">
<label>Figure 8</label>
<caption>
<p>Analysis of sleep stage feature weights.</p>
</caption>
<graphic xlink:href="fpubh-13-1608725-g008.tif">
<alt-text content-type="machine-generated">Bar chart showing feature weights sorted by value. The feature with the highest weight is BB_median_2min at around 0.030, followed by others like BB_median_10min, BB_SDNN_2min, and BB_CVNN_5min, with decreasing weight values. The x-axis lists feature names, and the y-axis represents weight values.</alt-text>
</graphic>
</fig>
</sec>
<sec id="sec18">
<label>4.2</label>
<title>Model performance evaluation</title>
<p>The parameters of the Fast-ABC Boost model were obtained using the INFO algorithm during hyperparameter tuning on the initial 8:2 split. To ensure consistency and minimize the influence of parameter combinations, the selected configuration is fixed and applied to all subsequent experiments. The final hyperparameter settings are as follows: (Learning rate: 0.4546, Maximum number of iterations: 645, Search: 3, Gap: 19, Warm-up: 34). To provide a robust and generalizable evaluation, all performance metrics reported below were obtained through five-fold cross-validation conducted on the entire dataset. The experimental groups are set as follows:</p><list list-type="bullet">
<list-item>
<p>Experiment 1: Validation and evaluation of the datasets using HRV and RRV features, with results shown in <xref ref-type="table" rid="tab3">Table 3</xref>.</p>
</list-item>
<list-item>
<p>Experiment 2: Validation and evaluation of the datasets using HRV and RRV features within long time windows, with results shown in <xref ref-type="table" rid="tab4">Table 4</xref>.</p>
</list-item>
<list-item>
<p>Experiment 3: Validation and evaluation of the datasets using HRV and RRV features within long time windows, followed by dimensionality reduction using the feature selection framework proposed in this study, with results shown in <xref ref-type="table" rid="tab5">Table 5</xref>.</p>
</list-item>
<list-item>
<p>Experiment 4: Validation and evaluation of the datasets using HRV and RRV features within long time windows, followed by dimensionality reduction using the feature selection model and mainstream linear and nonlinear dimensionality reduction models, as shown in <xref ref-type="table" rid="tab6">Table 6</xref>.</p>
</list-item>
</list>
<table-wrap position="float" id="tab3">
<label>Table 3</label>
<caption>
<p>Sleep staging results using HRV and RRV features.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th rowspan="6">Confusion matrix</th>
<th align="center" valign="top" colspan="3">Sleep stage performance</th>
<th align="center" valign="top" colspan="2" rowspan="2">Overall performance</th>
</tr>
<tr>
<th/>
<th align="center" valign="top">N1</th>
<th align="center" valign="top">N2</th>
<th align="center" valign="top">N3</th>
<th align="center" valign="top">REM</th>
<th align="center" valign="top">W</th>
<th align="center" valign="top">Recall</th>
<th align="center" valign="top">PRE</th>
<th align="center" valign="top">F1</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">N1</td>
<td align="center" valign="top">11</td>
<td align="center" valign="top">249</td>
<td align="center" valign="top">35</td>
<td align="center" valign="top">95</td>
<td align="center" valign="top">52</td>
<td align="center" valign="top">02.49%</td>
<td align="center" valign="top">11.00%</td>
<td align="center" valign="top">04.06%</td>
<td align="center" valign="top">ACC</td>
<td align="center" valign="top">57.90%</td>
</tr>
<tr>
<td align="left" valign="top">N2</td>
<td align="center" valign="top">39</td>
<td align="center" valign="top">3,361</td>
<td align="center" valign="top">459</td>
<td align="center" valign="top">424</td>
<td align="center" valign="top">131</td>
<td align="center" valign="top">76.14%</td>
<td align="center" valign="top">60.42%</td>
<td align="center" valign="top">67.37%</td>
<td align="center" valign="top">PRE</td>
<td align="center" valign="top">44.21%</td>
</tr>
<tr>
<td align="left" valign="top">N3</td>
<td align="center" valign="top">9</td>
<td align="center" valign="top">909</td>
<td align="center" valign="top">972</td>
<td align="center" valign="top">138</td>
<td align="center" valign="top">52</td>
<td align="center" valign="top">46.73%</td>
<td align="center" valign="top">57.72%</td>
<td align="center" valign="top">51.65%</td>
<td align="center" valign="top">Recall</td>
<td align="center" valign="top">48.12%</td>
</tr>
<tr>
<td align="left" valign="top">REM</td>
<td align="center" valign="top">29</td>
<td align="center" valign="top">788</td>
<td align="center" valign="top">149</td>
<td align="center" valign="top">1,046</td>
<td align="center" valign="top">171</td>
<td align="center" valign="top">47.92%</td>
<td align="center" valign="top">54.14%</td>
<td align="center" valign="top">50.84%</td>
<td align="center" valign="top">F1</td>
<td align="center" valign="top">47.25%</td>
</tr>
<tr>
<td align="left" valign="top">W</td>
<td align="center" valign="top">12</td>
<td align="center" valign="top">256</td>
<td align="center" valign="top">69</td>
<td align="center" valign="top">229</td>
<td align="center" valign="top">516</td>
<td align="center" valign="top">47.69%</td>
<td align="center" valign="top">55.97%</td>
<td align="center" valign="top">51.50%</td>
<td align="center" valign="top">Kappa</td>
<td align="center" valign="top">50.01%</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="tab4">
<label>Table 4</label>
<caption>
<p>Sleep staging results using HRV and RRV features from long time windows.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th rowspan="6">Confusion matrix</th>
<th align="center" valign="top" colspan="3">Sleep stage performance</th>
<th align="center" valign="top" colspan="2" rowspan="2">Overall performance</th>
</tr>
<tr>
<th/>
<th align="center" valign="top">N1</th>
<th align="center" valign="top">N2</th>
<th align="center" valign="top">N3</th>
<th align="center" valign="top">REM</th>
<th align="center" valign="top">W</th>
<th align="center" valign="top">Recall</th>
<th align="center" valign="top">PRE</th>
<th align="center" valign="top">F1</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">N1</td>
<td align="center" valign="top">50</td>
<td align="center" valign="top">287</td>
<td align="center" valign="top">18</td>
<td align="center" valign="top">50</td>
<td align="center" valign="top">37</td>
<td align="center" valign="top">11.31%</td>
<td align="center" valign="top">23.04%</td>
<td align="center" valign="top">15.17%</td>
<td align="center" valign="top">ACC</td>
<td align="center" valign="top">84.02%</td>
</tr>
<tr>
<td align="left" valign="top">N2</td>
<td align="center" valign="top">87</td>
<td align="center" valign="top">3,983</td>
<td align="center" valign="top">157</td>
<td align="center" valign="top">118</td>
<td align="center" valign="top">69</td>
<td align="center" valign="top">90.24%</td>
<td align="center" valign="top">82.60%</td>
<td align="center" valign="top">86.25%</td>
<td align="center" valign="top">PRE</td>
<td align="center" valign="top">70.30%</td>
</tr>
<tr>
<td align="left" valign="top">N3</td>
<td align="center" valign="top">11</td>
<td align="center" valign="top">279</td>
<td align="center" valign="top">1735</td>
<td align="center" valign="top">32</td>
<td align="center" valign="top">23</td>
<td align="center" valign="top">83.41%</td>
<td align="center" valign="top">89.29%</td>
<td align="center" valign="top">86.25%</td>
<td align="center" valign="top">Recall</td>
<td align="center" valign="top">73.47%</td>
</tr>
<tr>
<td align="left" valign="top">REM</td>
<td align="center" valign="top">26</td>
<td align="center" valign="top">127</td>
<td align="center" valign="top">11</td>
<td align="center" valign="top">1987</td>
<td align="center" valign="top">32</td>
<td align="center" valign="top">91.02%</td>
<td align="center" valign="top">88.63%</td>
<td align="center" valign="top">89.81%</td>
<td align="center" valign="top">F1</td>
<td align="center" valign="top">71.34%</td>
</tr>
<tr>
<td align="left" valign="top">W</td>
<td align="center" valign="top">43</td>
<td align="center" valign="top">146</td>
<td align="center" valign="top">22</td>
<td align="center" valign="top">55</td>
<td align="center" valign="top">816</td>
<td align="center" valign="top">75.42%</td>
<td align="center" valign="top">83.52%</td>
<td align="center" valign="top">79.26%</td>
<td align="center" valign="top">Kappa</td>
<td align="center" valign="top">80.74%</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="tab5">
<label>Table 5</label>
<caption>
<p>Sleep staging results using dimensionality-reduced HRV and RRV features from long time windows.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th rowspan="6">Confusion matrix</th>
<th align="center" valign="top" colspan="3">Sleep stage performance</th>
<th align="center" valign="top" colspan="2" rowspan="2">Overall performance</th>
</tr>
<tr>
<th/>
<th align="center" valign="top">N1</th>
<th align="center" valign="top">N2</th>
<th align="center" valign="top">N3</th>
<th align="center" valign="top">REM</th>
<th align="center" valign="top">W</th>
<th align="center" valign="top">Recall</th>
<th align="center" valign="top">PRE</th>
<th align="center" valign="top">F1</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">N1</td>
<td align="center" valign="top">116</td>
<td align="center" valign="top">252</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">34</td>
<td align="center" valign="top">37</td>
<td align="center" valign="top">26.24%</td>
<td align="center" valign="top">49.36%</td>
<td align="center" valign="top">34.27%</td>
<td align="center" valign="top">ACC</td>
<td align="center" valign="top">89.85%</td>
</tr>
<tr>
<td align="left" valign="top">N2</td>
<td align="center" valign="top">63</td>
<td align="center" valign="top">4,143</td>
<td align="center" valign="top">111</td>
<td align="center" valign="top">61</td>
<td align="center" valign="top">36</td>
<td align="center" valign="top">93.86%</td>
<td align="center" valign="top">87.87%</td>
<td align="center" valign="top">90.77%</td>
<td align="center" valign="top">PRE</td>
<td align="center" valign="top">78.15%</td>
</tr>
<tr>
<td align="left" valign="top">N3</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">165</td>
<td align="center" valign="top">1901</td>
<td align="center" valign="top">6</td>
<td align="center" valign="top">7</td>
<td align="center" valign="top">91.39%</td>
<td align="center" valign="top">93.74%</td>
<td align="center" valign="top">92.55%</td>
<td align="center" valign="top">Recall</td>
<td align="center" valign="top">83.25%</td>
</tr>
<tr>
<td align="left" valign="top">REM</td>
<td align="center" valign="top">9</td>
<td align="center" valign="top">53</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">2,115</td>
<td align="center" valign="top">6</td>
<td align="center" valign="top">96.89%</td>
<td align="center" valign="top">94.17%</td>
<td align="center" valign="top">95.51%</td>
<td align="center" valign="top">F1</td>
<td align="center" valign="top">79.88%</td>
</tr>
<tr>
<td align="left" valign="top">W</td>
<td align="center" valign="top">46</td>
<td align="center" valign="top">102</td>
<td align="center" valign="top">13</td>
<td align="center" valign="top">30</td>
<td align="center" valign="top">891</td>
<td align="center" valign="top">82.35%</td>
<td align="center" valign="top">91.20%</td>
<td align="center" valign="top">86.55%</td>
<td align="center" valign="top">Kappa</td>
<td align="center" valign="top">87.74%</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="tab6">
<label>Table 6</label>
<caption>
<p>Performance evaluation of feature selection model.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top" rowspan="2">Method</th>
<th align="center" valign="top" colspan="5">Evaluation index</th>
</tr>
<tr>
<th align="center" valign="top">ACC</th>
<th align="center" valign="top">PRE</th>
<th align="center" valign="top">Recall</th>
<th align="center" valign="top">F1</th>
<th align="center" valign="top">Kappa</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top">PCA</td>
<td align="center" valign="top">59.03%</td>
<td align="center" valign="top">43.83%</td>
<td align="center" valign="top">52.25%</td>
<td align="center" valign="top">45.81%</td>
<td align="center" valign="top">52.27%</td>
</tr>
<tr>
<td align="left" valign="top">ICA</td>
<td align="center" valign="top">59.19%</td>
<td align="center" valign="top">43.64%</td>
<td align="center" valign="top">52.26%</td>
<td align="center" valign="top">45.61%</td>
<td align="center" valign="top">52.19%</td>
</tr>
<tr>
<td align="left" valign="top">LDA</td>
<td align="center" valign="top">62.07%</td>
<td align="center" valign="top">57.04%</td>
<td align="center" valign="top">58.43%</td>
<td align="center" valign="top">57.41%</td>
<td align="center" valign="top">54.35%</td>
</tr>
<tr>
<td align="left" valign="top">t-SNE</td>
<td align="center" valign="top">49.76%</td>
<td align="center" valign="top">40.58%</td>
<td align="center" valign="top">42.13%</td>
<td align="center" valign="top">41.10%</td>
<td align="center" valign="top">39.23%</td>
</tr>
<tr>
<td align="left" valign="top">Autoencoder</td>
<td align="center" valign="top">72.06%</td>
<td align="center" valign="top">58.90%</td>
<td align="center" valign="top">63.11%</td>
<td align="center" valign="top">60.25%</td>
<td align="center" valign="top">66.43%</td>
</tr>
<tr>
<td align="left" valign="top">LLE</td>
<td align="center" valign="top">73.92%</td>
<td align="center" valign="top">62.02%</td>
<td align="center" valign="top">66.24%</td>
<td align="center" valign="top">63.61%</td>
<td align="center" valign="top">68.61%</td>
</tr>
<tr>
<td align="left" valign="top">MDS</td>
<td align="center" valign="top">68.96%</td>
<td align="center" valign="top">55.04%</td>
<td align="center" valign="top">60.92%</td>
<td align="center" valign="top">56.86%</td>
<td align="center" valign="top">62.95%</td>
</tr>
<tr>
<td align="left" valign="top">Lasso</td>
<td align="center" valign="top">86.15%</td>
<td align="center" valign="top">72.72%</td>
<td align="center" valign="top">78.12%</td>
<td align="center" valign="top">74.01%</td>
<td align="center" valign="top">83.31%</td>
</tr>
<tr>
<td align="left" valign="top">RFE</td>
<td align="center" valign="top">86.70%</td>
<td align="center" valign="top">75.45%</td>
<td align="center" valign="top">78.62%</td>
<td align="center" valign="top">76.62%</td>
<td align="center" valign="top">83.90%</td>
</tr>
<tr>
<td align="left" valign="top">ReliefF</td>
<td align="center" valign="top">85.27%</td>
<td align="center" valign="top">75.02%</td>
<td align="center" valign="top">77.47%</td>
<td align="center" valign="top">75.87%</td>
<td align="center" valign="top">82.07%</td>
</tr>
<tr>
<td align="left" valign="top">XGBoost</td>
<td align="center" valign="top">87.05%</td>
<td align="center" valign="top">74.56%</td>
<td align="center" valign="top">79.88%</td>
<td align="center" valign="top">76.19%</td>
<td align="center" valign="top">84.39%</td>
</tr>
<tr>
<td align="left" valign="top">Ours</td>
<td align="center" valign="top">89.85%</td>
<td align="center" valign="top">78.15%</td>
<td align="center" valign="top">83.25%</td>
<td align="center" valign="top">79.88%</td>
<td align="center" valign="top">87.74%</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec sec-type="discussion" id="sec19">
<label>5</label>
<title>Discussion</title>
<p>This study establishes the mapping relationship between BCG signal data and sleep stages by analyzing and extracting high-dimensional HRV and RRV features from the BCG signals, thereby linking the signal data to the corresponding sleep stages. Additionally, this study introduces long-time window features to better capture the long-term trends in sleep. Through the feature selection framework that combines the attention mechanism and XGBoost, the majority of the selected features are long-time window features. This underscores the importance of feature extraction using longer time window, which can capture the dynamic changes in biological information and better represent the sequential relationship of sleep as a continuous event, thus deepening the understanding of sleep staging. In experiments using high-dimensional HRV and RRV features, an accuracy of 57.90% was achieved. When incorporating long-time window features, the accuracy increased to 84.02%, representing a 26.12% improvement compared to using only 30-s window features. This highlights the critical role of long-time window features in enhancing sleep staging performance.</p>
<p>Moreover, different feature combinations can influence the performance of the classifier in sleep staging. In experiments comparing HRV and RRV features before and after dimensionality reduction, the dimensionality-reduced dataset achieved an accuracy 5.83% higher than the original, non-reduced dataset. This indicates the presence of redundant and noisy features in the high-dimensional data, which can negatively affect model performance and generalization ability, thus demonstrating the necessity of feature selection.</p>
<p>To rigorously evaluate the effectiveness of our proposed attention-based XGBoost feature selection framework, we first conducted a comprehensive evaluation using a variety of mainstream feature selection and dimensionality reduction techniques, as summarized in <xref ref-type="table" rid="tab6">Table 6</xref>. Among traditional linear methods, PCA and ICA achieved classification accuracies of 59.03 and 59.19%, respectively. LDA performed slightly better at 62.07% due to its supervised nature. However, these methods showed limited performance, likely because they rely on global projections that are not robust to irrelevant or noisy features commonly present in high-dimensional HRV and RRV data. Similar limitations were observed in nonlinear dimensionality reduction methods. For example, t-SNE produced the lowest accuracy (49.76%) among all methods. This is expected, as t-SNE is primarily designed for visualization purposes rather than classification&#x2014;it prioritizes preserving local structure while potentially distorting global relationships. In contrast, other nonlinear methods such as Autoencoder (72.06%), LLE (73.92%), and MDS (68.96%) performed better, although still inferior to feature selection-based approaches. These methods can capture nonlinear patterns to some extent, but often fail to eliminate irrelevant or redundant features, leading to suboptimal classification outcomes. Feature selection methods, including Lasso (86.15%), RFE (86.70%), ReliefF (85.27%), and XGBoost (87.05%), explicitly rank and retain only the most informative features, avoiding the dilution of useful signals. These methods have demonstrated consistently better performance, highlighting the importance of targeted feature filtering over general-purpose dimensionality reduction in noisy physiological datasets.</p>
<p>The proposed method achieved the best overall performance, with an accuracy of 89.85%, outperforming all baseline methods. A key innovation lies in the integration of an attention mechanism with the XGBoost algorithm for feature selection. Specifically, the attention mechanism assigns adaptive weights to each high-dimensional HRV and RRV feature, emphasizing features more relevant to the sleep stage classification task. These weighted features are then input into the XGBoost model, which performs feature selection based on its tree-based importance metrics. Unlike conventional one-pass approaches, the propose method incorporates a multi-round iterative refinement mechanism, wherein attention-based weighting and XGBoost-based ranking are repeatedly updated. This iterative strategy enables progressive suppression of irrelevant or redundant features while reinforcing the influence of informative attributes. These design choices make our method highly robust to the challenges inherent in BCG-derived HRV and RRV features, which are often high-dimensional and noisy. As a result, the proposed framework is particularly effective in isolating features that are strongly correlated with transitions between sleep stages, thus improving not only classification accuracy but also the interpretability and reliability of physiological signal analysis.</p>
</sec>
<sec sec-type="conclusions" id="sec20">
<label>6</label>
<title>Conclusion</title>
<p>This paper proposes a feature dimensionality reduction method based on BCG sleep staging technology to enhance the accuracy of sleep staging. High-dimensional HRV and RRV features extracted from BCG signals are used in conjunction with an attention mechanism and the XGBoost algorithm to select appropriate feature combinations for sleep staging research. Since BCG signals are an indirect recording of cardiac activity, they are subject to noise interference from the external environment and body movements. Therefore, this study employs low-pass filtering and continuous wavelet transform, automatically selecting the appropriate frequency bands in a multi-scale parameter space to separate and reconstruct the respiratory and heart rate signals from the original signal. This process extracts peak information, forming the JJ<sub>i</sub> and BB<sub>i</sub> sequences.</p>
<p>This study presents a novel feature selection framework that effectively bridges deep learning and ensemble learning strategies for physiological signal analysis. By integrating attention-based dynamic weighting with XGBoost and incorporating an iterative refinement mechanism, the framework demonstrates strong robustness to noise and redundancy&#x2014;common challenges in high-dimensional BCG-derived HRV and RRV features. This approach successfully improves sleep stage classification performance.</p>
<p>To address the class imbalance in the dataset, SMOTE is applied to enhance the minority class samples, allowing the model to focus more on these underrepresented classes. Finally, the Fast-ABC Boost model is employed for sleep staging. Experimental results show that the feature set selected by the proposed feature selection framework, when applied to the Fast-ABC Boost model, achieves an accuracy of 89.85%, outperforming mainstream feature dimensionality reduction models in terms of classification performance.</p>
<p>This study utilizes BCG signals for sleep staging. Compared to traditional EEG, EOG, and ECG signals, BCG signals offer the advantage of non-contact measurement, providing richer biological feedback. This sleep staging method holds significant potential for broad application, particularly in home and mobile environments, offering a convenient solution for the auxiliary diagnosis and treatment of sleep disorders. However, due to the current lack of publicly available standard datasets for BCG-based sleep staging, this study relies on a limited dataset annotated by experts. The small sample size constrains the generalizability of the results. Future efforts will focus on constructing large-scale, high-quality datasets to enhance model robustness and promote progress in sleep health technologies.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="sec21">
<title>Data availability statement</title>
<p>Due to the nature of the data (potentially sensitive and identifying), the Ethics Committee of Sir Run Run Shaw Hospital, Zhejiang University School of Medicine did not approve public access to the data. Requests to access the datasets should be directed to BL, <email>bantl@zjsru.edu.cn</email>.</p>
</sec>
<sec sec-type="ethics-statement" id="sec22">
<title>Ethics statement</title>
<p>The studies involving humans were approved by Ethics Committee of Sir Run Run Shaw Hospital, Zhejiang University School of Medicine. The studies were conducted in accordance with the local legislation and institutional requirements. The participants provided their written informed consent to participate in this study.</p>
</sec>
<sec sec-type="author-contributions" id="sec23">
<title>Author contributions</title>
<p>CL: Methodology, Validation, Conceptualization, Software, Writing &#x2013; original draft, Investigation. BL: Project administration, Supervision, Funding acquisition, Writing &#x2013; review &#x0026; editing, Resources. JC: Writing &#x2013; review &#x0026; editing, Formal analysis, Data curation, Supervision, Investigation. ZT: Writing &#x2013; review &#x0026; editing, Investigation, Visualization, Formal analysis.</p>
</sec>
<sec sec-type="funding-information" id="sec24">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research and/or publication of this article. This work was supported in part by the Zhejiang Provincial Natural Science Foundation of China No. LQ23F030002, the &#x201C;Ling Yan&#x201D; Research and Development Project of Science and Technology Department of Zhejiang Province of China under Grant No. 2022C03122, 2023C03161, and Public Welfare Technology Application and Research Projects of Zhejiang Province of China under Grant No. LGF22F020006.</p>
</sec>
<sec sec-type="COI-statement" id="sec25">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="ai-statement" id="sec26">
<title>Generative AI statement</title>
<p>The authors declare that Gen AI was used in the creation of this manuscript. We used the ChatGPT model to assist with the translation of the paper.</p>
</sec>
<sec sec-type="disclaimer" id="sec27">
<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="ref1"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Killick</surname> <given-names>R</given-names></name> <name><surname>Stranks</surname> <given-names>L</given-names></name> <name><surname>Hoyos</surname> <given-names>CM</given-names></name></person-group>. <article-title>Sleep deficiency and Cardiometabolic disease</article-title>. <source>Clin Chest Med</source>. (<year>2022</year>) <volume>43</volume>:<fpage>319</fpage>&#x2013;<lpage>36</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.ccm.2022.02.011</pub-id>, PMID: <pub-id pub-id-type="pmid">35659028</pub-id></citation></ref>
<ref id="ref2"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Berry</surname> <given-names>RB</given-names></name> <name><surname>Budhiraja</surname> <given-names>R</given-names></name> <name><surname>Gottlieb</surname> <given-names>DJ</given-names></name> <name><surname>Gozal</surname> <given-names>D</given-names></name> <name><surname>Iber</surname> <given-names>C</given-names></name> <name><surname>Kapur</surname> <given-names>VK</given-names></name> <etal/></person-group>. <article-title>Rules for scoring respiratory events in sleep: update of the 2007 AASM manual for the scoring of sleep and associated events: deliberations of the sleep apnea definitions task force of the American Academy of sleep medicine</article-title>. <source>J Clin Sleep Med</source>. (<year>2012</year>) <volume>8</volume>:<fpage>597</fpage>&#x2013;<lpage>619</lpage>. doi: <pub-id pub-id-type="doi">10.5664/jcsm.2172</pub-id>, PMID: <pub-id pub-id-type="pmid">23066376</pub-id></citation></ref>
<ref id="ref3"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Versace</surname> <given-names>F</given-names></name> <name><surname>Mozzato</surname> <given-names>M</given-names></name> <name><surname>De Min Tona</surname> <given-names>G</given-names></name> <name><surname>Cavallero</surname> <given-names>C</given-names></name> <name><surname>Stegagno</surname> <given-names>L</given-names></name></person-group>. <article-title>Heart rate variability during sleep as a function of the sleep cycle</article-title>. <source>Biol Psychol</source>. (<year>2003</year>) <volume>63</volume>:<fpage>149</fpage>&#x2013;<lpage>62</lpage>. doi: <pub-id pub-id-type="doi">10.1016/S0301-0511(03)00052-8</pub-id>, PMID: <pub-id pub-id-type="pmid">12738405</pub-id></citation></ref>
<ref id="ref4"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tanida</surname> <given-names>K</given-names></name> <name><surname>Shibata</surname> <given-names>M</given-names></name> <name><surname>Heitkemper</surname> <given-names>MM</given-names></name></person-group>. <article-title>Sleep stage assessment using power spectral indices of heart rate variability with a simple algorithm: limitations clarified from preliminary study</article-title>. <source>Biol Res Nurs</source>. (<year>2013</year>) <volume>15</volume>:<fpage>264</fpage>&#x2013;<lpage>72</lpage>. doi: <pub-id pub-id-type="doi">10.1177/1099800412440498</pub-id>, PMID: <pub-id pub-id-type="pmid">22531367</pub-id></citation></ref>
<ref id="ref5"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fonseca</surname> <given-names>P</given-names></name> <name><surname>Long</surname> <given-names>X</given-names></name> <name><surname>Radha</surname> <given-names>M</given-names></name> <name><surname>Haakma</surname> <given-names>R</given-names></name> <name><surname>Aarts</surname> <given-names>RM</given-names></name> <name><surname>Rolink</surname> <given-names>J</given-names></name></person-group>. <article-title>Sleep stage classification with ECG and respiratory effort</article-title>. <source>Physiol Meas</source>. (<year>2015</year>) <volume>36</volume>:<fpage>2027</fpage>&#x2013;<lpage>40</lpage>. doi: <pub-id pub-id-type="doi">10.1088/0967-3334/36/10/2027</pub-id>, PMID: <pub-id pub-id-type="pmid">26289580</pub-id></citation></ref>
<ref id="ref6"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ingale</surname> <given-names>M</given-names></name> <name><surname>Cordeiro</surname> <given-names>R</given-names></name> <name><surname>Thentu</surname> <given-names>S</given-names></name> <name><surname>Park</surname> <given-names>Y</given-names></name> <name><surname>Karimian</surname> <given-names>N</given-names></name></person-group>. <article-title>ECG biometric authentication: a comparative analysis</article-title>. <source>IEEE Access</source>. (<year>2020</year>) <volume>8</volume>:<fpage>117853</fpage>&#x2013;<lpage>66</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2020.3004464</pub-id></citation></ref>
<ref id="ref7"><label>7.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Natgunanathan</surname> <given-names>I</given-names></name> <name><surname>Karmakar</surname> <given-names>C</given-names></name> <name><surname>Rajasegarar</surname> <given-names>S</given-names></name> <name><surname>Zong</surname> <given-names>T</given-names></name> <name><surname>Habib</surname> <given-names>A</given-names></name></person-group>. <article-title>Robust patient information embedding and retrieval mechanism for ECG signals</article-title>. <source>IEEE Access</source>. (<year>2020</year>) <volume>8</volume>:<fpage>181233</fpage>&#x2013;<lpage>45</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2020.3025533</pub-id></citation></ref>
<ref id="ref8"><label>8.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>X</given-names></name> <name><surname>Zhu</surname> <given-names>W</given-names></name> <name><surname>Sui</surname> <given-names>X</given-names></name> <name><surname>Zhang</surname> <given-names>A</given-names></name> <name><surname>Chi</surname> <given-names>L</given-names></name> <name><surname>Lv</surname> <given-names>L</given-names></name></person-group>. <article-title>Assessing workplace stress among nurses using heart rate variability analysis with wearable ECG device&#x2013;a pilot study</article-title>. <source>Front Public Health</source>. (<year>2022</year>) <volume>9</volume>:<fpage>810577</fpage>. doi: <pub-id pub-id-type="doi">10.3389/fpubh.2021.810577</pub-id>, PMID: <pub-id pub-id-type="pmid">35223764</pub-id></citation></ref>
<ref id="ref9"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cui</surname> <given-names>H</given-names></name> <name><surname>Wang</surname> <given-names>Z</given-names></name> <name><surname>Yu</surname> <given-names>B</given-names></name> <name><surname>Jiang</surname> <given-names>F</given-names></name> <name><surname>Geng</surname> <given-names>N</given-names></name> <name><surname>Li</surname> <given-names>Y</given-names></name> <etal/></person-group>. <article-title>Statistical analysis of the consistency of HRV analysis using BCG or pulse wave signals</article-title>. <source>Sensors</source>. (<year>2022</year>) <volume>22</volume>:<fpage>2423</fpage>. doi: <pub-id pub-id-type="doi">10.3390/s22062423</pub-id>, PMID: <pub-id pub-id-type="pmid">35336592</pub-id></citation></ref>
<ref id="ref10"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Parchani</surname> <given-names>G</given-names></name> <name><surname>Kumar</surname> <given-names>G</given-names></name> <name><surname>Rao</surname> <given-names>R</given-names></name> <name><surname>Udupa</surname> <given-names>K</given-names></name> <name><surname>Saran</surname> <given-names>V</given-names></name></person-group>. <article-title>Efficacy of non-contact BallistocardiographySystem to determine heart rate variability</article-title>. <source>Ann Neurosci</source>. (<year>2022</year>) <volume>29</volume>:<fpage>16</fpage>&#x2013;<lpage>20</lpage>. doi: <pub-id pub-id-type="doi">10.1177/09727531211063426</pub-id>, PMID: <pub-id pub-id-type="pmid">35875429</pub-id></citation></ref>
<ref id="ref11"><label>11.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gao</surname> <given-names>W</given-names></name> <name><surname>Zhao</surname> <given-names>Z</given-names></name></person-group>. <article-title>Extraction of heartbeat feature based on ballistocardiogram signal from multichannel piezoelectric ceramic sensors</article-title>. <source>IEEE Sensors J</source>. (<year>2023</year>) <volume>23</volume>:<fpage>20653</fpage>&#x2013;<lpage>62</lpage>. doi: <pub-id pub-id-type="doi">10.1109/JSEN.2022.3206534</pub-id></citation></ref>
<ref id="ref12"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pinheiro</surname> <given-names>E</given-names></name> <name><surname>Postolache</surname> <given-names>O</given-names></name> <name><surname>Gir&#x00E3;o</surname> <given-names>P</given-names></name></person-group>. <article-title>Theory and developments in an unobtrusive cardiovascular system representation: Ballistocardiography</article-title>. <source>Open Biomed Eng J</source>. (<year>2010</year>) <volume>4</volume>:<fpage>201</fpage>&#x2013;<lpage>16</lpage>. doi: <pub-id pub-id-type="doi">10.2174/1874120701004010201</pub-id>, PMID: <pub-id pub-id-type="pmid">21673836</pub-id></citation></ref>
<ref id="ref13"><label>13.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Javaid</surname> <given-names>AQ</given-names></name> <name><surname>Ashouri</surname> <given-names>H</given-names></name> <name><surname>Tridandapani</surname> <given-names>S</given-names></name> <name><surname>Inan</surname> <given-names>OT</given-names></name></person-group>. <article-title>Elucidating the hemodynamic origin of Ballistocardiographic forces: toward improved monitoring of cardiovascular health at home</article-title>. <source>IEEE J Transl Eng Health Med</source>. (<year>2016</year>) <volume>4</volume>:<fpage>1</fpage>&#x2013;<lpage>8</lpage>. doi: <pub-id pub-id-type="doi">10.1109/JTEHM.2016.2544752</pub-id>, PMID: <pub-id pub-id-type="pmid">27620621</pub-id></citation></ref>
<ref id="ref14"><label>14.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Paalasmaa</surname> <given-names>J</given-names></name> <name><surname>Toivonen</surname> <given-names>H</given-names></name> <name><surname>Partinen</surname> <given-names>M</given-names></name></person-group>. <article-title>Adaptive heartbeat modeling for beat-to-beat heart rate measurement in Ballistocardiograms</article-title>. <source>IEEE J Biomed Health Inform</source>. (<year>2015</year>) <volume>19</volume>:<fpage>1945</fpage>&#x2013;<lpage>52</lpage>. doi: <pub-id pub-id-type="doi">10.1109/JBHI.2014.2314144</pub-id>, PMID: <pub-id pub-id-type="pmid">24691540</pub-id></citation></ref>
<ref id="ref15"><label>15.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Qi</surname> <given-names>P</given-names></name> <name><surname>Gong</surname> <given-names>S</given-names></name> <name><surname>Jiang</surname> <given-names>N</given-names></name> <name><surname>Dai</surname> <given-names>Y</given-names></name> <name><surname>Yang</surname> <given-names>J</given-names></name> <name><surname>Jiang</surname> <given-names>L</given-names></name> <etal/></person-group>. <article-title>Mattress-based non-influencing sleep apnea monitoring system</article-title>. <source>Sensors</source>. (<year>2023</year>) <volume>23</volume>:<fpage>3675</fpage>. doi: <pub-id pub-id-type="doi">10.3390/s23073675</pub-id>, PMID: <pub-id pub-id-type="pmid">37050735</pub-id></citation></ref>
<ref id="ref16"><label>16.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chang</surname> <given-names>IS</given-names></name> <name><surname>Mak</surname> <given-names>S</given-names></name> <name><surname>Armanfard</surname> <given-names>N</given-names></name> <name><surname>Boger</surname> <given-names>J</given-names></name> <name><surname>Grace</surname> <given-names>SL</given-names></name> <name><surname>Arcelus</surname> <given-names>A</given-names></name> <etal/></person-group>. <article-title>Quantification of resting-state Ballistocardiogram difference between clinical and non-clinical populations for ambient monitoring of heart failure</article-title>. <source>IEEE J Transl Eng Health Med.</source> (<year>2020</year>) <volume>8</volume>:<fpage>1</fpage>&#x2013;<lpage>11</lpage>. doi: <pub-id pub-id-type="doi">10.1109/JTEHM.2020.3029690</pub-id>, PMID: <pub-id pub-id-type="pmid">33094034</pub-id></citation></ref>
<ref id="ref17"><label>17.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Feng</surname> <given-names>J</given-names></name> <name><surname>Huang</surname> <given-names>W</given-names></name> <name><surname>Jiang</surname> <given-names>J</given-names></name> <name><surname>Wang</surname> <given-names>Y</given-names></name> <name><surname>Zhang</surname> <given-names>X</given-names></name> <name><surname>Li</surname> <given-names>Q</given-names></name> <etal/></person-group>. <article-title>Non-invasive monitoring of cardiac function through Ballistocardiogram: an algorithm integrating short-time Fourier transform and ensemble empirical mode decomposition</article-title>. <source>Front Physiol</source>. (<year>2023</year>) <volume>14</volume>:<fpage>1201722</fpage>. doi: <pub-id pub-id-type="doi">10.3389/fphys.2023.1201722</pub-id>, PMID: <pub-id pub-id-type="pmid">37664434</pub-id></citation></ref>
<ref id="ref18"><label>18.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Alvarado-Serrano</surname> <given-names>C</given-names></name> <name><surname>Luna-Lozano</surname> <given-names>PS</given-names></name> <name><surname>Pall&#x00E0;s-Areny</surname> <given-names>R</given-names></name></person-group>. <article-title>An algorithm for beat-to-beat heart rate detection from the BCG based on the continuous spline wavelet transform</article-title>. <source>Biomed Signal Process Control</source>. (<year>2016</year>) <volume>27</volume>:<fpage>96</fpage>&#x2013;<lpage>102</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.bspc.2016.02.002</pub-id></citation></ref>
<ref id="ref19"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Thirion</surname> <given-names>A</given-names></name> <name><surname>Combes</surname> <given-names>N</given-names></name> <name><surname>Mulliez</surname> <given-names>B</given-names></name> <name><surname>Tap</surname> <given-names>H</given-names></name></person-group>. <article-title>BCG-VARS: ballistocardiography vital algorithms for real-time systems</article-title>. <source>Biomed Signal Process Control</source>. (<year>2024</year>) <volume>87</volume>:<fpage>105526</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.bspc.2023.105526</pub-id></citation></ref>
<ref id="ref20"><label>20.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>Z</given-names></name> <name><surname>Shao</surname> <given-names>T</given-names></name> <name><surname>Zhang</surname> <given-names>X</given-names></name></person-group>. <article-title>BCG signal analysis based on improved VMD algorithm</article-title>. <source>Measurement</source>. (<year>2024</year>) <volume>231</volume>:<fpage>114631</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.measurement.2024.114631</pub-id></citation></ref>
<ref id="ref21"><label>21.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>C</given-names></name> <name><surname>Qiu</surname> <given-names>J</given-names></name> <name><surname>Shen</surname> <given-names>G</given-names></name></person-group>. <article-title>Improving ballistocardiogram-based continuous heart rate variability monitoring: a self-supervised learning approach</article-title>. <source>Biomed Signal Process Control</source>. (<year>2024</year>) <volume>89</volume>:<fpage>105774</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.bspc.2023.105774</pub-id></citation></ref>
<ref id="ref22"><label>22.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sadek</surname> <given-names>I</given-names></name> <name><surname>Abdulrazak</surname> <given-names>B</given-names></name></person-group>. <article-title>A comparison of three heart rate detection algorithms over ballistocardiogram signals</article-title>. <source>Biomed Signal Process Control</source>. (<year>2021</year>) <volume>70</volume>:<fpage>103017</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.bspc.2021.103017</pub-id></citation></ref>
<ref id="ref23"><label>23.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Suliman</surname> <given-names>A</given-names></name> <name><surname>Mowla</surname> <given-names>MR</given-names></name> <name><surname>Alivar</surname> <given-names>A</given-names></name> <name><surname>Carlson</surname> <given-names>C</given-names></name> <name><surname>Prakash</surname> <given-names>P</given-names></name> <name><surname>Natarajan</surname> <given-names>B</given-names></name> <etal/></person-group>. <article-title>Effects of Ballistocardiogram peak detection jitters on the quality of heart rate variability features: a simulation-based case study in the context of sleep staging</article-title>. <source>Sensors</source>. (<year>2023</year>) <volume>23</volume>:<fpage>2693</fpage>. doi: <pub-id pub-id-type="doi">10.3390/s23052693</pub-id>, PMID: <pub-id pub-id-type="pmid">36904896</pub-id></citation></ref>
<ref id="ref24"><label>24.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mitsukura</surname> <given-names>Y</given-names></name> <name><surname>Sumali</surname> <given-names>B</given-names></name> <name><surname>Nagura</surname> <given-names>M</given-names></name> <name><surname>Fukunaga</surname> <given-names>K</given-names></name> <name><surname>Yasui</surname> <given-names>M</given-names></name></person-group>. <article-title>Sleep stage estimation from bed leg Ballistocardiogram sensors</article-title>. <source>Sensors</source>. (<year>2020</year>) <volume>20</volume>:<fpage>5688</fpage>. doi: <pub-id pub-id-type="doi">10.3390/s20195688</pub-id>, PMID: <pub-id pub-id-type="pmid">33028043</pub-id></citation></ref>
<ref id="ref25"><label>25.</label><citation citation-type="other"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>J</given-names></name> <name><surname>Morris</surname> <given-names>P</given-names></name> <name><surname>Nelson</surname> <given-names>K</given-names></name> <name><surname>Boukhechba</surname> <given-names>M</given-names></name></person-group>. <source>Using ballistocardiography for sleep stage classification</source>. (<year>2022</year>). doi: <pub-id pub-id-type="doi">10.48550/ARXIV.2202.01038</pub-id></citation></ref>
<ref id="ref26"><label>26.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yoshihi</surname> <given-names>M</given-names></name> <name><surname>Okada</surname> <given-names>S</given-names></name> <name><surname>Wang</surname> <given-names>T</given-names></name> <name><surname>Kitajima</surname> <given-names>T</given-names></name> <name><surname>Makikawa</surname> <given-names>M</given-names></name></person-group>. <article-title>Estimating sleep stages using a head acceleration sensor</article-title>. <source>Sensors</source>. (<year>2021</year>) <volume>21</volume>:<fpage>952</fpage>. doi: <pub-id pub-id-type="doi">10.3390/s21030952</pub-id>, PMID: <pub-id pub-id-type="pmid">33535422</pub-id></citation></ref>
<ref id="ref27"><label>27.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gutierrez</surname> <given-names>G</given-names></name> <name><surname>Williams</surname> <given-names>J</given-names></name> <name><surname>Alrehaili</surname> <given-names>GA</given-names></name> <name><surname>McLean</surname> <given-names>A</given-names></name> <name><surname>Pirouz</surname> <given-names>R</given-names></name> <name><surname>Amdur</surname> <given-names>R</given-names></name> <etal/></person-group>. <article-title>Respiratory rate variability in sleeping adults without obstructive sleep apnea</article-title>. <source>Physiol Rep</source>. (<year>2016</year>) <volume>4</volume>:<fpage>e12949</fpage>. doi: <pub-id pub-id-type="doi">10.14814/phy2.12949</pub-id>, PMID: <pub-id pub-id-type="pmid">27597768</pub-id></citation></ref>
<ref id="ref28"><label>28.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Yi</surname> <given-names>R</given-names></name> <name><surname>Enayati</surname> <given-names>M</given-names></name> <name><surname>Keller</surname> <given-names>JM</given-names></name> <name><surname>Popescu</surname> <given-names>M</given-names></name> <name><surname>Skubic</surname> <given-names>M</given-names></name></person-group>. <article-title>Non-invasive in-home sleep stage classification using a ballistocardiography bed sensor</article-title>. <conf-name>2019 IEEE EMBS international conference on biomedical and health informatics (BHI)</conf-name>. (<year>2019</year>). p. <fpage>1</fpage>&#x2013;<lpage>4</lpage>. doi: <pub-id pub-id-type="doi">10.1109/BHI.2019.88345355</pub-id></citation></ref>
<ref id="ref29"><label>29.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>L</given-names></name> <name><surname>Ren</surname> <given-names>P</given-names></name> <name><surname>Zhao</surname> <given-names>Y</given-names></name> <name><surname>Lv</surname> <given-names>R</given-names></name> <name><surname>Ding</surname> <given-names>Q</given-names></name> <name><surname>Zuo</surname> <given-names>Y</given-names></name></person-group>. <article-title>Sleep stage classification based on BCG using improved deep convolutional generative adversarial networks</article-title>. <conf-name>2023 7th International Conference on Imaging, Signal Processing and Communications (ICISPC)</conf-name> (<year>2023</year>). p. <fpage>65</fpage>&#x2013;<lpage>69</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ICISPC59567.2023.00020</pub-id></citation></ref>
<ref id="ref30"><label>30.</label><citation citation-type="other"><person-group person-group-type="author"><name><surname>Ahmed</surname> <given-names>NKSS</given-names></name> <name><surname>Chokalingam</surname> <given-names>K</given-names></name> <name><surname>Rawooth</surname> <given-names>M</given-names></name> <name><surname>Kumar</surname> <given-names>G</given-names></name> <name><surname>Parchani</surname> <given-names>G</given-names></name> <name><surname>Saran</surname> <given-names>V</given-names></name></person-group>. <article-title>Classification of sleep-wake state in Ballistocardiogram system based on deep learning</article-title>. <source>2022 44th annual international conference of the IEEE engineering in medicine and biology society (EMBC)</source> (<year>2022</year>). p. <fpage>1944</fpage>&#x2013;<lpage>1947</lpage>. doi: <pub-id pub-id-type="doi">10.1109/EMBC48229.2022.9871831</pub-id></citation></ref>
<ref id="ref31"><label>31.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pr&#x00F6;ll</surname> <given-names>SM</given-names></name> <name><surname>Tappeiner</surname> <given-names>E</given-names></name> <name><surname>Hofbauer</surname> <given-names>S</given-names></name> <name><surname>Kolbitsch</surname> <given-names>C</given-names></name> <name><surname>Schubert</surname> <given-names>R</given-names></name> <name><surname>Fritscher</surname> <given-names>KD</given-names></name></person-group>. <article-title>Heart rate estimation from ballistocardiographic signals using deep learning</article-title>. <source>Physiol Meas</source>. (<year>2021</year>) <volume>42</volume>:<fpage>075005</fpage>. doi: <pub-id pub-id-type="doi">10.1088/1361-6579/ac10aa</pub-id>, PMID: <pub-id pub-id-type="pmid">34198282</pub-id></citation></ref>
<ref id="ref32"><label>32.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Niu</surname> <given-names>Z</given-names></name> <name><surname>Zhong</surname> <given-names>G</given-names></name> <name><surname>Yu</surname> <given-names>H</given-names></name></person-group>. <article-title>A review on the attention mechanism of deep learning</article-title>. <source>Neurocomputing</source>. (<year>2021</year>) <volume>452</volume>:<fpage>48</fpage>&#x2013;<lpage>62</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.neucom.2021.03.091</pub-id></citation></ref>
<ref id="ref33"><label>33.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>T</given-names></name> <name><surname>Guestrin</surname> <given-names>C</given-names></name></person-group>. <article-title>XGBoost: a scalable tree boosting system</article-title> In. <source>Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining</source>. <publisher-loc>San Francisco, California, USA</publisher-loc>: <publisher-name>ACM</publisher-name> (<year>2016</year>). <fpage>785</fpage>&#x2013;<lpage>94</lpage>.</citation></ref>
<ref id="ref34"><label>34.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ahmadianfar</surname> <given-names>I</given-names></name> <name><surname>Heidari</surname> <given-names>AA</given-names></name> <name><surname>Noshadian</surname> <given-names>S</given-names></name> <name><surname>Chen</surname> <given-names>H</given-names></name> <name><surname>Gandomi</surname> <given-names>AH</given-names></name></person-group>. <article-title>Info: an efficient optimization algorithm based on weighted mean of vectors</article-title>. <source>Expert Syst Appl</source>. (<year>2022</year>) <volume>195</volume>:<fpage>116516</fpage>. doi: <pub-id pub-id-type="doi">10.1016/j.eswa.2022.116516</pub-id></citation></ref>
<ref id="ref35"><label>35.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chawla</surname> <given-names>NV</given-names></name> <name><surname>Bowyer</surname> <given-names>KW</given-names></name> <name><surname>Hall</surname> <given-names>LO</given-names></name> <name><surname>Kegelmeyer</surname> <given-names>WP</given-names></name></person-group>. <article-title>SMOTE: synthetic minority over-sampling technique</article-title>. <source>JAIR</source>. (<year>2002</year>) <volume>16</volume>:<fpage>321</fpage>&#x2013;<lpage>57</lpage>. doi: <pub-id pub-id-type="doi">10.1613/jair.953</pub-id></citation></ref>
<ref id="ref36"><label>36.</label><citation citation-type="other"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>P</given-names></name> <name><surname>Zhao</surname> <given-names>W</given-names></name></person-group>. <source>Fast ABC-boost: a unified framework for selecting the base class in multi-class classification</source>. (<year>2022</year>). doi: <pub-id pub-id-type="doi">10.48550/ARXIV.2205.10927</pub-id></citation></ref>
</ref-list>
</back>
</article>