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)