Machine learning algorithms development for sleep cycles detection and general physical activity based on biosignals

Abstract

In this work, machine learning algorithms for automatic sleep cycles detection were developed. The features were selected based on the AASM manual, which is considered the gold standard for human technicians. These include features such as saturation of peripheral oxygen or others related to heart rate variation. As normally, the sleep phases naturally differ in frequency, to balance the classes within the dataset, we either oversampled the least common sleep stages or undersampled the most common, allowing for a less skewed performance favouring the most represented stages, while simultaneously improving worst-stage classification. For training the models we used MESA, a database containing 2056 full overnight unattended polysomnographies from a group of 2237 participants. With the goal of developing an algorithm that would only require a PPG device to be able to accurately predict sleep stages and quality, the main channels used from this dataset were SpO2 and PPG. Employing several popular Python libraries used for the development of machine learning and deep learning algorithms, we exhaustively explored the optimisation of the manifold parameters and hyperparameters conditioning both the training and architecture of these models in order for them to better fit our purposes. As a result of these strategies, we were able to develop a neural network model (Multilayer perceptron) with 80.50% accuracy, 0.7586 Cohen’s kappa, and 77.38% F1- score, for five sleep stages. The performance of our algorithm does not seem to be correlated with sleep quality or the number of transitional epochs in each recording, suggesting uniform performance regardless of the presence of sleep disorders. To test its performance in a different real-world scenario we compared the classifications attributed by a popular sleep stage classification android app, which collected information using a smartwatch, and our algorithm, using signals obtained from a device developed by PLUX. These algorithms displayed a strong level of agreement (90.96% agreement, 0.8663 Cohen’s kappa).Neste trabalho, foram desenvolvidos algoritmos de aprendizagem de máquinas para a detecção automática de ciclos de sono. Os sinais específicos captados durante a extração de características foram selecionados com base no manual AASM, que é considerado o padrão-ouro para técnicos. Estas incluem características como a saturação do oxigénio periférico ou outras relacionadas com a variação do ritmo cardíaco. A fim de equilibrar a frequência das classes dentro do conjunto de dados, ora se fez a sobreamostragem das fases menos comuns do sono, ora se fez a subamostragem das mais comuns, permitindo um desempenho menos enviesado em favor das fases mais representadas e, simultaneamente, melhorando a classificação das fases com pior desempenho. Para o treino dos modelos criados, utilizámos MESA, uma base de dados contendo 2056 polissonografias completas, feitas durante a noite e sem vigilância, de um grupo de 2237 participantes. Do conjunto de dados escolhido, os principais canais utilizados foram SpO2 e PPG, com o objetivo de desenvolver um algoritmo que apenas exigiria um dispositivo PPG para poder prever com precisão as fases e a qualidade do sono. Utilizando várias bibliotecas populares de Python para o desenvolvimento de algoritmos de aprendizagem de máquinas e de aprendizagem profunda, explorámos exaustivamente a optimização dos múltiplos parâmetros e hiperparâmetros que tanto condicionam a formação como a arquitetura destes modelos, de modo a que se ajustem melhor aos nossos propósitos. Como resultado disto, fomos capazes de desenvolver um modelo de rede neural (Multilayer perceptron) com 80.50% de precisão, 0.7586 kappa de Cohen e F1-score de 77.38%, para cinco fases de sono. O desempenho do nosso algoritmo não parece estar correlacionado com a qualidade do sono ou o número de épocas de transição em cada gravação, sugerindo um desempenho uniforme independentemente da presença de distúrbios do sono. Para testar o seu desempenho num cenário de mundo real diferente, comparámos as classificações atribuídas por uma aplicação Android de classificação de fases do sono popular, através da recolha de informação por um smartwatch, e o nosso algoritmo, utilizando sinais obtidos a partir de um dispositivo desenvolvido pela PLUX. Estes algoritmos demonstraram um forte nível de concordância (90.96% de concordância, 0.8663 kappa de Cohen)

    Similar works