Universidade Federal Fluminense Instituto de Computação Mestrado em Ciência da Computação Welton Luiz de Oliveira Barbosa Mineração de Fluxo Contı́nuo de Dados Para a Identificação de Traços de Ansiedade em Sinais de ECG Niterói-RJ 2015 ii WELTON LUIZ DE OLIVEIRA BARBOSA MINERAÇÃO DE FLUXO CONTÍNUO DE DADOS PARA A IDENTIFICAÇÃO DE TRAÇOS DE ANSIEDADE EM SINAIS DE ECG Dissertação apresentada Mestrado Acadêmico ência da Universidade nense, Curso Ci- Computação da requisito obtenção do tre Ciência Grau Área de Concentração: da Flumiparcial para de Mes- Computação. Aprendizado de Máquina e Processamento de Sinais. Orientador: Prof. Dr. José Viterbo Filho Niterói-RJ 2015 de em Federal como em ao iv Welton Dedico este trabalho de conclusão aos meus pais, ao meu irmão William e a minha avó Antônia por todo o incentivo, força e apoio dado para que eu pudesse enfrentar e concluir essa etapa da minha vida. Também dedico a mim, porque haja força de vontade para abdicar de dias de surfe para escrever este trabalho. Agradecimentos Primeiramente gostaria de agradecer ao orientador José Viterbo por sua dedicação e colaboração na parte técnica e textual. Sei que é bem difı́cil trabalhar à distância mas o sacrifı́cio vale quando vemos o resultado. Agradeço sua paciência e disponibilidade em todos os momentos da realização deste trabalho, sempre de portas abertas para me ouvir e contribuir com perguntas que tornavam o trabalho cada vez melhor. A minha famı́lia, peço desculpas pela eterna falta de tempo e distância nesses anos do mestrado, principalmente nessa reta final. Agradeço aos meus pais e a minha avó por todo o apoio e incentivo que tive durante o mestrado, por toda a ajuda que me deram, fazendo esforços além de seus limites para me dar a possibilidade de realizar este sonho. Aos amigos que dividiram várias noites de bebedeira e som. Ao Luiz Guilherme (frango), João Bentes (paraı́ba) e famı́lia, Vinı́cius Costa (macaé) e a todos os demais que sempre estiveram la em casa, até altas horas da madrugada curtindo um som de primeira, principalmente quando eu estava com o violão na mão tocando Natiruts e Armandinho. Ao Rodrigo Patrianova, que depositou em mim a confiança de ingressar em uma ótima empresa como a Schlumberger, dedicando um valioso tempo do seu dia, liderando-me tanto profissionalmente como pessoalmente. A todos os membros do BPI Team, Rodrigo Patrianova, Marcos Callipo (mamalmeida), Leonardos Araujo (Abel/preá), Fernando Silva (moranguinho), Michael Capela (“Tira a mão das minhas coisas”), Letı́cia Matos e o agregado Tomoki Sato (este não tem apelido por motivos de manutenção da minha saúde). Também ao Marcos Bonfim, por ter dado a oportunidade do surgimento desta equipe. Ao estado de Minas Gerais, por ter criado uma mineira muito especial (meio perturbada também). A Lı́zia Benevenute, obrigado por me deixar te esperando na sua casa, tanto nas horas que vocês estava na faculdade quanto nos finais de semana que eu queria dar uma volta na praia ou simplesmente ver o sol, mas você ficava dormindo, dormindo e dormindo... Só assim mesmo para eu conseguir um tempo para escrever esta dissertação tão feliz e agradável. A todos os demais que me influenciaram e/ou contribuı́ram para a realização desse sonho. Também ao transito do Rio de Janeiro, colaborando comigo todas as vezes que tive que trabalhar do escritório da Barra. Graças a ele ganhei horas e mais horas para a escrita da dissertação. Welton Luiz de Oliveira Barbosa v Sumário Agradecimentos v Lista de Figuras viii Lista de Tabelas ix Resumo x Abstract xi 1 Introdução 1 1.1 Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Fundamentação Teórica 5 2.1 Sinais de Eletrocardiograma (ECG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Fundamentação Matemática para Análise de Sinais Biológicos Elétricos . . . . . . . . . . 7 2.2.1 Transformada de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Transformada de Wavelet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 Transformada Delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Cálculos Estatı́sticos para Extração de Caracterı́sticas de Eletrocardiograma . . . . . . . . 12 2.4 Demais Medidas Descritivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.1 Cálculo da Área . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.2 Identificando o Ponto R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Técnicas de Aprendizado de Máquina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5.1 Algoritmos de Árvores de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5.2 Avaliação dos Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Fluxo Contı́nuo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6.1 Mineração de Fluxo Contı́nuo de Dados . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6.2 Preparação do Fluxo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6.3 Algoritmos de Mineração de Fluxo de Dados . . . . . . . . . . . . . . . . . . . . . 21 2.5 2.6 vi vii 3 Trabalhos Relacionados 23 3.1 Mobile Data Mining for Intelligent Healthcare Support . . . . . . . . . . . . . . . . . . . . 23 3.2 An Architecture for Context-Aware Adaptative Data Stream Mining . . . . . . . . . . . . 24 3.3 Collective Human Biological Signal-Based Identification and Authentication in Access Control Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Stream-based Biomedical Classification Algorithms for Analyzing Biosignals . . . . . . . . 25 3.5 A System for Mining Temporal Physiological Data Streams for Advanced Prognostic Decision Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.6 Mining Data Streams with Periodically Changing Distributions . . . . . . . . . . . . . . . 26 3.7 Projeto Diretrizes - Transtornos de Ansiedade: Diagnóstico e Tratamento . . . . . . . . . 27 3.8 MD-SBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4 O Método AnxECGStream 4.1 4.2 29 Definição do Modelo Classificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1.1 Descrição do Conjunto de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1.2 Pré-Processamento de Sinais de Eletrocardiograma . . . . . . . . . . . . . . . . . . 32 4.1.3 Algoritmos de Aprendizado de Máquina . . . . . . . . . . . . . . . . . . . . . . . . 35 Classificação de Fluxo Contı́nuo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.1 Pré-Processamento de Fluxos Contı́nuos . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.2 Classificador de Ansiedade 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Protótipo e Avaliação 43 5.1 Simulador de Dados de Eletrocardiograma . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2 Protótipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.3 Avaliação do Método Proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6 Conclusão 49 Referências Bibliográficas 51 Lista de Figuras 2.1 Pontos de estudo de sinais de um Eletrocardiograma . . . . . . . . . . . . . . . . . . . . . 6 2.2 Representação da amplitude e do comprimento de uma onda . . . . . . . . . . . . . . . . 7 2.3 Um exemplo da Wavelet Haar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 Exemplo de análise multirresolução ortogonal . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5 Exemplo do inı́cio de um ECG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.6 Resultado da transformada Delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.7 Matriz de confusão genérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.8 Matriz de confusão genérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.1 Processo para criação do modelo classificador de traços de ansiedade . . . . . . . . . . . . 30 4.2 Passagem de fluxo contı́nuo de dados para a central de processamento . . . . . . . . . . . 31 4.3 Pré-processamento realizado no trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.4 Árvore de decisão resultante do algoritmo C4.5 . . . . . . . . . . . . . . . . . . . . . . . . 36 4.5 Árvore de decisão resultante do algoritmo Random Tree . . . . . . . . . . . . . . . . . . . 37 4.6 Árvore de decisão resultante do algoritmo One Rule . . . . . . . . . . . . . . . . . . . . . 37 4.7 Processo para criação do modelo classificador de traços de ansiedade . . . . . . . . . . . . 39 4.8 Exemplos de fluxos de ECG com traços de ansiedade . . . . . . . . . . . . . . . . . . . . . 41 4.9 Exemplos de fluxos de ECG sem traços de ansiedade . . . . . . . . . . . . . . . . . . . . . 41 4.10 Exemplos de fluxos de ECG com traços de ansiedade com nı́vel de detalhe . . . . . . . . . 42 4.11 Exemplos de fluxos de ECG sem traços de ansiedade com nı́vel de detalhe . . . . . . . . . 42 5.1 Diagrama de classe do protótipo desenvolvido para suportar o método AnxECGStream . 44 5.2 Tempo de execução dos algoritmos por quantidade de pacientes em simultâneo . . . . . . 46 5.3 Tempo médio de execução do sistema por paciente (em segundos) comparado a média de execução para o total de número de pacientes . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 47 Tempo médio para a execução da classificação de um paciente, para uma quantidade variável de pacientes simulados (em segundos) . . . . . . . . . . . . . . . . . . . . . . . . . . viii 47 Lista de Tabelas 2.1 Coeficientes das funções de escalada da Wavelet Daubechies . . . . . . . . . . . . . . . . . 11 2.2 Tabela demostrando os passos do cálculo da Transformada Delta . . . . . . . . . . . . . . 13 4.1 Tabela demostrando os passos da Transformada Delta . . . . . . . . . . . . . . . . . . . . 35 4.2 Resultado da etapa de treino dos algoritmos utilizados . . . . . . . . . . . . . . . . . . . . 35 4.3 Resultado da etapa de treino do algoritmo C4.5 . . . . . . . . . . . . . . . . . . . . . . . . 36 4.4 Resultado da etapa de treino do algoritmo Random Tree . . . . . . . . . . . . . . . . . . . 37 4.5 Resultado da etapa de treino do algoritmo One Rule . . . . . . . . . . . . . . . . . . . . . 38 5.1 Tempo de processamento em segundos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ix Resumo A ansiedade é um estado emocional humano que ajuda a evitar ataques, estimulando a atenção e precaução. No entanto, para algumas pessoas os nı́veis elevados de ansiedade podem causar problemas associados à fadiga, inquietação, tensão e falta de concentração. Além disso, a ansiedade pode ser um sintoma de alguns graves problemas de saúde subjacentes. Assim, a identificação do estado de ansiedade é importante para permitir que este problema possa ser corretamente tratado, evitando a ocorrência de maiores problemas. No entanto, o diagnóstico de ansiedade é muito subjetivo e, geralmente, não pode ser executado em tempo hábil. Este trabalho propõe um método denominado AnxECGStream, que visa apoiar a identificação de traços de ansiedade com base no monitoramento contı́nuo de fluxos de dados de eletrocardiograma (ECG). Nossa abordagem aplica técnicas de processamento de sinal associadas a técnicas de mineração de fluxo de dados. Um conjunto de dados limitado, obtidos de fontes reais, foi utilizado para treinar um classificador, baseado em árvores de decisão. Esse mesmo conjunto de dados foi usado para simular um grande número de fluxos de dados de sinais de ECG produzidos simultaneamente. O protótipo de uma ferramenta que implementa o AnxECGStream foi construı́do e testado para verificar a precisão, a capacidade de monitoramento contı́nuo e escalabilidade do método. Palavras-chave: Mineração de Fluxo de Dados, Ansiedade, Sinais Biológicos Elétricos, ECG, Mineração de Dados, Transformada de Fourier, Wavelet, Aprendizado de Máquina. x Abstract Anxiety is a human emotional state that helps to avoid attacks by stimulating personal attention and caution. However, for some people elevated levels of anxiety may cause problems associated with fatigue, restlessness, tension and lack of concentration. Furthermore, anxiety may be a symptom of some serious underlying health problems. Thus, the identification of the anxiety state is important to allow this problem to be correctly handled, avoiding bigger problems. However, the diagnosis of anxiety is very subjective and usually can not be executed in a timely manner. This paper proposes a method called AnxECGStream, which aims at supporting the identification of anxiety traces based on continuous monitoring of electrocardiography (ECG) data streams. Our approach applies signal processing techniques associated with data stream mining techniques. A limited set of data obtained from real sources was used to train a classifier based on decision trees. The same data set was used to simulate a large number of ECG signal data streams produced simultaneously. The prototype of a tool that implements the AnxECGStream was built and tested for checking the method’s accuracy, ability to continuous monitoring and scalability. Keywords: Data Stream Mining, Anxiety, Bioelectrical Signals, ECG, Data Mining, Fourier transform, Wavelet, Machine Learning. xi Capı́tulo 1 Introdução A ansiedade é considerada um mecanismo de defesa do ser humano. Ela auxilia o homem na prevenção de ataques, pois estimula a atenção e precaução. Entretanto, a ansiedade em demasia pode significar um problema de saúde [Baxter et al., 2013]. Pessoas com nı́veis elevados de ansiedade apresentam um estado desagradável de agitação interna, que pode ser acompanhado por um comportamento nervoso caracterizado por inquietação, queixas somáticas e ruminação [Moyer, 2012]. Podem apresentar, também, em raros casos, sentimentos subjetivamente desagradáveis de terror. Os sintomas correspondentes podem variar em quantidade de problemas relacionados, intensidade e frequência em cada indivı́duo [Goldberg, 2014]. Em momentos nos quais a preocupação com coisas cotidianas se torna desproporcional à verdadeira fonte de preocupação, a ansiedade excessiva é identificada como um transtorno mental incontrolável e muitas vezes irracional [Mark, 1998]. Caso estas situações ocorram repetidamente ou se agravem, se transformam em transtornos (ou distúrbios) de ansiedade. Ainda que a grande maioria das pessoas já tenha vivido situações nas quais apresentou ansiedade, muitas não desenvolvem este problema a longo prazo [Houghton e Gray, 2012]. A ansiedade é um problema mundial. Nos Estados Unidos se encontram as maiores taxas de ansiedade, afetando um número de aproximadamente 40 milhões de adultos. É um quadro mais comum em adultos, principalmente entre as mulheres [Houghton e Gray, 2012]. Algumas das principais complicações causadas pelos distúrbios de ansiedade são: ansiedade generalizada, ansiedade induzida por problemas médicos e/ou induzida pelo consumo drogas, distúrbio e ataques de pânico, distúrbios fóbicos e transtorno obsessivo-compulsivo. A ansiedade provoca alguns efeitos fı́sicos como, por exemplo, palpitações, taquicardia, fraqueza muscular e tensão, fadiga, náuseas, dor no peito, falta de ar, dor de cabeça e dores de estômago [Baxter et al., 2013]. À medida que o corpo se prepara para lidar com uma ameaça, a pressão arterial, a frequência cardı́aca, a transpiração e o fluxo sanguı́neo para os grandes grupos musculares aumentam, enquanto que as funções do sistema imunológico e digestivo são inibidas [LifeintheFastlane, 2014]. Já os sintomas externos para a ansiedade são palidez, sudorese, tremores e dilatação pupilar. Ainda que não sejam sentidos por todos, os ataques de pânico costumam ser um sintoma comum. Normalmente os ataques de pânico surgem sem aviso e envolvem uma percepção subjetiva do perigo, que embora irracional é muito real. Quem sofre de um ataque de pânico, muitas vezes, 2 sente como se estivesse prestes a morrer ou perder a consciência. O ataque de pânico pode levar ao desenvolvimento de fobias e a sua frequência pode provocar a agorafobia, que é o medo de ter um ataque de pânico em um local público ou desconhecido e acabar enfrentando o julgamento das pessoas ou não obter ajuda. É difı́cil para profissionais da saúde, principalmente os menos experientes, a identificação concreta da ansiedade, pois ela pode estar relacionada a fatores externos, desconhecidos, que são bem difı́ceis de serem reproduzidos em experimentos. Uma vez que pessoas afetadas pela ansiedade tendem a ter sintomas de taquicardia (ritmo cardı́aco igual ou superior a 100 batimentos por minuto) e elevada produção de suor nas mãos, é possı́vel identificar o estado de ansiedade através da medição do ritmo cardı́aco em conjunto com o nı́vel de sudorese. Outra forma de tentar se diagnosticar a ansiedade é pela percepção da dilatação da ı́ris ocular [Salles e Silva, 2012]. No entanto, os métodos de identificação ambulatoriais de ansiedade a identificam em apenas pequenas janelas de tempo, não abrangendo todas as situações cotidianas vividas pelo paciente. Em muitos casos não é possı́vel a reprodução de situações que causam a ansiedade. A maioria dos métodos de diagnóstico é baseada em observação e avaliações subjetivas de difı́cil monitoramento, sobretudo durante um longo intervalo de tempo. Atualmente, existe uma grande diversidade de aparelhos capazes de coletar continuamente informações cardı́acas (eletrocardiograma) por meio de sensores vestı́veis não invasivos, tais como o Mobile ECG Telemetry Solution (METS) [MegaKoto, 2014], o DevECG da Microsoft [Microsoft, 2014] e o Mobile Cardio [Cardio, 2014]. Essas tecnologias de sensoriamento contı́nuo oferecem uma nova janela para a vida diária dos pacientes, através da qual o comportamento de um indivı́duo pode ser mais completa, precisa e dinamicamente avaliado à medida em que evolui em tempo real [Natarajan et al., 2013]. Recentemente, a área de pesquisa em sistemas de monitoramento de saúde tem ido além de uma simples interpretação de leituras de sensores vestı́veis, para buscar um nı́vel mais elevado de processamento de dados, a fim de fornecer muito mais informações valiosas para os usuários finais. Desta forma, os serviços de saúde têm se concentrado em tarefas mais profundas de mineração de dados [Banaee et al., 2013]. Com base nos avanços na área de monitoramento de saúde e em trabalhos anteriores de análise e processamento de sinais [Barbosa e Calembo, 2012, Magini et al., 2012], é possı́vel pensar no monitoramento contı́nuo do estado de ansiedade de pacientes com o apoio de sensores e modelos de classificação elaborados adequadamente. O monitoramento contı́nuo de sinais de eletrocardiograma ao longo das situações cotidianas vividas pelos pacientes pode auxiliar na identificação de situações especı́ficas motivadoras de crises de ansiedade para cada indivı́duo. Associado ao emprego de técnicas de mineração de dados, o monitoramento pode identificar situações de ansiedade e oferecer ao paciente meios para evitar ou superar rapidamente este estado. Por exemplo, em ambientes inteligentes é possı́vel oferecer a reprodução de músicas e vı́deos relaxantes, mensagens e textos tranquilizadores, controle da iluminação e temperatura e outras medidas que permitiriam ao paciente retornar ao estado não patológico. 3 1.1 Definição do Problema A aplicação de técnicas de mineração de fluxo contı́nuo de dados permite a análise dos dados cardı́acos de pacientes e identificação rápida de irregularidades ou situações especı́ficas [Natarajan et al., 2013, Watanabe et al., 2013]. Atualmente existem diversos trabalhos na literatura com o foco no monitoramento de pacientes para a coleta de informações cardı́acas através de sensores especı́ficos que podem ser utilizados continuamente [Lo et al., 2005, Banaee et al., 2013, Valenza et al., 2014]. Dentre estes, a grande maioria dos trabalhos aborda o auxı́lio do diagnóstico de doenças cardı́acas como taquicardia, bradicardia e previsão de quadros ambulatoriais [Chen et al., 2004, Nguyen et al., 2014]. Entretanto, em trabalhos anteriores verificou-se que através da análise de sinais de ECG é possı́vel também identificar do estado de ansiedade de pacientes [Magini et al., 2012]. Este processo pode ser realizado de maneira contı́nua, com avaliação constante do quadro apresentado pelo paciente, o que exige que o método de monitoramento e classificação atenda a condições mı́nimas de performace. Em cenários reais, o processo deve ser escalável, ou seja, permitir o monitoramento simultâneo de muitos pacientes, suportando um grande volume de dados. 1.2 Objetivo O objetivo deste trabalho é propor um método aplicável na implementação de um sistema eficiente e escalável de monitoramento de pacientes para auxiliar na identificação de traços de ansiedade em sinais de ECG coletados contı́nua e simultaneamente. Este método deve ser genérico de forma a permitir que seja utilizado na implementação de sistemas similares que empreguem técnicas de mineração de fluxo contı́nuo de dados para a classificação de conjuntos de séries temporais coletadas continuamente de sensores diversos. 1.3 Contribuições Como principal contribuição cientı́fica deste trabalho, foi desenvolvido o método AnxECGStream, aplicado na implementação de um sistema capaz de auxiliar no diagnóstico de traços de ansiedade em pacientes por meio do processamento de sinais de eletrocardiograma, empregando mineração de fluxo contı́nuo de dados. Para a avaliação do método, foi implementado o protótipo de um sistema de monitoramento escalável, isto é, capaz de avaliar um grande conjunto de dados oriundos de diversas fontes simultaneamente, e adaptável, permitindo a adição de novos métodos de processamento e modelos de classificação para outros conjuntos de sinais do tipo série temporal. Além disso, como ferramenta para a realização de testes de performance, foi implementada uma ferramenta capaz de simular a produção de um conjunto de séries temporais a partir de uma base de dados com amostras de sinais originais. 4 1.4 Organização do Trabalho Este trabalho está estruturado da seguinte forma. O Capı́tulo 2 apresenta a fundamentação teórica para o entendimento do problema abordado neste trabalho, conceituando a Transformada de Fourier, Transformada de Wavelet e a Transformada de Variantes Adjuntos. Além disso, o capı́tulo discute a utilização de medidas descritivas de estatı́stica para a discretização de fluxos de dados e apresenta uma introdução ao conceito de mineração de fluxo contı́nuo de dados. O capı́tulo 3 descreve diversos trabalhos relacionados, destacando as contribuições cientı́ficas de cada um e comparando-os com este trabalho. O Capı́tulo 4 descreve o tratamento de cada fase do método, do armazenamento e transferência do fluxo de dados ao pré-processamento. São discutidas cada uma das etapas do método proposto, apresentando o processo determinante para a criação do modelo classificador que auxilia o diagnóstico de traços de ansiedade e o procedimento realizado para a classificação de novos dados de ECG de pacientes. O Capı́tulo 5 descreve a implementação de um protótipo e sua avaliação por meio de uma simulação de pacientes, devido à dificuldade tecnológica de ter em mãos centenas de aparelhos de coleta de sinais de ECG não invasivos. Finalmente, o Capı́tulo 6 é dedicado à conclusão deste trabalho, indicando os próximos passos e trabalhos futuros que poderão ser abordados. Capı́tulo 2 Fundamentação Teórica Esta seção tem como objetivo apresentar as técnicas e métodos utilizados para apoiar o desenvolvimento do método AnxECGStream. O capı́tulo está organizado da seguinte maneira: a primeira seção apresenta as caracterı́sticas de sinais biológicos elétricos. Nas seções seguintes são apresentadas a fundamentação matemática e estatı́stica utilizadas para a extração de atributos dos sinais biológicos elétricos. Em seguida, são apresentadas técnicas de mineração de dados, focando especificamente em mineração de fluxo de dados. 2.1 Sinais de Eletrocardiograma (ECG) O eletrocardiograma — ECG — é um exame originário da cardiologia, onde são feitos registros da diferença de potencial elétrico obtidos a partir da atividade elétrica do coração entre dois pontos do corpo. O aparelho capaz de realizar o eletrocardiograma é chamado de eletrocardiógrafo. Normalmente este exame é utilizado para a detecção e análise de doenças cardı́acas. O exame tornou-se amplamente utilizado após a disseminação do trabalho de Willem Einthoven em 1901, que construiu um aparelho preciso de eletrocardiograma [Melco, 2006, Maciel, 1996]. A etimologia da palavra Eletrocardiograma deriva de electro (grego), relativo à atividade elétrica, kardio (grego), que significa coração, e grafo (grego), radical que representa “para escrever”. Profissionais da área médica que falam a lı́ngua inglesa costumam se referir ao exame como EKG (Elektrokardiogramm), palavra em alemão, evitando com isso dissonâncias fonéticas com o Eletroencefalograma (EEG), principalmente em situações emergenciais. Os principais problemas diagnosticados através do ECG são arritmias cardı́acas e infartos. O ECG é um exame não invasivo, sendo coletado por eletrodos na superfı́cie externa da pele. Os eletrodos são conectados a um aparelho que mede as variações elétricas e as transforma em números. Por meio das atividades de despolarização e repolarização das células do coração, são geradas as diferenças de potenciais elétricos. Em geral, dá-se inı́cio no nodo sinusal, chamado de células auto rı́tmicas, responsáveis por realizar a despolarização dos ventrı́culos e dos átrios. Na Figura 2.1, é ilustrado um sinal de eletrocardiograma marcado com alguns pontos e complexos [Tan et al., 2000]. Nessa figura, as letras individuais colocadas juntamente com o sinal — P, Q, R, S e T — representam pontos do sinal, ao passo que as 6 informações mostradas ao longo da parte inferior horizontal e dos lados esquerdo e direito verticalmente indicam complexos do sinal — R, Q, P, PR, QRS, QT, ST, T, U, S e T. Figura 2.1: Pontos de estudo de sinais de um Eletrocardiograma Dentre todos os pontos e complexos observados, os mais importantes para a análise do sinal de ECG são a onda P, onda R, onda T, onda U, complexo QRS, perı́odo RR, perı́odo PP, intervalo PR. A cada um dos pontos principais do sinal estão associados alguns eventos. O estudo desses eventos permite observar as atividades do coração, quais as caracterı́sticas de um coração normal e os possı́veis diagnósticos de doenças. Como exemplo das ações cardı́acas, citamos a onda P, que corresponde à despolarização atrial, a onda T, que corresponde à repolarização ventricular, e o complexo QRS, que corresponde à despolarização ventricular. Os pontos R, auxiliam no cálculo da frequência do ECG, uma vez que é mais simples detectar o intervalo de tempo em que o Ponto R aparece. Desta forma, calcula-se o intervalo de tempo entre pontos R subsequentes e então a frequência do ciclo do ECG pode ser calculada. A frequência do ECG é bastante importante para o diagnóstico de taquicardia e bradicardia. A frequência f , definida pela Equação 2.1, mede a quantidade de ocorrências de um evento em um segundo. Eventos podem ser oscilações e ciclos, por exemplo. A unidade de medida da frequência é dada em Hertz (Hz). O Perı́odo T é dado pelo inverso da frequência, ou seja, perı́odo é o tempo gasto por um ciclo completo de determinada oscilação em segundos. f= 1 T (2.1) A amplitude Y da onda mede a magnitude da oscilação da onda. É a medida entre o pico da onda e o eixo horizontal. Já o comprimento λ de uma onda é a distância entre dois picos (seguidos) de onda. Na Figura 2.2, é ilustrada a representação da amplitude e do comprimento de uma onda. 7 Figura 2.2: Representação da amplitude e do comprimento de uma onda 2.2 Fundamentação Matemática para Análise de Sinais Biológicos Elétricos As técnicas matemáticas e/ou computacionais que auxiliam a análise de sinais biológicos têm sido utilizadas por médicos e profissionais da área de biomedicina. Atualmente, diversas transformadas são amplamente difundidas e aprovadas por pesquisas cujos resultados são considerados promissores [Magini et al., 2012, Pichot et al., 1999, Katznelson, 2004]. Dentre as mais famosas transformadas podemos citar a Transformada de Fourier e a Transformada de Wavelet. Esses dois métodos matemáticos possuem uma transformada discreta e uma contı́nua. A transformada de Wavelet pode ser considerada uma famı́lia de transformadas, pois existe uma variedade relativamente grande de Wavelets. A seguir, são descritas a transformada de Fourier, a famı́lia de transformadas de Wavelet e a transformada Delta, proposta neste trabalho. 2.2.1 Transformada de Fourier A transformada de Fourier é uma das mais difundidas na literatura. Sua utilização vai além da matemática, podendo ser aplicada em áreas como oceanografia, fı́sica, processamento de imagem e processamento de sinal. O grande objetivo da aplicação da transformada de Fourier para o processamento de sinais é a decomposição do conjunto de valores da entrada do domı́nio do tempo para o domı́nio da frequência, facilitando a visualização de cada ponto existente no sinal e a intensidade com que ocorre [Cooley e W., 1965]. A transformada de Fourier pode ser aplicada em dois tipos distintos de dados, contı́nuos e discretos. Dados contı́nuos contêm infinitos valores em um intervalo de tempo qualquer. Um intervalo de tempo contı́nuo qualquer (t1 , t2 ) com t1 , t2 ∈ R é um conjunto infinito não enumerável, mas a representação numérica em um computador é finita e, portanto, deve ser utilizada a transformada de Fourier para dados discretos. Para sua aplicação, necessita-se de valores xk discretos, que serão processados através do modelo matemático demonstrado a seguir: xk = n−1 2πi 1? fj e n jk n j=0 K = 0, . . . , n − 1 (2.2) 8 fj = n−1 ? xk e− 2πi n jk J = 0, . . . , n − 1 k=0 (2.3) Contudo, a transformada discreta [Danielson e Lanczos, 1942] exige que o dado seja utilizado como se fosse estacionário, ou seja, antes de realizar a transformada discreta em um sinal de ECG, é preciso obter e demarcar um ciclo QRS. Para calcular esta transformada em tempo real é necessário o pré-processamento desses pontos em dados discretos, a fim de transformá-los em valores tão curtos quanto possı́vel [Constantino e Silva, 1999], que serão mapeados para amostras de valores x0 , x1 , x2 , . . . , xn−1 . Esses valores são vistos pela transformada discreta na região dos números complexos, onde temos: x̂k = xk real + jxk imag (2.4) A partir dos dados obtidos acima, temos condições de modelar a transformada discreta de Fourier pela equação dada a seguir: X̂(n) = N 1 ? x(k)e−jk2πn/N N (2.5) k=0 Outra expressão que modela a transformada Discreta [Porfirio et al., 2009] de Fourier é exibida abaixo: Fn = N −1 ? fk e k −i2πn N k=0 = N −1 ? k=0 fk W kn , n = 0, . . . , N − 1 (2.6) Dentre suas caracterı́sticas, podemos destacar as seguintes: • Todos os sinais decompostos pela transformada de Fourier podem ser retransformados por meio da transformada inversa; • A transformada discreta pode ser rapidamente computada através do algoritmo de Fast Fourier Transform (FFT); • A FFT decompõe o sinal em componentes elementares de seno e cosseno. A complexidade assintótica do algoritmo de Fast Fourier Transform [Walker, 1996] é razoavelmente baixa, podendo ser considerado um algoritmo de rápida execução. Sua complexidade é da ordem de O(N log N) enquanto a complexidade da transformada discreta de Fourier é da ordem de O(N 2 ). 2.2.2 Transformada de Wavelet A transformada de Wavelet é uma ferramenta mais poderosa e moderna se comparada à transformada de Fourier [Batista, 2006]. A principal desvantagem de se utilizar a tradicional transformada de Fourier é que, apesar desta ser capaz de determinar todas as frequências presentes no sinal, essa transformada não as relaciona com o domı́nio do tempo contido no sinal. As Wavelets foram introduzidas por sismólogos franceses, que puderam concluir que a transformada de Fourier se tornava ineficiente para sinais com repentinas variações. Isto quer dizer que, para 9 sinais não periódicos, a transformada de Fourier não é recomendada. As Wavelets são aplicadas em áreas como engenharia, sismologia, fı́sica, processamento de imagem e sinal, etc. As Wavelets são funções matemáticas que têm como objetivo a decomposição das frequências em diferentes nı́veis de escala de frequências e de tempo, permitindo uma análise confiável em sinais descontı́nuos e com variações bruscas [Silveira e Assis, 2002]. Assim como a transformada de Fourier, a transformada de Wavelet possui duas ramificações, a contı́nua e a discreta. Para ambos os tipos de Wavelet, existem padrões que as caracterizam como tais, entre eles podemos citar dois principais: a área total sob a curva da função Wavelet é igual a 0 e a energia total da função é finita. Esta caracterı́stica determina a principal diferença entre a transformada de Wavelet e a transformada de Fourier. Com esta é possı́vel obter uma boa extração de valores no domı́nio da frequência e nenhum detalhe quanto ao domı́nio do tempo. Em contrapartida, as Wavelets conseguem determinar informações no domı́nio da frequência e do tempo. Entretanto, sua especificação não é tão precisa na frequência quanto a transformada de Fourier, devido à aplicação da técnica do Princı́pio da Incerteza para determinar informações nos dois domı́nios [Magini et al., 2012]. Além das caracterı́sticas citadas anteriormente, há uma terceira caracterı́stica necessária para a admissão da função como uma Wavelet. Toda função Wavelet obrigatoriamente deve ter uma função inversa, onde é possı́vel recompor o sinal decodificado novamente para o domı́nio do tempo. A transformada de Wavelet básica é determinada pela Equação 2.7, que é uma função de dois parâmetros reais (a e b), onde (*) significa o conjugado complexo. Cada um desses parâmetros influencia em um tipo de caracterı́stica em especial. O parâmetro b é responsável pela translação da função no eixo t, a uma distância b. O fator a, indica a escala da transformada, acarretando em um aumento da função, se a > 1, e uma diminuição, se a < 1. Chamamos a de parâmetro de escala. Ψa, b(t) é definida pela Equação 2.8. Usando as Equações 2.7 e 2.8, podemos reescrever a transformada de Wavelet como mostrado na Equação 2.9 W (a, b) = ? ∞ −∞ f (t)? ψa,b (t) = ? 1 |a| 1 |a| ψ∗ ( W (a, b) = ?f (t), ψa,b (t)? = ? ψ∗ ( t−b )dt a t−b ) a ∞ f (t)ψa,b (t)dt (2.7) (2.8) (2.9) −∞ A wavelet tem um nome especial para Ψ1,0 (t), sendo ela chamada de Wavelet mãe, enquanto as demais são chamadas de Wavelet filhas. Para retransformar o sinal decomposto é preciso fazer o uso da transformada inversa de Wavelet, dada pela Equação 2.10, sendo que C é definida pela Equação 2.11. Para satisfazer essa equação, C precisa ser positivo e finito. f (t) = 1 C ? ∞ −∞ ? C= ∞ −∞ ? 1 W (a, b)ψa,b (t)dadb | a |2 ∞ −∞ | Ψ(ω) |2 dω |ω| (2.10) (2.11) 10 Para o desenvolvimento do protótipo, foram usados dois tipos especı́ficos de Wavelets: a Haar e a Daubechies, decomposta em nı́veis de 1 (um) a 11 (onze), que significa dividir o sinal em frequências distintas. Ao escolher decompor no nı́vel 1 (um), deriva-se o sinal bruto em duas frequências, no nı́vel 2 (dois), divide em 3 (três) espectros diferentes e assim por diante. A seguir, são descritas ambas Wavelets. Wavelet Haar A Wavelet Haar é uma das Wavelets mais simples. Como a Haar é utilizada para sinais discretos, ela possui uma vantagem para a análise de sinais biológicos e monitoramento de falhas de máquinas [Pektas et al., 2009], por exemplo, devido ao seu potencial de representação de variações repentinas. O fato de a Wavelet Haar não ser descontı́nua e, portanto, não diferenciável, é considerado uma desvantagem. A descrição da mãe da Haar, da função Wavelet ψ(t) é dada pela equação 2.12. 1 ψ(t) = −1 0 0≤t< 1 2 1 2 ≤t<1 (2.12) outros casos Na Figura 2.3, é ilustrado um exemplo da Wavelet Haar. Figura 2.3: Um exemplo da Wavelet Haar Wavelet Daubechies As Daubechies são transformadas discretas Wavelet. Através deste conjunto de tipos de Wavelet, temos uma função de escala associada, capaz de gerar uma análise multirresolução ortogonal [Lima, 2003]. Um exemplo dessa análise pode ser visualizado na Figura 2.4. Figura 2.4: Exemplo de análise multirresolução ortogonal 11 Na Tabela 2.1, são exibidos, para Daubechies 2-20, os coeficientes das funções de escala. Os coeficientes são usados basicamente com a função bk = (−1)k aN −1−k ; onde k é o ı́ndice do coeficiente, b é o coeficiente da sequência de Wavelet, a um coeficiente da sequência da escala e N é o ı́ndice da Wavelet (2-20). D2 D4 D6 D8 D10 D12 D14 D16 D18 D20 1 0.6830127 0.47046721 0.32580343 0.22641898 0.15774243 0.11009943 0.07695562 0.05385035 0.03771716 1 1.1830127 1.14111692 1.01094572 0.85394354 0.69950381 0.56079128 0.44246725 0.34483430 0.26612218 0.3169873 0.650365 0.8922014 1.02432694 1.06226376 1.03114849 0.95548615 0.85534906 0.74557507 -0.1830127 -0.19093442 -0.039575503 0.19576696 0.44583132 0.66437248 0.82781653 0.92954571 0.97362811 -0.12083221 -0.26450717 -0.34265671 -0.31998660 -0.20351382 -0.0223874 0.18836955 0.39763774 0.0498175 0.0436163 -0.04560113 -0.18351806 -0.31683501 -0.40165863 -0.41475176 -0.35333620 0.0465036 0.10970265 0.13788809 0.1008467 6.68194092e-4 -0.13695355 -0.27710988 -0.01498699 -0.00882680 0.03892321 0.11400345 0.18207636 0.21006834 0.18012745 -0.01779187 -0.04466375 -0.05378245 -0.02456390 0.0434526834 0.118012745 4.71742793e-3 7.83251152e-4 -0.02343994 -0.06235012 -0.09564726 -0.10096657 6.75606236e-3 0.01774979 0.01977216 3.54892813e-4 -0.04165925 -1.52353381e-3 6.07514995e-4 0.01236884 0.03162517 0.04696981 -254790472e-3 -6.88771926e-3 -6.67962023e-3 5.10043697e-3 5.00226853e-4 -5.54004549e-4 -6.05496058e-3 -0.01517900 9.55229711e-4 2.61296728e-3 1.97332536e-3 -1.66137261e-4 3.25814671e-4 2.81768659e-3 -3.56329759e-4 -9.69947840e-4 5.5645514e-5 -1.64709006e-4 1.32354367e-4 -1.875841e-5 Tabela 2.1: Coeficientes das funções de escalada da Wavelet Daubechies Um fato curioso a ser observado é que a Daubechies 2 (D2) é a Wavelet Haar. A análise da Wavelet Daubechies permite separar as frequências contidas nos sinais, daı́ sua importância. Através do uso de filtros para potencializar o efeito da Daubechies é possı́vel separar as altas frequências (HF), baixas frequências (LF) e ultra baixas frequências (ULF), neste caso, utilizando uma decomposição nı́vel 2 (dois). É possı́vel decompor desde duas frequências até doze. Wavelet Symlet Assim como as Daubechies, a Symlet é uma variante da famı́lia de transformadas Wavelet. A transformada Symlet é uma extensão e possui basicamente as mesmas propriedades que a Daubechies, porém, são mais simétricas do que as wavelets de fase extrema. Além disso, também possuem momentos de fuga nas funções escalares. Em [Sivannarayana e Reddy, 1999] os autores constataram um bom desempenho desta wavelet em comprensão de dados, tendo grande efeito principalmente para os dados de eletrocardiograma. 2.2.3 Transformada Delta A Transformada Delta, foi proposta em um trabalho anterior para processamento de Sinais Biológicos Elétricos e foi desenvolvida no protótipo MD-SBE [Barbosa e Calembo, 2012]. O principal objetivo dessa transformada é calcular o módulo da variação a cada dois pontos consecutivos do sinal biológico elétrico. O fator fundamental para a aplicação de Delta é, principalmente, a irregularidade do batimento cardı́aco 12 de um coração normal. Em suma, um coração saudável possui uma inconsistência no seu batimento, diferente de um coração com algum problema, que apresenta um número menor de variações. Uma das maneiras de detectar anomalias em um coração é identificar uma baixa variação de potencial elétrico ao longo de todo o sinal. Por esse motivo propusemos a transformada Delta. A transformada Delta é dada pela Equação 2.13. Nas Figuras 2.5 e 2.6 são ilustradas, respectivamente, parte um ECG original e o resultado da transformada Delta sobre o ECG. Os passos deste cálculo estão demonstrados na Tabela 2.2. Delta(t) =| x(t) − x(t − 1) | (2.13) Figura 2.5: Exemplo do inı́cio de um ECG Figura 2.6: Resultado da transformada Delta 2.3 Cálculos Estatı́sticos para Extração de Caracterı́sticas de Eletrocardiograma As medidas estatı́sticas descritivas têm um importante papel no processo de extração de atributos do fluxo de dados. Nessa seção, x(t) é o sinal lido, e x é o sinal considerando um intervalo fixo por t. As seguintes medidas foram utilizadas para extração de atributos dos sinais EGC: Média Aritmética x: 13 Intervalo f(X) f(X+1) Delta 1 0,106812 0,131226 0,024414 2 0,131226 0,153503 0,022277 3 0,153503 0,199585 0,046082 4 0,199585 0,257568 0,057983 5 0,257568 0,288696 0,031128 6 0,288696 0,281372 0,007324 7 0,281372 0,252075 0,029297 8 0,252075 0,19104 0,061035 9 0,19104 0,106812 0,084228 10 0,106812 0,0408936 0,0659184 11 0,0408936 0,0360107 0,0048829 12 0,0360107 0,0634766 0,0274659 13 0,0634766 0,0946045 0,0311279 Tabela 2.2: Tabela demostrando os passos do cálculo da Transformada Delta x é definida pela equação 2.14. É a medida mais usada frequentemente entre as medidas de média. Destina-se a encontrar um valor ponderado de todo um conjunto de valores. n x= x1 + x2 + . . . + xn 1? = xi n n i=1 (2.14) Variância S 2 e desvio padrão S : S 2 e S são definidos pela Equação 2.15. Ambos são correlacionados com a média. O objetivo da variância é avaliar a estatı́stica da dispersão média, indicando a distância média entre o valor esperado (média) e o valor atual. O desvio padrão é a raiz quadrada da variância, sendo a principal estatı́stica da medida de dispersão. Sua existência permite ter uma dispersão média na mesma unidade original. ? ? ? 2 s = s =? √ Mediana m e Moda M o : n 1 ? (xi − x)2 n − 1 i=1 (2.15) Ambas são outras duas medidas de centralidade. m visa expressar a tendência central de um conjunto numérico. m representa um valor o qual metade da população é menor ou igual, e a outra metade é maior que ou igual. M o representa um valor ou valores que são mais frequentes durante a observação. Ao contrário das outras medidas descritas, M o pode não ser único. Uma amostra pode ser classificada como amodal (não tem moda), bimodal (dois valores modais) e multimodal (mais do que dois valores modais). 14 Soma dos elementos SE e soma dos elementos ao quadrados SEQ : SE é a soma de cada um dos valores da variável, cumulativamente, enquanto SEQ computa a soma do valor ao quadrado de cada um dos valores da variável. Coeficiente de Assimetria As : As verifica a distribuição frequente da população e calcula o valor que representa essa assimetria. Quando a distribuição da variação é completamente simétrica (raramente), As = 0. Quando a distribuição não é simétrica, o Coeficiente Assimétrico pode ser positivo ou negativo. O Coeficiente de Assimetria pode ser dado pela Equação 2.16. O Coeficiente Assimétrico possui as seguintes propriedades: As = 3 × (x − m) s (2.16) Coeficiente de Variação de Pearson ρ : ρ mede a dispersão relativa de uma população. ρ é expresso como a divisão entre o desvio padrão e a média, tendo os dois como amostras de valores e para a população. ρ é dado pela Equação 2.17. ρ= 2.4 S x (2.17) Demais Medidas Descritivas Além das medidas estatı́sticas descritivas, são computados outros atributos dos fluxos gerados pelo método. A Área sob a curva do gráfico de cada um dos fluxos e também o reconhecimento dos pontos R do eletrocardiograma. 2.4.1 Cálculo da Área A área sob a curva, também conhecido como integral, pode ser calculada para cada um dos fluxos do método (ECG e resultante das transformadas). Para a realização da computação da área é utilizado um método computacional muito conhecido para o cálculo da área, o método do ponto médio ou método dos retângulos. O método dos retângulos 2.18, se baseia no cálculo da área de retângulos para estimar uma área aproximada para a curva. ? b a f (x)dx ? (b − a)f ( a+b ) 2 (2.18) Dessa forma, calcula-se o somatório das áreas dos retângulos. O somatório das áreas equivale aproximadamente ao valor da área da função dada. Sendo possı́vel, assim, calcular aproximadamente o valor da área sob a curva das funções. 15 2.4.2 Identificando o Ponto R O ponto R é considerado um dos pontos mais importantes do eletrocardiograma. Ele é o ponto máximo do sinal de eletrocardiograma, por ciclo. A partir do ponto R é possı́vel calcular a frequência cardı́aca, por exemplo. A partir da identificação dos pontos r do eletrocardiograma, mede-se a quantidade de pontos r que o sinal de eletrocardiograma apresentou no intervalo de um (1) minuto. A quantidade de pontos é igual a frequência cardı́aca (batimentos por minuto ou bpm). Como é possı́vel ver na Figura 2.1, a região próxima ao ponto r apresenta a maior variação (em relação ao eixo y) do ciclo. Dessa forma, é possı́vel por meio de funções heurı́sticas o reconhecimento e identificação do intervalo que contém a maior diferença. Uma vez encontrada essa região, é procurado o ponto em que a diferença de variação, com relação ao eixo x, possui um valor positivo quando calculada com o ponto a sua esquerda e diferença negativa quando computada com o ponto a sua direita. Através desse método são identificados os pontos R do fluxo de eletrocardiograma, sendo possı́vel a identificação dos ciclos do mesmo. 2.5 Técnicas de Aprendizado de Máquina O aprendizado de máquina é uma disciplina que explora a construção e o estudo de algoritmos que podem aprender a partir dos dados. Tais algoritmos operam a partir da construção de um modelo a partir de dados de entrada, usando-os para fazer classificação ou tomada de decisão, de melhor forma do que os algoritmos estáticos. Aprendizado de máquina é um subcampo da ciência da computação decorrente da investigação em inteligência artificial. Exemplos de aplicação incluem filtragem de spam, reconhecimento óptico de caracteres, motores de busca e visão computacional. Aprendizado de máquina é por vezes confundido com a mineração de dados, apesar de que se concentrar mais na análise exploratória de dados [Witten e Frank, 2005]. Existem dois paradigmas principais de aprendizado de máquina, o supervisionado e o não supervisionado. No trabalho foi abordado o paradigma supervisionado. O aprendizado de máquina supervisionado funciona quando se tem uma base de dados rotulada, ou seja, onde se conhece a classe a qual pertence determinada instância (ou dado de entrada). Dessa forma o algoritmo é treinado com dados rotulados, buscando “aprender” a melhor forma como classificar os novos dados de entrada, ou seja, como identificar a qual classe pertencem novas instâncias dos dados. Geralmente, os algoritmos são treinados com uma porcentagem das instâncias rotuladas e a outra fração dos dados, que não foram utilizados no treinamento, são utilizados para testar o modelo classificador criado pelo algoritmo [Bishop, 2006]. Neste trabalho foram utilizadas técnicas de aprendizado de máquina baseadas em árvores de decisão. Essa técnica demanda pouco esforço computacional para classificar os novos dados de entrada. Além disso, as árvores de decisão geram modelos classificadores extremamente fáceis de serem entendidos e avaliados por humanos. Esta técnica é amplamente empregada em estudos de eletrocardiogramas como nos trabalhos [Karqupta e Park, 2001, Domingos e Hulten, 2000], contribuindo com bons resultados classificatórios. 16 2.5.1 Algoritmos de Árvores de Decisão Algoritmos de árvore de decisão são uma famı́lia de algoritmos de aprendizado de máquina bem conhecidos na literatura. Este tipo de algoritmo é baseado na representação de tabelas de decisão em formato de uma árvore. Os nı́veis da árvore de decisão são atributos do domı́nio do dado. Pode-se navegar pela árvore de decisão selecionando um caminho especı́fico, dependendo do valor dado do atributo associado com cada nó da árvore. As folhas da árvore são compostas pelas classes. Uma vez que a folha é alcançada, o dado de entrada é classificado de acordo com a classe associada a da folha [Jin e Aggrawal, 2003a]. Os algoritmos de árvore de decisão são construı́dos seguindo a estratégia de dividir para conquistar. Nesta abordagem, o problema complexo é decomposto em sub-problemas mais simples. A partir da divisão, a técnica escolhida para resolver os sub-problemas são executadas recursivamente até que se resolva cada um deles. Ao final, os sub-problemas são agrupados, criando a solução para o problema inicial. Para induzir uma árvore de decisão um algoritmo desta famı́lia escolhe um atributo para cada nó, usando alguma função heurı́stica que correlaciona o atributo que melhor separa a caracterı́stica da classe. Existem diversos algoritmos propostos na literatura para a indução de árvores de decisão, variando de acordo com a heurı́stica utilizada. Neste trabalho foram utilizados três algoritmos que induzem árvores de decisão: C4.5, One Rule e Random Tree. C4.5: Esse é o algoritmo de árvore de decisão mais popular [Quinlan, 1993]. Dado um conjunto de dados, o algoritmo C4.5 primeiramente escolhe, a caracterı́stica que melhor separa os casos em todas as classes de conjunto de dados de acordo com o ganho de informação, dado por uma função heurı́stica. O atributo escolhido também é conhecido como atributo de decisão. Considerando que a caracterı́stica de decisão é discreta, o domı́nio tem N valores possı́veis. O conjunto de dados é então separado entre N partições, com relação ao seu valor no atributo de decisão. Após isto, a árvore é de forma recursiva criada para cada caminho gerado a partir dos nós de decisão criados, até todos os nós (folhas) tenham apenas instâncias de uma classe. Se a árvore induzida for muito longa, é recomendável que seja podada. Esse algoritmo é chamado de J48 no Weka [Mark et al., 2009], a ferramenta utilizada para implementar o método proposto. One Rule: Cria-se a árvore com uma única regra. Esta árvore é criada depois de pesquisar em todo o conjunto de dados um único atributo que separa todas as classes da melhor maneira dada algumas funções heurı́sticas — este é o primeiro passo do algoritmo C4.5. Isto é um algoritmo muito simples e facilmente entendido [Mark et al., 2009]. Apesar da simplicidade, uma regra é aplicável em situações onde uma performance eficiente é importante. Random Tree: O algoritmo de Randon Tree constrói várias árvores de decisão de forma aleatória. Ao construir cada árvore, o algoritmo escolhe um atributo remanescente aleatoriamente, em cada nó de expansão, sem qualquer verificação ou validação. Um atributo é considerado remanescente se o mesmo não tiver sido escolhido anteriormente em um caminho de decisão particular, iniciando a partir da raiz até o nó atual. Uma vez que o atributo já tenha sido escolhido no caminho, é inútil escolhe-lo novamente para o mesmo caminho, porque cada exemplo no mesmo caminho terá o mesmo valor de classe. No entanto, um atributo contı́nuo pode ser escolhido mais de uma vez no mesmo caminho de decisão. Cada 17 vez que o atributo contı́nuo é escolhido, é selecionado um limiar aleatório. Uma árvore para de crescer quando as seguintes condições são alcançadas: (a) um nó torna-se vazio ou não haja mais exemplos para dividir no nó atual; ou (b) a profundidade da árvore exceder certos limites [Mark et al., 2009]. O número de atributos a serem selecionados é um parâmetro do algoritmo. 2.5.2 Avaliação dos Algoritmos Após a execução dos algoritmos, é necessário realizar uma avaliação para comparar os resultados gerados. Não existe um melhor algoritmo de aprendizado de máquina, uma vez que cada um pode apresentar comportamento diferente para diferentes conjuntos de dados. Escolher o melhor algoritmo para cada problema não é trivial, dessa forma, é necessário um conjunto de informações para realizar a comparação entre os modelos gerados. Para avaliar um modelo induzido por um algoritmo de aprendizado supervisionado, diversas técnicas podem ser utilizadas. A mais comum é a Hold-Out, que seleciona aleatoriamente k% do conjunto de exemplos para treinamento, enquanto os (100 − k)% restantes são utilizados para testar a performance do algoritmo. Em geral, esse processo é repetido algumas vezes para calcular a média e o erro padrão da medida de performance do classificador. Figura 2.7: Matriz de confusão genérica Algumas das medidas mais importantes na avaliação de algoritmos de de aprendizado de máquina são baseadas na matriz de confusão. A Figura 2.7 representa uma matriz de confusão genérica para um número n de classes de classificação. A matriz de confusão apresenta de maneira visual o resultado da avaliação do algoritmo classificador após o treino do mesmo. Na matriz, a célula Mij indica o número de instâncias que foram classificadas na classe j e são da classe i. O algoritmo de classificação obteve sucesso quando o valor encontra-se nas células da diagonal principal, em que i = j. Para uma matriz de classificadores binários, como o caso do trabalho (ansioso e não ansioso), a matriz de confusão pode ser expressa como na Figura 2.8. Na Figura 2.8, as células Mij onde i = j são os acertos do algoritmo treinado. Na célula C1,2 são os dados que foram classificados como negativo mas o resultado real da instância era positivo. A célula C2,1 é exatamente o caso oposto, ou seja, o algoritmo classificou como positivo, mas a classe real 18 Figura 2.8: Matriz de confusão genérica é negativa. Utilizando-se da matriz de confusão binária para a avaliação do algoritmo classificador, existem dois cálculos amplamente conhecidos chamados de Precision e Recall. P recision = V erdadeiroP ositivo V erdadeiroP ositivo + F alsoP ositivo (2.19) O cálculo da precisão (Precision) está retratado na Equação 2.19. A precisão calcula a fração dos elementos classificados como positivos que são realmente positivos. Em outras palavras, a precisão calcula a razão entre o número de elementos classificados corretamente, com relação aos elementos total de classificados como positivos. Basicamente, quanto maior for a Precision que um algoritmo retornou, maior é a relevância do resultado deste algoritmo. Então, quanto mais próximo de 1 (um) o valor da precisão, quer dizer que o algoritmo retornou substancialmente dados mais relevantes do que irrelevantes. O cálculo de Recall (Equação 2.20) retrata a porção dos elementos positivos que foram realmente classificados como positivo. O que quer dizer que calcula o número de acertos entre os elementos positivos. Recall = V erdadeiroP ositivo V erdadeiroP ositivo + F alsoN egativo (2.20) De modo semelhante ao Precision, o Recall representa a sensibilidade do algoritmo. Uma sensibilidade elevada significa que um algoritmo retornou a maioria dos resultados relevantes. Dessa forma, quanto mais próximo de 1 (um) for o Recall, melhor a sensibilidade apresentada pelo algoritmo. Além dos dois principais cálculos que podem ser realizados a partir da matriz de confusão binária, existe a possibilidade de computar a f-measure, ou seja, a medida harmônica entre o Precision e Recall. A partir desta medida, é possı́vel inferir que quanto maior o F, maior a qualidade em termos de Precision e Recall. A equação da medida harmônica pode ser vista na Equação 2.21, onde Pr = Precision e Rc = Recall. F = 2 ∗ P r ∗ Rc P r + Rc (2.21) Outra técnica para a avaliação e a seleção de classificadores baseados no seu desempenho é a chamada curva ROC (Receiver Operating Characteristics). Ela tem sido bastante empregada pela comunidade de aprendizado de máquina, pois em geral, avaliar apenas a taxa de acerto de um classificador 19 é uma métrica muito simples. A curva ROC é bastante útil no trato com domı́nios cujas classes estejam desbalanceadas e que possuam custos de classificação diferentes por classe. A curva ROC não é sensı́vel a mudanças na proporção de exemplos positivos e negativos no conjunto de teste. Ela é baseada nas taxas verdadeiro positivo e falso positivo, cuja razão não depende da distribuição de classes [Greiner et al., 2000]. As curvas ROC permitem quantificar a exatidão de um teste diagnóstico, já que, esta é proporcional à área sob a curva ROC, isto é, tanto maior quanto mais a curva se aproxima do canto superior esquerdo do diagrama. Dessa forma, quanto maior for a área da curva ROC, mais próximo do canto superior esquerdo, ou 100% de sensibilidade o algoritmo apresentou [Zweig e Campbell, 1993]. 2.6 Fluxo Contı́nuo de Dados Fluxo Contı́nuo de dados é constituı́do de dados que são gerados continuamente e em alta velocidade. Exemplos de fluxo de dados incluem, tráfego de redes de computadores, conversas telefônicas, transações financeiras, pesquisas na web e dados de sensores [Bifet e Kirkby, 2009]. Com o decorrer do tempo, atividades cotidianas tais como o uso de cartão de crédito, ligações telefônicas e navegação na internet começaram a resultar em grandes amontoados de dados que podem ser minerados para obter informações relevantes e interessantes em uma larga amplitude de variações de aplicações [Myatt e Johnson, 2009]. Desde a última década, a taxa de geração de dados tornou-se rápida de forma como nunca visto antes. Esta rápida geração de fluxos contı́nuos de informação tornou-se um desafio para o armazenamento, processamento e transmissão entre sistemas computacionais. Sistemas, modelos e técnicas foram propostas e desenvolvidas no decorrer dos anos para suportar estas mudanças [Gama, 2010]. Os hardwares também evoluı́ram de tal maneira que desde o final de década de 2000 tornou-se viável o armazenamento de grandes fluxos contı́nuos de dados. Adicionalmente, o desenvolvimento dos sensores contribuiu de igual forma para a possibilidade de monitoramento de diversos eventos de forma contı́nua. Embora a mineração de dados tenha se tornado uma área bem estabelecida, os problemas de fluxo de dados trouxeram desafios ı́mpares para os quais a mineração de dados tradicional não apresentava soluções [Olson e Delen, 2008]. Surgiram, por volta do ano 2000, estudos voltados especificamente para a mineração de fluxo contı́nuo de dados. 2.6.1 Mineração de Fluxo Contı́nuo de Dados A Mineração de Fluxo Contı́nuo de Dados é o processo de extração de conhecimento através de conjuntos de dados que são produzidos e processados contı́nua e rapidamente. A mineração de fluxo contı́nuo de dados está preocupada com a extração de conhecimento representadas em modelos e padrões identificados em fluxos de informações contı́nuos e ininterruptos [Myatt e Johnson, 2009]. Nas últimas décadas, houve um interesse crescente no gerenciamento de grandes quantidades de dados. A forma com que os dados passaram a ser gerados mudou e atualmente grande parte dos dados são gerados continuamente, na forma de fluxos contı́nuos de dados. Esta área traz grandes desafios para a mineração de dados, visto que a maioria dos algoritmos de aprendizado de máquina assumem que o conjunto de dados usado para o treinamento é finito, con- 20 templando todas as classes abordadas pelo problema. Também deve se dar atenção ao fato de que tais algoritmos consideram uma distribuição de probabilidades estacionária. Além disso, tais algoritmos consideram que os dados podem ser armazenados fisicamente e analisados por algoritmos executados em múltiplos passos, acessando a base de dados quantas vezes forem necessárias. Contudo, quando se tratam de fluxos contı́nuos de dados, esses conceitos não são aplicáveis, exigindo o desenvolvimento de novas técnicas apropriadas às peculiaridades dessas novas fontes de dados. A pesquisa relacionada com este tipo de problema vem ganhando importância crescente devido à relevância de suas aplicações e à crescente geração de informações no formato de fluxos contı́nuos. Aplicações deste tipo podem variar desde áreas cientı́ficas, como astronomia, meteorologia, geologia, etc, até aplicações financeiras ou empresariais. As principais restrições para consultar os fluxos de dados são a exigência de memória ilimitada — a princı́pio — e elevada taxa de comunicação e acesso a dados. Desta maneira, o tempo de processamento de cada conjunto de dados deve ser menor do que a taxa de produção e recepção desses dados. Em grande número das aplicações de mineração de fluxo contı́nuo de dados o objetivo é a identificação de classe ou valor das novas instâncias de fluxo de dados, dado o conhecimento previamente estabelecido sobre o comportamento de cada classe [Olson e Delen, 2008]. O ciclo de vida deste tipo de aplicação comprende basicamente as seguintes fases: coleta do fluxo de dados, extração das caracterı́sticas dos dados, normalização dos dados, seleção das caracterı́sticas, aplicação dos algoritmos de mineração de dados e avaliação dos resultados. O problema de mineração de fluxo contı́nuo de dados enfrenta dois grandes desafios. O primeiro deles consiste na coleta e tratamento do fluxo de dados, ou seja, a etapa de preparação do fluxo de dados. O outro grande desafio é a aplicação de técnicas de mineração de dados adequadas à mineração de fluxo contı́nuo de dados. Essas questões são abordadas nas subseções a seguir. 2.6.2 Preparação do Fluxo de Dados Esta etapa constitui a primeira parte da mineração do fluxo contı́nuo de dados. A fonte geradora do fluxo contı́nuo de dados pode ser um conjunto de sensores, dispositivos geradores de dados, fluxo de dados do aplicações financeiras, etc. Dessa forma é preciso estruturar esse fluxo de dados para a etapa de pré-processamento e então para o processamento dos dados por técnicas de mineração de dados [Jin e Aggrawal, 2003b, Kifer et al., 2004]. O grande desafio desta fase é encontrar uma maneira para tratar os dados. Existem alguns modos distintos para lidar com este desafio. A primeira delas é simplesmente enviar os dados assim que eles são gerados, quando o sinal analisado não necessita ser coletado por um intervalo de tempo ou perı́odo completo de estudo para interpretação. Esta é a maneira mais simples para se trabalhar com este paradigma, pois realiza-se a classificação de dados para cada valor individualmente, de forma sequencial. Contudo, nem todos os tipos de dados podem ser avaliados desta forma. Alguns tipos de sinais precisam ser coletados por um intervalo de tempo maior para que possam ser interpretados. Nesse caso é necessária a definição de uma janela de dados que pode ser de tamanho fixo ou variável. A janela de tamanho fixo é o tipo de armazenamento de janela mais fácil para gerenciamento [Rossi, 2014]. Este tipo 21 de abordagem é útil para dados periódicos [Junior, 2012]. Normalmente, o tamanho da janela de dados é definido antes de se começar o processo de mineração de fluxo de dados. Contudo, também existem dados com alta complexidade de dependência. Desta maneira, para este tipo de dados utilizam-se janelas de dados de tamanho dinâmico, que são ajustadas de forma adaptativa para melhor utilização da rede e para levar os dados da melhor maneira possı́vel para ser minerado de acordo com o contexto atual [Fong et al., 2011, Haghighi et al., 2010]. A escolha do tipo de janela adotado é uma etapa fundamental do processo de mineração de fluxo contı́nuo de dados. Deve-se levar em consideração todas as variáveis envolvidas no problema para então ser selecionado melhor tipo de janela de coleta de de dados para o problema. Uma vez que a janela de dados é completada, ela o conjunto de dados é repassado para a etapa do processo responsável pela mineração propriamente dita do fluxo de dados. A técnica de janela é uma maneira simples de lidar com a entrada de fluxo contı́nuo de dados. A ideia é utilizar apenas as últimas mensagens recebidas ao invés do fluxo todo. O tamanho dessa janela deve ser configurado previamente pelo usuário, e geralmente a taxa de mudança dos fluxos de dados não é conhecida. Assim, uma janela pequena pode refletir bem o conceito atual do fluxo, mas não conter dados suficientes para que o classificador alcance uma eficácia esperada, e uma janela grande pode permitir ao classificador alcançar um bom desempenho, mas demorar a detectar a ocorrência de uma mudança dos dados [Gama, 2010]. 2.6.3 Algoritmos de Mineração de Fluxo de Dados As abordagens que utilizam janelas levam em consideração a ordem de chegada dos dados. Porém, alguns métodos trabalham com um reservatório de amostragem de dados do fluxo. O reservatório nada mais é que uma estrutura onde são armazenados um conjunto de exemplos que sejam capazes de representar o fluxo. Essa amostragem é realizada com uma função probabilı́stica, que determina se um exemplo deve ser incluı́do ou retirado do reservatório, ou seja, essa função deve ser utilizada para determinar quais amostras de dados serão utilizados no treinamento do modelo. Existem inúmeras formas de abordar o problema usando mineração de fluxo de dados. No trabalho de [Al-Kateb et al., 2007], por exemplo, foram estudados reservatórios de amostragens em fluxos de dados com tamanho adaptativo sob duas perspectivas: tamanho do reservatório e uniformidade da amostra. Já em [Silva, 2012] foi proposto uma técnica de Janela Deslizante Ativa (JDA) que consiste em uma solução fundamentada na teoria do aprendizado ativo. Nesse trabalho, ao invés de escolher quais exemplos serão selecionados para entrar no conjunto de treinamento, o objetivo é permitir que o classificador escolha quais exemplos esquecer. Essa escolha é baseada em uma função que também foi utilizada em [Veloso e Meira-Junior, 2011], que considera que quanto maior a similaridade entre os exemplos e a idade do exemplo do treino, maior é a chance deste exemplo ser descartado. Assim, é possı́vel prover ao classificador um maior ganho de informação com um viés temporal. O Naive Bayes Multinomial, por sua vez, é um método incremental que supõe que todas as entradas são independentes e passam apenas uma vez por cada exemplo [McCallum e Nigan, 1998, Kibriya et al., 2004]. O método Hoeffding tree também é incremental, e assume que a distribuição de 22 geração de exemplos não muda constantemente [Karqupta e Park, 2001]. Ele explora o fato de que uma pequena amostra pode ser suficiente para escolher um atributo com boa separação entre as classes. Esta ideia é suportada matematicamente pelo conceito de limite de Hoeffding (Hoeffiding bound), que quantifica o número de exemplos necessários para estimar o quão bom é um atributo [Tao e Ozsu, 2010]. Os métodos Naive Bayes Multinomial e Hoeffiding Tree são bem adequados para lidar com fluxos de texto [Bifet e Kirkby, 2009]. Os algoritmos de árvore de decisão também ganham grande destaque nos problemas de mineração de fluxo contı́nuo de dados. É possı́vel encontrar alguns cenários, sobre o assunto abordado, descritos nos trabalhos [Shafer et al., 1996], [Karqupta e Park, 2001], [Domingos e Hulten, 2000] e [Fong et al., 2011] onde fazendo uso das árvores de decisão foi possı́vel classificar com uma boa acurácia os novos dados de entrada, assim como a computar a mudança de ambientes monitorados, adaptando o modelo a partir do resultado de algoritmos deste paradigma. O trabalho [Karqupta e Park, 2001] apresenta uma variação da técnica baseada na análise de Fourier para agregar, comunicar e visualizar árvores de decisão em aparelhos móveis tais como PDA’s e celulares. Esta técnica apresenta diversas propriedades muito úteis para a mineração de fluxo contı́nuo de dados para pequenos computadores e demais dispositivos. É possı́vel empregar diversos algoritmos tradicionais de mineração de dados em problemas de mineração de fluxo contı́nuo de dados, tanto para o paradigma supervisionado ou quanto para o nãosupervisionado [Sun et al., 2010]. Existem diversos artigos que demostram exemplos da utilização de algoritmos de mineração de dados para ambas as abordagens. Entre eles, pode-se citar os traba- lhos [Kifer et al., 2004], [Jin e Aggrawal, 2003b] e [Aggarwal, 2004] em que foram utilizadas janelas de tamanho variável e foram propostas modificações nos algoritmos de aprendizado de máquina tradicionais para suportar este tipo de abordagem. Também deve-se levar em consideração neste processo de mineração de dados que os algoritmos necessitam de otimização, pois como o processamento dos dados ocorre continuamente, não se pode afetar o resultado devido à complexidade computacional das etapas da mineração de dados para os fluxos de dados. Desta maneira, os métodos tradicionais de aprendizado de máquina para os algoritmos supervisionados, tais como árvores de decisão [Karqupta e Park, 2001, Domingos e Hulten, 2000], principalmente com podas, limitando a profundidade da árvore, assim como algoritmos de regras e redes Bayesianas [McCallum e Nigan, 1998] são os métodos mais indicados, devido a sua baixa complexidade e exigência de recursos computacionais, e por isso serão aplicados neste trabalho. Capı́tulo 3 Trabalhos Relacionados Neste capı́tulo, são apresentados trabalhos relacionados, presentes na literatura, referentes à mineração de fluxo contı́nuo de dados. Os trabalhos apresentam abordagens que serviram de base para os processos realizados no presente trabalho, seguidos de uma descrição do relacionamento entre eles e o presente trabalho. A seguir, são descritos alguns desses trabalhos. 3.1 Mobile Data Mining for Intelligent Healthcare Support No trabalho [Haghighi et al., 2009], os autores abordaram a combinação de técnicas já conhecidas com modelos preditivos inteligentes que conseguem reconhecer determinadas situações em que ocorre a incerteza voltada à atividade que o paciente está fazendo durante o dia a dia, enquanto o aparelho coleta informações. Por meio da coleta e mineração de fluxo de dados dos dispositivos, os autores propuseram um processo adaptativo para situações conscientes de fluxo de dados para aplicações voltadas para a saúde humana. Ou seja, o sistema interpreta os dados que ele está gerando para conseguir realizar uma autoadaptação, adequando-se ao estado atual. Nesse trabalho, os autores citaram como contribuições a utilização de técnicas de inferência de situações fuzzy para o reconhecimento das atividades do usuário. Este conceito combina a lógica Fuzzy com os princı́pios de modelos de contexto espacial para reconhecer as possı́veis situações em que o paciente se encontra. Por meio deste conceito de reconhecimento da situação, é possı́vel aumentar a performance do fluxo de dados de acordo com a situação. Da mesma forma que [Haghighi et al., 2009], o nosso trabalho foca no monitoramento em fluxo contı́nuo de dados, durante todo o perı́odo do dia, seja ele com o paciente em repouso, fazendo tarefas domésticas rotineiras, como cozinhando, varrendo o chão da casa, estudando, assistindo à TV, etc. Os autores trabalham com janelas de fluxo de dados variáveis. Contudo, como será visto no Capı́tulo 4, em nosso trabalho determinou-se uma janela fixa capaz de consolidar e trazer uma quantidade de dados suficiente para não interferir na acurácia dos cálculos preditivos. 24 3.2 An Architecture for Context-Aware Adaptative Data Stream Mining O trabalho [Haghighi et al., 2010] aborda a questão da otimização de dispositivos móveis, tais como PDA’s e smartphones. Os autores se baseiam na incorporação de conhecimento de contexto do usuário no processo de mineração de fluxo de dados, com base em modelo de espaço contextual denominado “Naı̈ve Context Spaces”. “O Naı̈ve Context Spaces” é um modelo que representa a informação contextual como um espaço multidimensional euclidiano, onde cada dimensão representa uma caracterı́stica do contexto. Dessa forma, uma situação contextual é definida por um conjunto de atributos e seus respectivos valores. Desta maneira, o sistema consegue adaptar-se de maneira eficiente a um conjunto de situações pré-definidas, de acordo com a combinação de dados obtidos em tempo real na forma de fluxo de dados que definem o contexto, e apoiado pela adoção de estratégias que se ajustam em tempo real, sem interromper a execução do sistema, para proporcionar a melhor condição de uso do dispositivo. Este trabalho enfatiza a interface com sensores de coleta de ECG, tendo em vista que este é o principal sinal coletado neste tipo de estudo. Além destes, outros estudos, como [Aggarwal, 2004], [Jin e Aggrawal, 2003b] e [Kifer et al., 2004], abordam o tema de adaptabilidade e otimização de aparelhos móveis e sensores de monitoramento de acordo com o ambiente e a situação em que o usuário monitorado se encontra, de acordo com modelos preditivos baseados nos dados recolhidos por meio da mineração de fluxo de dados, usando, desta forma, os dados que serão empregados no monitoramento do paciente, para a predição de uma melhor utilização do dispositivo móvel. 3.3 Collective Human Biological Signal-Based Identification and Authentication in Access Control Environments O trabalho [Van Der Haar, 2014] aborda a análise simultânea de sinais de eletrocardiograma e eletroencefalograma utilizando os dois como atributos biométricos. O trabalho representa cada um dos sinais em um formato comum, fundindo-os na etapa de atributos para a criação de um novo sistema biométrico que é interoperado com diferentes fontes de sinais biológicos. Os sinais são coletados por meio de smartphones ou integração de tecnologias “vestı́veis”, uma vez que esses aparelhos vêm apresentando um avanço tecnológico tão grande que torna capaz a extração confiável de informações biométricas. Os autores utilizam os sinais biológicos não para a identificação de doenças, mas sim para o reconhecimento pessoal, uma vez que todos os seres vivos produzem sinais de eletrocardiograma e eletroencefalograma. Por meio desses sinais, torna-se possı́vel a identificação biométrica exclusiva de cada indivı́duo, tornando muito mais difı́cil o processo de falsificação de identidade para a autenticação pessoal. O trabalho, então, propõe um método de autenticação combinando os atributos coletados no eletrocardiograma e eletroencefalograma de indivı́duos, estimando, dessa forma, um aumento na segurança de autenticação em sistemas, baseando-se em informações armazenadas a respeito do coração e cérebro de cada indivı́duo. 25 O método proposto apresenta três fases. A primeira delas consiste na coleta de atributos de cada um dos sinais. Os atributos coletados do ECG são referentes ao complexo QRS, em que são extraı́das informações, como, por exemplo, a frequência do batimento cardı́aco. Já as extrações de atributos do EEG foram empregadas as técnicas de extração de energia e coeficientes autorregressivos (AR), sendo que os autores identificaram que os coeficientes AR são muito mais prevalentes. Para a retirada de ruı́dos dos sinais de EEG, foi utilizada a WaveletHaar como filtro. Uma vez que os atributos foram coletados, os autores treinaram modelos de redes neurais, funções discriminantes, máquinas de vetor de suporte, classificadores Bayesianos e classificadores dos K vizinhos mais próximos. Dessa forma, criaram um classificador mais preciso, fundindo essas técnicas, do que quando aplicadas isoladamente. Assim como o trabalho [Van Der Haar, 2014], nosso trabalho utiliza atributos extraı́dos de sinais de eletrocardiograma para treinar modelos de aprendizado de máquina. Contudo, o presente trabalho não aborda os sinais de eletroencefalograma. O presente trabalho diferencia-se do trabalho citado, pois aplica estes métodos para o reconhecimento do usuário, enquanto o presente trabalho dedica-se ao monitoramento constante de traços de ansiedade nos pacientes monitorados. Também é importante notar que ambos os trabalhos utilizaram a WaveletHaar, porém com intuito diferente. No trabalho citado, a WaveletHaar foi utilizada como filtro para a remoção de ruı́dos coletados pelos sensores de EEG, enquanto neste trabalho, a WaveletHaar foi utilizada na etapa de préprocessamento para serem aplicadas às medidas estatı́sticas descritivas para a extração de caracterı́stica dos fluxos de eletrocardiograma. 3.4 Stream-based Biomedical Classification Algorithms for Analyzing Biosignals Em [Fong et al., 2011], os autores propuseram um framework para a classificação de fluxos de sinais biológicos utilizando algoritmos de classificação que fazem uso de árvores de decisão. O foco do trabalho é a abordagem de sinais de ECG. O algoritmo utilizado foi o C4.5. Os autores propuseram algumas modificações neste algoritmo para a adaptabilidade do mesmo para tratar mudanças de escopo ao longo do tempo, conforme são realizados processamentos no fluxo de dados. De modo semelhante, nosso trabalho foca na classificação dos fluxos de dados, mas com o objetivo especı́fico de auxiliar no diagnóstico de traços de ansiedade nos dados de ECG dos pacientes. No trabalho citado, os autores optaram pela utilização de um algoritmo de árvore de decisão, o C4.5. Este algoritmo é extremamente simples, reduzindo o tempo de processamento dos sinais pelo algoritmo preditivo. Neste trabalho, contudo, conforme descrito no Capı́tulo 4, o algoritmo C4.5 foi avaliado na etapa de criação de modelos preditivos, mas não obteve o melhor resultado quando comparado aos outros algoritmos usados para auxiliar na detecção de traços de ansiedade. Em vez disso, foi utilizada uma outra técnica de aprendizado de máquina, o OneRule. Este algoritmo é bem simples e demanda menor capacidade de processamento, necessitando de pouco tempo para sua execução. 26 3.5 A System for Mining Temporal Physiological Data Streams for Advanced Prognostic Decision Support O trabalho [Sun et al., 2010], teve por objetivo realizar a predição de indicadores-chave de pacientes, a partir da análise do fluxo de dados dos pacientes e da consulta aos padrões existentes semelhantes, a fim de se obter uma previsão com maior acurácia sobre o quadro do paciente que se encontra nas Unidades de Cuidado Intensivo em hospitais. Neste trabalho, os autores levantaram as seguintes perspectivas de contribuições: a concepção de medidas de similaridade que reflitam a proximidade clı́nica entre os pacientes, levando em conta o retorno de especialistas; o alinhamento das caracterı́sticas temporais dos pacientes para permitir comparações clı́nicas; a realização da projeção de dados dos pacientes para o futuro, com base nas caracterı́sticas dos dados semelhantes. O trabalho [Sun et al., 2010] é muito útil quando se pensa em utilizar os dados são gerados por pacientes distintos para otimizar a tomada de decisão, realizando um aprendizado constante. O trabalho citado é um bom exemplo a ser seguido como próximo passo neste trabalho. Seguindo a teoria aplicada, pode-se fazer um estudo comportamental relacionando os dados dos pacientes que acabaram de presenciar caracterı́sticas que tenham relacionamento com quadros de ansiedade e, então, será possı́vel encontrar uma relação entre os pacientes para tentar prever o motivo que os afeta e o que acontece após crises de ansiedade. 3.6 Mining Data Streams with Periodically Changing Distributions Outro trabalho que aborda a utilização dos fluxos de dados é o [Tao e Ozsu, 2010]. Neste trabalho, os autores propuseram um método para combinação dos padrões e reutilização de resultados de mineração para a mineração de fluxo contı́nuo de dados com uma periodicidade de mudanças distribuı́das. Desta forma, é possı́vel que se tenha uma redução do tempo de processamento sem afetar o resultado dos algoritmos. Neste trabalho, também foi proposto um framework para a detecção de mudanças e geração de resultados dinâmicos de mineração de fluxo de dados utilizando a técnica de combinação e reuso proposta. Para melhorar a performance dos algoritmos, este trabalho utilizou uma técnica para escolher inteligentemente um menor conjunto de dados que possa representar melhor a real distribuição dos dados com uma alta acurácia. A partir do trabalho, [Tao e Ozsu, 2010] é possı́vel concluir que não adianta estudar um grande conjunto de atributos para cada instância, pois algumas das caracterı́sticas podem ser correlacionadas ou simplesmente não fazerem sentido quando estudadas para o intuito do problema aplicado. Em nosso trabalho, seria possı́vel a coleta de dezenas de atributos estatı́sticos de cada uma das transformadas matemáticas, entretanto, estes atributos, por vezes, podem não ter uma grande utilização para o estudo de ansiedade. Dessa forma, foi desenvolvido o algoritmo de matriz de correlação de Pearson que pemitiu entender quais atributos possuem correlação entre si. A partir da matriz de correlação de Pearson, foi possı́vel realizar a remoção destes atributos, viabilizando uma redução no processamento dos sinais, e, 27 também, a diminuição de atributos a serem processados pelo algoritmo de regras para identificação de traços de ansiedade nos sinais. A partir da utilização deste procedimento, surgiram resultados mais expressivos, com uma maior taxa de acurácia e que demandavam menor tempo de processamento dos sinais, seguido de um diagnóstico muito mais rápido e preciso. 3.7 Projeto Diretrizes - Transtornos de Ansiedade: Diagnóstico e Tratamento O trabalho de Versiani [Versiani, 2008], Projeto Diretrizes - Transtornos de Ansiedade: Diagnóstico e Tratamento, lida com diferentes transtornos relativos à ansiedade, quais as causas, formas de diagnóstico e procedimentos de tratamento. Esse trabalho descreve, de forma sucinta, alguns dos principais transtornos relacionados à ansiedade, como, por exemplo: • Transtorno de Pânico • Transtorno de Ansiedade Social • Transtorno Obsessivo-Compulsivo • Transtorno de Ansiedade Generalizada O trabalho apresenta maiores detalhes sobre cada um dos transtornos citados, entretanto, só são exibidos processos manuais de diagnóstico e de informações médicas, sendo bastante difı́cil abordar uma grande variedade de pacientes simultaneamente e de forma automatizada, pois todos os processos de diagnóstico citados são referentes à intervenção e observação individual do paciente. Também são feitas coletas de sangue e amostragem quı́mica de cada um dos pacientes em conjunto com o uso de medicamentos. Desta forma, alguns dos processos apresentados acabam se tornando invasivos, custosos e sempre serão tratados de forma manual, sendo necessária a supervisão de um médico responsável durante toda a etapa de diagnóstico. A partir do trabalho citado, é possı́vel identificar que a ansiedade é um grande problema e que muitas pesquisas estão surgindo na tentativa de aumentar a precisão de seu diagnóstico. No entanto, estas novas técnicas são realizadas de forma manual, o que não é muito atraente, já que o número de pessoas que sofrem com este problema vem aumentando drasticamente com o passar do tempo. Para tentar auxiliar nesta tarefa, nosso trabalho apresenta uma proposta para auxiliar no diagnóstico da ansiedade de forma automática e contı́nua em pacientes que possuem um dispositivo de coleta de sinal de ECG. 3.8 MD-SBE No trabalho [Barbosa e Calembo, 2012], foi desenvolvida uma ferramenta de processamento de sinal que permitia o carregamento de um conjunto de séries temporais e a visualização gráfica deste sinais, além da visualização das Transformadas de Fourier e Wavelet dos sinais. Nesse sistema, era possı́vel também a realização de uma pequena tarefa de mineração de dados. Esta ferramenta realizava o pré-processamento 28 dos sinais e permitia a utilização de um pequeno módulo de mineração de dados, em que era possı́vel escolher alguns algoritmos de aprendizado de máquina do paradigma supervisionado, caso o usuário tivesse o rótulo de cada um dos sinais, ou a utilização de algoritmos do paradigma não supervisionado. O sistema computava e exibia o melhor resultado encontrado dentre todos os algoritmos implementados no sistema, com base em métodos de avaliação de algoritmos de aprendizado de máquina. Este sistema, contudo, não conseguia processar fluxos de dados, pois o arquivo do sinal a ser analisado necessita ser completamente carregado. Neste mesmo trabalho, é descrito um estudo inicial que indica a possibilidade de leve relacionamento do ECG com a decomposição do sinal em diversos nı́veis da transformada Wavelet. Este estudo foi aprofundado em [Magini et al., 2012], em conjunto com um grupo de pesquisadores da área de Enfermagem, Medicina e da Psicologia. O novo trabalho consistiu em um estudo de caso projetado para compreender o papel potencial da variabilidade da freqüência cardı́aca para prever diferentes nı́veis de ansiedade em uma amostra não-clı́nica utilizando transformada Wavelet. O sistema MD-SBE [Magini et al., 2012] apresentou um resultado inovador e expressivo no auxı́lio ao diagnóstico de traços de ansiedade. Contudo, sua abordagem visa à análise de apenas um sinal de eletrocardiograma por vez e necessita da informação completa, não sendo capaz de processar fluxos contı́nuo de dados. Em média, necessita-se de 6 minutos para completar o auxı́lio de um diagnóstico de cada paciente. Como será discutido na Seção 5.3, o método proposto neste trabalho, por outro lado, é capaz de trabalhar adequadamente com um número de cerca de 800 fluxos de dados de entrada simultâneos, em um computador normal, sem grande capacidade de processamento, em um intervalo de 2 minutos. Capı́tulo 4 O Método AnxECGStream Nesta seção é apresentado o método AnxECGStream, desenvolvido com o objetivo de apoiar a identificação automática de traços de ansiedade em sinais de eletrocardiograma, possibilitando, deste modo, o monitoramento contı́nuo de pacientes. O método é constituı́do por duas etapas. A primeira etapa contempla a elaboração de um modelo preditivo para a identificação de traços de ansiedade, baseado em árvore de decisão. Na segunda fase consiste na implementação na mineração de fluxo contı́nuo de dados, em que os novos dados coletados são pré-processados e submetidos à classificação com base no modelo classificador obtido na primeira fase. 4.1 Definição do Modelo Classificador A primeira fase do método AnxECGStream teve como objetivo o desenvolvimento de um classificador de sinais de eletrocardiograma visando a identificação de traços de ansiedade. Esta tarefa foi realizada por meio de técnicas de aprendizado de máquina supervisionado, o que exige um conhecimento prévio das classes das amostras estudadas. Com base no método Hoeffding tree [Karqupta e Park, 2001], é possı́vel afirmar que um conjunto de dados bem escolhido é suficiente para a determinação de um bom classificador que atenderá a todos os novos dados de entrada aplicando técnicas de aprendizado supervisionado. A Figura 4.1 apresenta graficamente todos os passos realizados pelo método AnxECGStream para a criação de um classificador de traços de ansiedade. Cada uma das etapas retratadas será descrita nas seções seguintes. 4.1.1 Descrição do Conjunto de Dados O conjunto de dados utilizados é oriundo do trabaho [Magini et al., 2012], no qual considerou-se a participação voluntária de 100 alunos de graduação da Universidade Federal Fluminense (UFF). O experimento foi aprovado pelo comitê de ética da instituição. Dentre os candidatos, foram selecionados 50 (cinquenta) alunos do sexo feminino e 50 (cinquenta) do sexo masculino, com idade média de 21,07 anos (± 1,68 de desvio padrão). Todos assinaram o documento de consentimento para participar da pesquisa, sem, contudo, saberem o propósito do mesmo até o momento de coleta dos sinais biológicos, quando eram 30 Figura 4.1: Processo para criação do modelo classificador de traços de ansiedade novamente convidados a assinar o termo. Durante o procedimento, todos negaram ter qualquer problema psiquiátrico ou neurológico e usar qualquer tipo de aparelho de monitoramento do sistema nervoso ou cardiovascular. De inı́cio, foi utilizado um instrumento de avaliação para caracterizar a amostra em relação aos nı́veis de ansiedade. O instrumento de medida utilizado foi o IDATE (Inventário de Ansiedade Traço-Estado), um questionário de autoavaliação composto por 40 (quarenta) itens e dividido em duas partes, cada uma com 20 afirmações, devendo ser respondidas seguindo uma escala formada por quatro itens: nunca/raramente/sempre/muito frequentemente. O objetivo do questionário era medir dois elementos que compõem a ansiedade: AnsiedadeEstado, referente a um estado emocional transitório, no qual o sujeito deve informar como se sente no momento; e Ansiedade-Traço, relacionada com elementos individuais que compõem a personalidade, estado no qual os sujeitos devem descrever como geralmente se sentem. Também foi preenchida pelos candidatos uma versão do IDATE para a quantificação dos afetos Positivo e Negativo em cada assunto. Esta escala foi composta por 20 (vinte) adjetivos que descrevem diferentes sentimentos e emoções. Dez destes descrevem humor negativo e os outros dez descrevem o humor positivo. Logo após o preenchimento dos formulários, os participantes eram conduzidos individualmente a uma sala com luz baixa e som ambiente na qual eram convidados a se sentar em uma cadeira para que fossem esclarecidos sobre o evento. Antes de iniciar a coleta, sensores psicológicos eram anexados e a qualidade do sinal era checada. Os candidatos eram orientados a descansar e respirar normalmente, e um registrador de ECG Biopac, modelo MP100, era utilizado para gravar o eletrocardiograma usando eletrodos de prata com pasta eletrolı́tica hipertônica. Foram utilizados um filtro de banda de 0,5-35 Hz 31 e uma taxa de amostragem de 250 Hz. Os exemplos possuı́am a seguinte dispersão: 40 voluntários classificados como ansiosos e 60 como não ansiosos tendo, portanto, 40% de candidatos ansiosos e 60% não ansiosos na amostragem. O erro majoritário desse conjunto foi a porcentagem de indivı́duos minoritários - 40%. Para o resultado do algoritmo de aprendizado ser considerado aceitável, a taxa de erro do classificador deve ser menor do que o erro majoritário, ou seja, para ter um resultado considerado aceitável, o modelo induzido necessita obter um acerto de classificação maior que 60%. Todos os candidatos eram avaliados e recebiam uma pontuação no intervalo entre 20 e 60 pontos, inclusos. O voluntário era classificado como ansioso caso atingisse uma pontuação igual o superior a 41 pontos. Fluxo de Eletrocardiograma dos Pacientes Os dados de ECG são coletados por aparelhos especı́ficos que geralmente possuem uma frequência de coleta determinada, variando entre 250 e 1000 Hz. Tem-se, então, uma fonte de dados para cada paciente gerando dados com uma alta frequência. Os dados de eletrocardiograma que serviram de base para o projeto foram coletados com uma frequência de 250 Hz. De acordo com [Junior, 2012], para dados periódicos, as janelas de tamanho fixo para o tratamento do fluxo de dados são recomendadas. Os dados de eletrocardiograma possuem ciclos bem definidos, que o caracterizam como um dado periódico. Os dados são computados normalmente a partir do ponto R presente nos dados, onde a frequência cardı́aca é calculada de acordo com a quantidade de pontos R apresentados no eletrocardiograma no intervalo de um minuto. Pelo fato do ECG se constituir em um dado periódico, foram utilizadas janelas de dados de tamanho fixo. Outro fator com grande influência nesta decisão foi a baixa complexidade desta abordagem [Rossi, 2014], permitindo um processamento mais eficiente. Esta metodologia aborda janelas de captura de pontos de eletrocardiograma contendo precisamente 30.000 pontos. Esse valor foi encontrado de acordo com experimentos previamente executados. Como a frequência do aparelho coletor dos sinais biológicos utilizado nesta fase do processo era de 250 Hz, tem-se que o tempo necessário para a janela ser preenchida completamente é de 2 minutos. Este tamanho também é importante, pois o tempo necessário para o preenchimento da janela não é longo o suficiente para que haja perda de informação com relação à classificação. Figura 4.2: Passagem de fluxo contı́nuo de dados para a central de processamento A Figura 4.2 detalha o processo de coleta e transferência do fluxo de dados para a central de processamento. Na imagem, o paciente (à esquerda) gera sinais de eletrocardiograma continuamente, representados pelo pequeno bloco ao lado dele na figura. Os sinais (blocos) de ECG que são gerados 32 pelo paciente preenchem a janela de dados de tamanho fixo. Uma vez que a janela se encontra completamente preenchida por pontos de eletrocardiograma, é enviada para a central de processamento. Essa transferência é realizada por meio de conexão com a internet. Como a janela de fluxo contı́nuo de dados é transferida para a central de processamento, o preenchimento da próxima janela de dados ECG é iniciado. É um processo contı́nuo que não cessa enquanto o paciente permanecer gerando sinais. 4.1.2 Pré-Processamento de Sinais de Eletrocardiograma Como discutido na Seção 2.5, o pré-processamento dos dados é uma etapa muito importante na mineração de dados. Ela é responsável por padronizar os dados, remover os ruı́dos e gerar os atributos que serão abordados pelas técnicas de mineração de dados. A seguir, são descritas as técnicas de pré-processamento de dados que foram utilizadas na fase de criação do modelo classificador. Técnicas de Processamento de Sinais Os processos que correspondem a esta parte do método são dedicados ao processamento dos sinais por meio da utilização de transformadas matemáticas, consolidadas na literatura. Para esta etapa foram utilizadas as transformadas de Fourier, algumas transformadas da famı́lia Wavelet e a Transformada Delta, conforme discutido na Seção 2.2. Tanto a transformada de Fast Fourier Transform (FFT), quanto as da famı́lia Wavelet já são amplamente difundidas na literatura, com comprovada eficiência e aceitação por todos os pesquisadores que trabalham com processamento de sinais, inclusive de ECG. A transformada de FFT decompõe o sinal de ECG no domı́nio da frequência, enquanto a Wavelet consegue decompor o sinal no domı́nio da frequência com o domı́nio do tempo. Deste modo, é possı́vel identificar as principais frequências presentes em cada uma das janelas do sinal. Além destas transformadas, a Transformada Delta trabalha com a diferença de variação entre dois pontos consecutivos. Esta transformada foi desenvolvida sob o pressuposto de que um coração saudável não é aquele que apresenta grandes variações, tampouco aquele cuja variação é pequena ou nula. Normalmente, o exame de eletrocardiograma contém em um ciclo, um espaço com pouca variação e um curto intervalo do ciclo com três grandes diferenciais, correspondendo ao complexo QRS do eletrocardiograma. Extração de Caracterı́sticas Reunidos os resultados de todas essas transformadas, é necessário identificar e extrair atributos que possam refletir caracterı́sticas especı́ficas de cada uma das janelas de dados. Para a identificação desses atributos foi utilizada uma série de métodos de discretização estatı́sticos, como a Média Aritmética, a Variância Amostral, o Desvio-Padrão, a Mediana, a Soma dos Elementos, a Soma dos Elementos ao Quadrado, o Coeficiente Variação de Pearson, a Moda e o Coeficiente de Assimetria, discutidos na Seção 2.3. Todas essas medidas estatı́sticas descritivas são aplicadas ao conjunto de uma janela de dados de eletrocardiograma. Também são aplicadas aos resultados de cada uma das transformadas citadas anteriormente para que sejam obtidas as medidas descritivas para os dados da janela de ECG, Transformada de 33 Fourier, Wavelet e de Delta. Com a utilização de cálculos estatı́sticos que abrangem um grande conjunto de dados, é possı́vel evitar que outliers venham a causar uma interferência significativa na análise da amostragem. Figura 4.3: Pré-processamento realizado no trabalho Na Figura 4.3, está descrita a etapa do pré-processamento de acordo com a abordagem deste trabalho. Nela é possı́vel observar todas as tarefas que são realizadas após o recebimento do fluxo de dados. A medida em que o fluxo é recebido, as transformadas são executadas, criando novos fluxos. Com todos os fluxos são computadas as medidas descritivas para cada um deles. Ao final do pré-processamento é obtida uma lista com todas as variáveis calculadas para cada um dos fluxos de dados. Além desses dados estatı́sticos, são calculadas algumas informações adicionais sobre o fluxo de dados original e também das respectivas transformadas, como a área sob a curva e os pontos R, discutidos na Seção 2.4.2. Para as janelas de dados do ECG calcula-se os pontos R, a frequência cardı́aca e também a quantidade de pontos R presentes na janela. Lembrando que com o cálculo dos pontos R’presentes no fluxo de dados, é possı́vel calcular dentre tantas informações, a frequência cardı́aca, uma vez que esta é calculada medindo o tempo entre o intervalo de tempo entre dois pontos R consecutivos. Ao final da etapa de geração de medidas é obtido um conjunto de atributos para cada fluxo de dados. Os atributos que constituem o conjunto de medidas de cada fluxo são: o fluxo de dados de ECG original, medidas estatı́sticas descritivas deste sinal, quantidade de pontos R, área sob a curva, transformada de Fourier, famı́lia de Wavelet e Delta, Medidas estatı́sticas descritivas destas séries e área sob a curva. Remoção de Atributos Correlacionados O método proposto no presente trabalho gera uma grande quantidade de atributos. No entanto, para mineração de dados, nem sempre a quantidade está relacionada proporcionalmente com a qualidade e precisão. A seleção de atributos apresenta fundamental importância e vem apresentando atenção especial em trabalhos relacionados a processamento de texto, recuperação da informação em banco de imagens, bioinformática, processamento de dados médicos, etc. Os principais alvos do processo de seleção de atributos incluem a melhora da performance dos algoritmos de aprendizado de máquina e a simplificação de modelos preditivos e classificadores, reduzindo dessa forma o custo computacional para processar os modelos. Também é importante para a prover um melhor entendimento sobre os resultados encontrados, uma vez que existe um estudo prévio sobre o relacionamento entre os atributos. 34 Além dos itens citados acima, a seleção de atributos também apresenta como objetivo a representação reduzida do conjunto de dados, em termos de atributos, mas de forma a produzir os mesmos (ou quase os mesmos) resultados analı́ticos. É possı́vel realizar esta tarefa com a eliminação de atributos redundantes, como por exemplos as variáveis altamente correlacionadas, que não agregam informação para a construção de um modelo. Em adicional, é possı́vel a eliminação de atributos irrelevantes, removendo atributos que não apresentam informação útil para o processo de mineração de dados. Como existem as janelas de dados, em conjunto com cada uma das transformadas calculadas, como fluxo de dados, seguidas da aplicação de técnicas estatı́sticas de discretização, tem-se um produto cartesiano de fluxos de dados com o número de medidas descritivas. O fato de o conjunto de atributos resultante para cada uma das janelas ser muito grande pode acarretar em perda de performance, com a realização de cálculos envolvendo atributos que podem ser correlacionados. Esses atributos não precisariam ser calculadas, sendo possı́vel eliminar atributos fortemente correlacionados. A computação de uma variável em vez de duas ou mais, para cada atributo correlacionado, implica diretamente no aumento da performance na etapa do pré-processamento. Não somente visando a performance, a remoção de atributos correlacionados também interfere diretamente na acurácia dos classificadores de mineração de dados. Quanto mais precisa for a lista de variáveis que descrevem o sinal, melhor a acurácia dos algoritmos de classificação e mais enxuta as regras utilizadas por cada um deles. A performance e o desempenho dos classificadores serão afetados imediatamente. Logo, é preciso tomar cuidado com a quantidade e qualidade do conjunto de atributos que será gerado. Para a seleção dos principais atributos que descrevem o conjunto de dados do fluxo de eletrocardiograma do paciente, foi utilizada a técnica de Matriz de Correlação de Pearson. A Matriz de Correlação de Pearson utiliza a medida descritiva do coeficiente de correlação de Pearson (ou coeficiente de correlação produto-momento). Este coeficiente mede o grau de correlação entre duas variáveis de escala métrica. O resultado do coeficiente de correlação de Pearson (ρ) vai de -1 a 1 (inclusos), sendo o 1 uma correlação perfeitamente positiva entre as duas variáveis e o -1 uma correlação perfeitamente negativa, ou inversamente proporcional. O 0 indica que não há nenhum grau de correlação entre as duas variáveis. Como resultado, é obtida uma matriz Mij em que i = j = nmero de atributos. Nesta matriz, as células Mij em que i = j sempre terá o valor 1, o que indica que o atributo é correlacionado com ele mesmo. Interpretando um pouco mais os valores do coeficiente de Correlação de Pearson, é aceitável que se o módulo do coeficiente for igual ou maior que 0.7 exista uma forte correlação entre os atributos. Caso o módulo esteja entre 0.3 e 0.7, ocorre uma correlação moderada, mas quando o módulo for inferior a 0.3 há uma fraca correlação. Para o projeto, aplicou-se um corte nas variáveis que apresentava um módulo igual ou superior a 0.5. Este corte reduziu significativamente o conjunto de atributos a ser calculado, restando apenas as seguintes variáveis: Como resultado, foi obtida a redução do número de atributos computados para 14, reduzindo substancialmente o número daqueles que deviam ser calculados, o que gerou uma redução no tempo de processamento das janelas de fluxo contı́nuo de dados. Ao final desta etapa, tem-se a lista de atributos para cada um dos fluxos de dados. 35 Fluxo Atributo 1 Atributo 2 Atributo 3 Eletrocardiograma Área Média Aritmética Variância Amostral Fourier Mediana Coeficiente de Variação de Pearson Symlet Área Coeficiente de Variação de Pearson Moda Daubechies Área Passa Baixo Área Passa Alto Mediana Passa Alto Haar Coeficiente de Variação de Pearson Moda Delta Moda Tabela 4.1: Tabela demostrando os passos da Transformada Delta 4.1.3 Algoritmos de Aprendizado de Máquina Esta etapa consiste no treinamento e criação de um modelo classificador para o diagnóstico de traços de ansiedade em fluxos de dados. Nesta parte do método foram utilizados os dados coletados com os seus respectivos rótulos (ansioso e não ansioso). Uma vez determinado o conjunto de atributos correspondentes a uma janela de dados, a próxima etapa consiste em ensinar a máquina a reconhecer quais os conjuntos de dados que possam ter traços de ansiedade. Para esta tarefa, foram utilizados algoritmos de aprendizado de máquina supervisionado, utilizando as amostras de dados coletadas dos voluntários e previamente rotulados, conforme discutido anteriormente. Foram adotados algoritmos de árvores de decisão [Domingos e Hulten, 2000, Karqupta e Park, 2001], ou seja, algoritmos aprendizado de máquina que demandam menor tempo de processamento. Além desse fator, as árvores de decisão obtiveram os melhores resultados com relação a taxa de acurácia, e a outras variáveis que servem como medidas de avaliação do modelo gerado pelo o algoritmo, com relação a algoritmos que foram testados, como por exemplo algoritmos de redes neurais. Foram aplicados algoritmos de mineração de dados conhecidos na literatura. Os algoritmos deveriam possuir uma caracterı́stica indispensável para o projeto: agilidade e simplicidade. Dentre os algoritmos aplicados, os que apresentaram melhor taxa de acurácia e medida harmônica foram os algoritmos One Rule, C4.5 e Random Tree. Devido aos fatores como melhor acurácia, precision, recall, F-Measure e área da curva ROC apresentada na etapa de teste optou-se pelo algoritmo One Rule. A acurácia é importante na definição do uso de um algoritmo na medida em que, quanto maior for a acurácia, menor será a taxa de erro. Na Tabela 4.2 são apresentados os resultados médios de cada um dos algoritmos durante a fase de treinamento. Algoritmo Acurácia C4.5 83% Random Tree 81% One Rule 90% Tabela 4.2: Resultado da etapa de treino dos algoritmos utilizados 36 Um dos algoritmos de mineração de dados mais conhecidos, o C4.5 cria uma árvore de decisão simples. A Figura 4.4 representa a árvore criada pelo algoritmo C4.5. Diferentemente do algoritmo One Rule, a árvore de decisão criada pelo C4.5 não tem a mesma restrição de número de regras criadas. Contudo, quando teve o desempenho na etapa de treinamento comparado ao do One Rule, foi considerado menos apropriado para o método proposto, conforme os valores apresentados nas Tabelas 4.3 e 4.5. Figura 4.4: Árvore de decisão resultante do algoritmo C4.5 Classe Precision Recall F-Measure Área Roc Ansioso 0.700 0.818 0.857 0.912 Não ansioso 0.895 0.744 0.719 0.912 Média 0.797 0.781 0.795 0.912 Tabela 4.3: Resultado da etapa de treino do algoritmo C4.5 Do mesmo modo, o algoritmo Random Tree também pertence ao conjunto de algoritmos de mineração de dados da categoria de árvore de decisão. É um classificador que considera apenas alguns atributos escolhidos aleatoriamente para cada nó da árvore. Na Figura 4.5 está detalhada a árvore de decisão criada por ele. O resultado do treinamento também foi inferior ao do One Rule, conforme os valores apresentados nas Tabelas 4.4 e 4.5. O algoritmo One Rule possui uma abordagem bem simples. Apenas uma árvore é criada após toda a base de dados ser varrida em busca de um único atributo que separe, da melhor forma, a base de dados. Isso torna esse algoritmo bastante simples e de fácil entendimento. Ideal para o projeto, dada todas os cenários já descritos durante o texto. O resultado do algoritmo One Rule é a árvore apresentada na Figura 4.6. 37 Figura 4.5: Árvore de decisão resultante do algoritmo Random Tree Classe Precision Recall F-Measure Área Roc Ansioso 0.875 0.636 0.737 0.790 Não ansioso 0.810 0.944 0.872 0.790 Média 0.834 0.828 0.821 0.790 Tabela 4.4: Resultado da etapa de treino do algoritmo Random Tree Figura 4.6: Árvore de decisão resultante do algoritmo One Rule Na etapa de treino, esse algoritmo também apresentou desempenho superior aos demais em precision, recall, f-measure e área da curva ROC, conforme apresentado na Tabela 4.5. Essa capacidade torna o algoritmo bastante simples e de fácil entendimento, ao mesmo tempo em que oferece uma boa taxa de acertos, ideal para o projeto, considerando todos os cenários já descritos. Além disso, durante a etapa de testes o One Rule demonstrou suportar um número maior de pacientes 38 Classe Precision Recall F-Measure Área Roc Ansioso 0.909 0.909 0.909 0.982 Não ansioso 0.944 0.944 0.944 0.982 Média 0.931 0.931 0.931 0.982 Tabela 4.5: Resultado da etapa de treino do algoritmo One Rule ao mesmo tempo, permitindo o uso do método em larga escala. Os testes de desempenho são descritos detalhadamente na Seção 5.3. Os algoritmos foram treinados com o método Leave-One-Out, usando os dados rotulados. O método Leave-One-Out é um tipo de variação cruzada que testa cada padrão individualmente, ao mesmo tempo em que os demais padrões que formam a base de dados são treinados. Quando o treinamento é encerrado, todos os padrões são submetidos às fases de treinamento e teste, gerando erros que serão utilizados no cálculo da média de erros. O seu uso é vantajoso na medida em que ele oferece uma investigação completa sobre a variação do modelo em relação aos dados e oferece uma estimativa de erro muito próxima da verdadeira. O modelo obtido após o treinamento é utilizado para classificar as novas instâncias que consistem em janelas de fluxo de dados coletadas continuamente dos pacientes. Permite que os pacientes submetidos à coleta de sinais de ECG possam ser imediatamente analisados e classificados como ansiosos ou não ansiosos. O método proposto é escalável e pode ser utilizado para monitorar um grande número de pacientes simultaneamente. A partir do modelo gerado pelo algoritmo One Rule, é possı́vel perceber que o principal atributo utilizado para a classificação como ansioso ou não ansioso nos fluxos de eletrocardiogramas é a área do fluxo. 4.2 Classificação de Fluxo Contı́nuo de Dados A segunda fase do método consiste em, já tendo definido o modelo de classificação, efetuar o processamento e classificação de novos fluxos de dados vindos de pacientes distintos. Uma vez que o fluxo de dados é recebido, o seu pré-processamento é iniciado e é gerado um conjunto de atributos calculados por meio de medidas descritivas. Este conjunto de dados é submetido à classificação segundo o modelo gerado. O resultado desta classificação é “Ansioso” ou “Não ansioso”. Na Figura 4.7 são descritos os procedimentos realizados pelo método para a classificação de novos dados. Nas seções seguintes são detalhadas cada uma das etapas exibidas na figura. 4.2.1 Pré-Processamento de Fluxos Contı́nuos Os pacientes que possuem aparelhos coletores de sinais de eletrocardiograma enviam os fluxos de dados quando as janelas são completadas. Com as janelas de fluxo de dados, o método inicia o processo para classificar o novo dado. Na Seção 4.1.2 é discutida a remoção de atributos correlacionados, a fim de reduzir o processamento necessário para a geração de caracterı́sticas dos fluxos de dados. Ao final da 39 Figura 4.7: Processo para criação do modelo classificador de traços de ansiedade seção, foram apresentados os atributos resultantes, demonstrando aqueles que eram realmente necessários para caracterizar cada fluxo de eletrocardiograma. A parte de técnicas de processamento de sinais representada na Figura 4.7 se refere à etapa de pré-processamento dos novos fluxos. Uma vez recebida, a janela de dados é submetida às transformadas de Fourier, Wavelet Haar, Wavelet Symlet, Wavelet Daubechies e Delta. Ao final desta etapa, têm-se seis (6) fluxos de dados, sendo um para o resultado de cada transformada e o próprio fluxo do ECG. Em seguida, os fluxos resultantes de cada uma das transformadas e o próprio fluxo do eletrocardiograma são submetidos à etapa de geração de atributos (representado pela extração de caracterı́sticas na figura), sendo gerados atributos especı́ficos para cada um dos fluxos supracitados. Esta etapa pode ser descrita da seguinte forma: I Para o fluxo do eletrocardiograma são computadas a média aritmética, a área sob a curva e a variância amostral; II Para o fluxo da transformada de Fourier são extraı́dos a mediana e o coeficiente de variação de Pearson; III O fluxo da Wavelet Symlet tem a área sob a curva, o coeficiente de variação de Pearson e a moda computados; 40 IV Para o fluxo da Wavelet Daubechies são computados a área sob a curva do filtro passar baixa, a área sob a curva do filtro passar alta e a mediana do filtro passar alta (conforme discutido na Seção 2.2.2); V Para o fluxo da Haar são calculados o coeficiente de variação de Pearson e a moda; VI Finalmente, para o resultado da transformada Delta é computada a moda. Ou seja, ao final da etapa de pré-processamento obtém-se essa lista de atributos que representam o fluxo original de dados de ECG de um paciente, contendo os 14 atributos mencionados acima. 4.2.2 Classificador de Ansiedade Esta fase consiste na classificação dos novos fluxos de dados pelo método. Apesar de, neste trabalho, o método utilizar apenas o classificador gerado pelo algoritmo One Rule, conforme discutido na Seção 4.1.3, é mantido o cálculo de todos os catorze 14 atributos restantes — após a eliminação dos correlacionados. Isso ocorre para garantir a flexibilidade do método, que permite que outros modelos de classificação sejam empregados para a análise de outros tipos de sinais. Além disso, poderão ser aplicados métodos que combinem resultados de diversos modelos, visando obter uma melhor classificação. Uma vez que a lista de atributos tenha sido calculada para o respectivo fluxo de dados, ela é submetida à classificação do modelo selecionado e treinado na primeira fase. O modelo selecionado para a análise do ECG no método AnxECGStream foi gerado pelo algoritmo One Rule. Este algoritmo gera um classificador bem simples, que obteve uma taxa de acerto muito promissora utilizando apenas um atributo. Para a classificação dos dados, o algoritmo criou um modelo que utilizou a área do fluxo do ECG para realizar a classificação. O modelo classifica como não ansioso todo fluxo de dados que possui a área sob a curva inferior a 139.55 ou superior ou igual a 153.50. Os fluxos que apresentam a área do fluxo do eletrocardiograma maior ou igual a 139.55 e menor do que 153.50 são considerados ansiosos. O modelo gerado pelo One Rule apresentou taxas média de acurácia de 90%, e 0,931, Precision e 0.931 de Recall. A F-Measure que é um cálculo para avaliação utilizando a Precision e Recall, possui um valor de 0.931. Quanto maior a Precision, melhor o resultado do algoritmo. Como resultado dessa etapa é esperado o resultado classificador do fluxo de dados entrante. O conjunto de atributos gerado para o fluxo de dados é submetido à avaliação do classificador e o resultado é a classificação em ansioso ou não ansioso, representando a presença ou ausência de traços de ansiedade no fluxo de dados. Por meio das Figuras 4.8 e 4.9, é possı́vel fazer uma comparação entre os fluxos de ECG com traços de ansiedade e sem traços de ansiedade. Na Figura 4.8 são exibidos fluxos de eletrocardiograma com traços de ansiedade. Na Figura 4.10 estão representados os mesmos fluxos porém com maior nı́vel de detalhes, reduzindo a quantidade de pontos a serem exibidos. Quando comparamos estas figuras às Figuras 4.9 e 4.11, é possı́vel identificar que existe uma grande diferença entre os pontos do complexo QT dos eletrocardiogramas com e sem traços de ansiedade. Nos fluxos com traços de ansiedade as ondas T apresentam grandes valores ou pouca diferença de potencial, quando comparados aos pontos R do fluxo. 41 Figura 4.8: Exemplos de fluxos de ECG com traços de ansiedade Figura 4.9: Exemplos de fluxos de ECG sem traços de ansiedade Outro fator capaz de descrever bem, de forma visual, essa diferença entre fluxos com e sem traços de ansiedade, é que normalmente os fluxos sem a presença de traços de ansiedade normalmente apresentam pequenas variações constantes entre o ponto T e o ponto R. Já os fluxos com traços de ansiedade, apresentam uma variação quase nula entre esses pontos. 42 Figura 4.10: Exemplos de fluxos de ECG com traços de ansiedade com nı́vel de detalhe Figura 4.11: Exemplos de fluxos de ECG sem traços de ansiedade com nı́vel de detalhe Capı́tulo 5 Protótipo e Avaliação Nesta seção é apresentado um estudo de caso para auxı́lio ao diagnóstico de traços de ansiedade por meio de eletrocardiogramas. São descritos o processo de construção da base de dados para o experimento e o funcionamento do sistema que suporta o método, como ele processa os sinais em fluxos de dados. Trata-se de um sistema desenvolvido para demonstrar a viabilidade da construção de mecanismos de monitoramento escalável e eficiente, capaz de analisar um grande número de fluxos de dados simultaneamente. São abordadas, entre outros aspectos, a maneira como ele utiliza a mineração de fluxo de dados, a taxa de execução para um fluxo e a acurácia do modelo que estamos utilizando. 5.1 Simulador de Dados de Eletrocardiograma Para a avaliação do método proposto neste trabalho, foram utilizados os dados descritos na seção 4.1.1. Devido a restrições de recursos, ou seja, a indisponibilidade de aparelhos vestı́veis para a coleta de sinais de eletrocardiograma de usuários, não foi possı́vel realizar um experimento real. Mesmo que dispuséssemos deste equipamento, o teste de performance e escalabilidade exigiria um grande número de aparelhos e voluntários suficiente gerando dados simultaneamente, o que é impraticável. Desta forma, foi necessário criar um simulador capaz de gerar os sinais de eletrocardiograma de um número variável de pacientes fictı́cios (e seus sensores). O simulador usou como referência a base de dados de sinais de eletrocardiograma de 100 pacientes, que também foi empregada para a realização do treinamento do modelo gerado pelo algoritmo de aprendizado de máquina, descrita detalhadamente na Seção 4.1.1. Utilizando a técnica de reconhecimento de pontos R (ver Seção 2.4.2), foi possı́vel identificar cada um dos ciclos do eletrocardiograma de cada paciente. Foi criada uma estrutura de dados com todos os ciclos de cada paciente, sendo cada um deles representado por um número. A partir desta base de dados de ciclo, foram simulados os pacientes para a avaliação do método. Para dar inı́cio à simulação, é necessário determinar o número N de pacientes a ser simulados. Uma vez definida a quantidade de pacientes N , o simulador cria uma série novos processos para representar cada paciente, até chegar ao número de pacientes estipulado. Cada instância de processo escolhe um 44 aleatoriamente número entre 1 e 100, correspondendo a um paciente fictı́cio da base de dados. A instância de processo passa, então, a reproduzir os valores armazenados para este paciente especı́fico na mesma taxa de frequência em que esses dados seriam produzidos pelo aparelho coletor, ou seja, 250Hz. Desta maneira, são simulados N pacientes simultaneamente, gerando dados na mesma taxa de coleta por aparelhos em pacientes reais. 5.2 Protótipo Para validar o método, foi desenvolvido, como protótipo, um sistema computacional elaborado na linguagem de programação Java. O sistema possui uma separação por módulos. Cada módulo é responsável por uma etapa fundamental para o seu funcionamento, auxiliando no diagnóstico de ansiedade em tempo integral para um conjunto de pacientes. Figura 5.1: Diagrama de classe do protótipo desenvolvido para suportar o método AnxECGStream A Figura 5.1 ilustra o diagrama de classes do protótipo, que compõem os seus diversos módulos. O primeiro deles é o módulo de coleta, implemementado pelas classes Sinal e Gerenciador. Ele é responsável pelo recebimento das janelas dos sinais biológicos elétricos enviados pelos sensores. Estes dados recebidos são administrados em uma fila de processamento. O tempo nessa fila não deve ser grande para evitar o 45 acúmulo e aumento de instâncias na fila de processamento, ou seja, deve permitir que o diagnóstico seja contı́nuo e ininterrupto. Os dados são enviados ao próximo módulo, o módulo de pré-processamento dos sinais, que é implementado pelas classes Processador, Daubechies, Wavelet, Delta, FFT e Haar. Este módulo é responsável pela extração de atributos dos sinais recebidos, conforme discutido na Seção 4.2.1. O terceiro é o módulo classificador, utilizado para executar o método de classificação selecionado, conforme discutido na Seção 4.2.2. Este módulo é implementado pelas classes Modelo e OneRule. O protótipo, juntamente com o simulador descrito na Seção 5.1, foi utilizado para a realização dos testes de avaliação, que são descritos na próxima seção. 5.3 Avaliação do Método Proposto Nesta seção é descrita a avaliação do método proposto a partir de um estudo de caso utilizando a ferramenta computacional descrita anteriormente. Foram utilizadas entradas de dados de eletrocardiogramas reais coletadas com a frequência de 250Hz. Contudo, devido à alta dificuldade para a execução de testes em condições reais, foi necessário simular um conjunto de pacientes produzindo dados de eletrocardiograma continuamente para alimentar o sistema. Os testes foram realizados em um computador com o sistema operacional Windows 7, um processador Intel i5 com frequência de processamento de 2.20GHz, possuindo 4 núcleos de processamento e 4GB de RAM. Os resultados do sistema com o método proposto foram satisfatórios, principalmente por ter sido utilizado um computador de uso comum para esta avaliação. Os testes foram executados para um número de pacientes simulados simultaneamente variando de 1 a 1200, em passos de 100. Foi necessário interromper a avaliação para quantidades maiores que 1200 pacientes simultaneamente, pois este número sobrecarregou a memória do computador alocada ao sistema. A simulação com cada grupo de pacientes foi realizada 100 vezes e o valor representado nos gráficos e tabela a seguir são referentes ao tempo médio das medições observadas para cada configuração. Primeiramente, foi realizado um teste para comparar a performance dos três classificadores implementados, o C4.5, o Random Tree e o OneRule. Conforme discutido na Seção 4.1.3, o classificador selecionado foi OneRule, devido tanto aos seus bons resultados na classificação, quanto a performance superior. O gráfico ilustrado na Figura 5.2 representa o tempo total médio para a execução da classificação de um número variável de pacientes em paralelo, para cada um dos três classificadores avaliados. É possı́vel observar que para quantidades maiores que 300 pacientes monitorados simultaneamente, o desempenho do OneRule se torna muito superior. Os demais testes forma realizados utilizando apenas o classificador selecionado, isto é, o OneRule. Na Figura 5.3, o gráfico representa o tempo total médio para a execução da classificação de um número variável de pacientes em paralelo. Na Figura 5.4, o gráfico representa o tempo médio para a execução da classificação de um paciente, para uma quantidade variável de pacientes simulados (em segundos). Os resultados mostram que o método é escalável pode ser utilizado para o monitoramento de um grande número de pacientes simultaneamente. Entretanto, verifica-se na Figura 5.3 que o tempo de execução 46 Figura 5.2: Tempo de execução dos algoritmos por quantidade de pacientes em simultâneo aumenta uito para mais de 800 pacientes. Na Figura 5.4, verifica-se que para mais de 800 pacientes o tempo médio por paciente aumenta. Ou seja, o número de 800 pacientes analisados simultaneamente é o mais apropriado para se evitar a criação de filas de processamento, causando atrasos e evitando que os dados dos pacientes estourem a fila de requisição ao longo do tempo. Isto se dá, porque a janela de tempo de atualização dos dados dos pacientes é de 2 minutos, ou seja, aproximadamente 120 segundos, a para mais de 900 pacientes ou mais o tempo gasto é maior que esse. Na Figura 5.4, é possı́vel identificar ainda que o tempo de inicialização do sistema com um único paciente é bastante elevado, mas este se dilui para um número maior de pacientes. Para o número entre 100 e 800 pacientes o sistema possui uma ótima taxa de processamento, apresentando o melhor resultado no intervalo que compreende entre 700 e 800 pessoas monitoradas em paralelo. A Tabela 5.1 mostra, dentre as 100 simulações para cada número de pacientes, o menor tempo registrado durante a execução de classificação de fluxos de dados para o determinado número de pacientes, o tempo médio de execução, o maior tempo registrado e a porcentagem de variação entre o menor tempo e o maior tempo de execução durante as simulações para o respectivo número de pacientes. 47 Figura 5.3: Tempo médio de execução do sistema por paciente (em segundos) comparado a média de execução para o total de número de pacientes Figura 5.4: Tempo médio para a execução da classificação de um paciente, para uma quantidade variável de pacientes simulados (em segundos) 48 Número de Pacientes Menor Tempo Tempo Médio Maior Tempo Variação Min - Max 1 3,992 5,253 6,782 69,89% 100 12,585 13,447 14,522 15,39% 200 24,954 25,660 26,150 4,79% 300 36,765 37,229 37,467 1,91% 400 46,661 46,845 47,005 0,74% 500 49,633 53,307 59,880 20,65% 600 61,529 63,393 65,422 6,33% 700 68,797 73,191 77.870 13,13% 800 79,003 81,591 85,870 8,69% 900 118,252 120,120 121,825 3,02% 1000 152,987 155,157 157,347 2,85% 1100 194,190 201,477 208,669 7,46% 1200 405,206 417,244 429,282 5,94% Tabela 5.1: Tempo de processamento em segundos Capı́tulo 6 Conclusão Detectar quadros de ansiedade é de extrema importância para a medicina. A ansiedade pode estar associada a outras doenças, como depressão ou sı́ndrome do pânico. No entanto, por ser um estado atrelado a fatores psicológicos, o paciente pode não apresentar um comportamento que indique ansiedade na maior parte do tempo. Essa circunstância dificulta o monitoramento em tempo integral do paciente para que se criem tratamentos e acompanhamentos especı́ficos para o problema. Com o objetivo de facilitar o diagnóstico da ansiedade, neste trabalho foi proposto um método para identificar traços de ansiedade em um único paciente ou em um grupo de pacientes simultaneamente. Para apoiar este monitoramento, foi desenvolvido um sistema computacional que auxilia os diagnósticos de quadros de ansiedade por meio de registros de sinais de eletrocardiograma. Existem poucos estudos que abordam o diagnóstico automático da patologia tratada no presente trabalho. Ao apresentar uma acurácia de aproximadamente 90% de acerto, o método proposto se mostra promissor. Além disso, o método proposto para o monitoramento de pacientes teve avaliada a sua capacidade de processamento simultâneo. Nesse aspecto, suportou o monitoramento eficiente de até 800 usuários simultaneamente, mesmo quando executado em um computador de recursos limitados. A possibilidade de acompanhamento simultâneo de diversos pacientes pode contribuir com a investigação e o levantamento de dados estatı́sticos sobre a ocorrência de sinais de ansiedade em grupos de pacientes de uma ou várias instituições. É possı́vel classificar os dados coletados por região, gênero, instituição e faixa etária para que se identifique a maior frequência de ocorrência da ansiedade e sejam estabelecidas campanhas preventivas. Pretende-se ainda, como trabalho futuro, realizar testes com dados reais, ou seja, sinais de ECG coletado em tempo real a partir de sensores vestı́veis, a fim de avaliar a performance do método, ainda que para um número reduzido de pacientes. Pode-se também realizar novos estudos visando melhorar a acurácia dos modelos preditivos e do método proposto. Uma melhora na qualidade preditiva do método é possı́vel com a utilização de mais dados no processo de aprendizado de máquina, bem como com a inserção de metodologias que possibilitem a extração de outras caracterı́sticas dos dados, ou a utilização de outros algoritmos de aprendizado de máquina. O estudo de caso aqui apresentado se limitou a facilitar o diagnóstico de quadros de ansiedade 50 com base em ECG de um grande número de pacientes simultaneamente. Desta forma, este trabalho pode impulsionar estudos que relacionem padrões encontrados em Sinais Biológicos Elétricos para a identificação de outras situações de interesse. Mas o processamento de sinais biológicos permite estudos mais amplos. Por isso, o método desenvolvido possibilita trabalhar com sinais biológicos em geral, promovendo a prevenção, aprimorando diagnósticos e tratamentos de reabilitação. Se o objetivo for apenas a detecção de padrões ou extração de caracterı́sticas, outros sinais que não sejam os biológicos também poderão ser utilizados, pois o método não está restrito a eles, basta apenas que novos modelos classificadores sejam criados. Referências Bibliográficas [Aggarwal, 2004] Aggarwal, C. (2004). A framework for diagnosing changes in evolving data streams. In ACM SIGMOD Int. Conference on Management of Data. [Al-Kateb et al., 2007] Al-Kateb, M., Lee, B. S., e Wang, X. S. (2007). Adaptive-size reservoir samplis over data streams. In In Proceeding of the 19th International Conference on Scientific and Statistical Database Management. IEEE Computer Society, SSDBM ’07. [Banaee et al., 2013] Banaee, H., Ahmed, M. U., e Loutfi, A. (2013). Data mining for wearable sensors in health monitoring systems: A review of recent trends and challenges. sensors. Open Access. [Barbosa e Calembo, 2012] Barbosa, W. L. O. e Calembo, K. N. (2012). MD-SBE: Uma ferramenta para processamento de sinais biologicos eletricos. TCC. [Batista, 2006] Batista, R. A. (2006). Wavelets aplicadas ao estudo de anisotropias de raios cosmicos. Dissertação de Mestrado, Unicamp. [Baxter et al., 2013] Baxter, A. J., Scott, K. M., Vos, T., e Whiteford, H. A. (2013). Global prevalence of anxiety disorders: A systematic review and meta-regression. In Psuchol Med. [Bifet e Kirkby, 2009] Bifet, A. e Kirkby, R. (2009). Data Stream Mining - A Practical Approach. The University of Waikato. Centre for Open Software Innovation. [Cardio, 2014] Cardio, M. (2014). DisponÃvel em https://www.cardionet.com/. Acessado em 16/03/2015. [Constantino e Silva, 1999] Constantino, M. G. e Silva, G. V. J. (1999). A transformada de fourier em basic. Quı́mica Nova, 23(3). [Cooley e W., 1965] Cooley, J. W. e W., T. J. (1965). An algorithm for machine calculation of complex fourier series. Mathematics of Computation, 19. [Danielson e Lanczos, 1942] Danielson, G. C. e Lanczos, C. (1942). Some improvements in practical fourier analysis and their application to x-ray scattering from liquids. Journal Franklin Inst, volume 233. [Domingos e Hulten, 2000] Domingos, P. e Hulten, G. (2000). Mining high-speed data streams. In York, A. N., editor, KDD ’00, pages 71–80. In: Proceedings of the Sisth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 51 52 [Fong et al., 2011] Fong, S., Hang, Y., Mohammed, S., e Fiaidhi, J. (2011). Stream-based biomedical classification algorithms for analyzing biosignals. Journal of Information Processing Systems, 7(4). [Gama, 2010] Gama, J. (2010). Knowledge Discovery from Data Streams. Chapman & Hall/CRC, 1st edition. [Goldberg, 2014] Goldberg, J. (2014). Anxiety disorders. http://www.webmd.com/anxiety- panic/guide/mental-health-anxiety-disorders. [Haghighi et al., 2009] Haghighi, P. D., Zaslavsky, A., Krishnaswamy, S., e Gaber, M. M. (2009). Mobile data mining for intelligent healthcare support. In: 42nd Hawaii International Conference on System Sciences. [Haghighi et al., 2010] Haghighi, P. D., Zaslavsky, A., Krishnaswamy, S., Gaber, M. M., e Loke, S. (2010). An architecture for context-aware adaptative data stream mining. Technical report, Monash University. Disponivel em http://eprints.port.ac.uk/3359/1/p11.pdf Acessado em Novembro de 2014. [Houghton e Gray, 2012] Houghton, A. R. e Gray, D. (2012). Making Sense of the ECG, Third Edition. Hodder Education. [Jin e Aggrawal, 2003a] Jin, R. e Aggrawal, G. (2003a). Efficient decision tree constructions on streaming data. In: 9th ACM SIGKDD Int. Conference on Knowledge Discovery and Data Mining. [Jin e Aggrawal, 2003b] Jin, R. e Aggrawal, G. (2003b). Efficient decision tree constructions on streaming data. In: 9th ACM SIGKDD Int. Conference on Knowledge Discovery and Data Mining. [Junior, 2012] Junior, P. G. L. (2012). Classificacao de trafego baseados em mineracao de fluxo de dados. Dissertação de Mestrado, Universidade Federal de Pernambuco. [Karqupta e Park, 2001] Karqupta, H. e Park, B. H. (2001). Mining decision trees from data streams in a mobile environment. Data Mining, 2001. ICMD 2001, Proceedings IEEE International Conference, pages 281–288. [Katznelson, 2004] Katznelson, Y. (2004). An introduction to harmonic analysis. Dover Publications. [Kibriya et al., 2004] Kibriya, A. M., Frank, E., Pfahringer, B., e Holmes, G. (2004). Multiniminal Naive Bayes for text categorization revisited. In Proceedings of the 17th Australian joint conference on Advances in Artificial Intelligence, pages 488–499. AI ’04, Springer-Verlaq. [Kifer et al., 2004] Kifer, D., Ben, D. S., e Gehrke, J. (2004). Detecting change in data streams. In: 30th Int. Conference on Very Large Data Bases, pages 180–191. [LifeintheFastlane, 2014] LifeintheFastlane (2014). Paediatric ecg interpretation - Life in the fast lane medical blog. Lifeinthefastlane.com. [Lima, 2003] Lima, P. C. (2003). Wavelets: Uma introdução. Technical report, Departamento de Matematica - ICEX - UFMG. 53 [Maciel, 1996] Maciel, W. R. E. (1996). De um começo árduo ao prêmio nobel. Arquivo Brasileiro de Cardiologia, 66(4). [Magini et al., 2012] Magini, M., Mocaiber, I., Oliveira, L., Barbosa, W. L. O., Pereira, M. G., e Pinheiro, W. M. (2012). The role of basal HRV assessed through wavelet transform in the prediction of anxiety and affect levels: a case study. Journal of Biomedical Graphics and Computing, 2(1). [Mark et al., 2009] Mark, H., Frank, E., Geoffrey, H., Pfahringer, B., Reutemann, P., e Witten, I. H. (2009). The WEKA Data Mining: An Update. SIGKDD Explorations. [Mark, 1998] Mark, J. B. (1998). Atlas of cardiovascular monitoring. New York: Churchill Livingstone. [McCallum e Nigan, 1998] McCallum, A. e Nigan, K. (1998). A comparison of event models for naive bayes tex classification. In In AAAI-98 Workshop on Learninf for Text Categorization, pages 41–48. AAAI Press. [MegaKoto, 2014] MegaKoto (2014). Mobile ecg telemetry solutions http://www.megakoto.fi/mobile ecg telemetry solution for remote monitoring. (mets) Acessado em 16/03/2015. [Melco, 2006] Melco, dagem T. matemática. Disponivel em C. (2006). Dissertação Estudo de do eletrocardiograma Mestrado, Universidade sob de uma São aborPaulo. http://www.teses.usp.br/teses/disponiveis/3/3152/tde-14122006- 113034/publico/TITOCOUTINHOMELCO.pdf. Acessado em Novembro de 2014. [Microsoft, 2014] Microsoft (2014). Disponivel em https://www.microsoft.com/brasil/setorpublico/temas/devpartner.m Acessado em 16/03/2015. [Moyer, 2012] Moyer, V. A. (2012). Screening for coronary heart disease with electrocardiography: U.s. preventive services task force recommendation statement. Annals of Internal Medicine. [Myatt e Johnson, 2009] Myatt, G. J. e Johnson, W. P. (2009). Making Sense of Data II - A Practical Guide to Data Visualization, Advanced Data Mining Methods and Applications. John Wiley and Sons, Inc. [Natarajan et al., 2013] Natarajan, A., Parate, A., Gaiser, P., Angarita, G., Malison, R., Marlin, B., e Ganesan, D. (2013). In Detecting Cocaine Use with Wearable Electrocardiogram Sensors. UbiComp’13. [Olson e Delen, 2008] Olson, D. L. e Delen, D. (2008). Advanced data mining techniques. Springer. [Pektas et al., 2009] Pektas, G., Dinc, E., e Baleanu, D. (2009). Combined application of continuos wavelet transform-zero crossing technique in the simultaneous spectrophotometric determinatio of perindopril and indapamid in tablets. Journal: Quı́mica Nova, 32(6):1416–1421. [Pichot et al., 1999] Pichot, V., Gaspoz, J. M., Molliex, S., Antoniadis, A., Busso, T., Roche, F., Costes, F., Quintin, L., Lacour, J. R., e Barthelemy, J. C. (1999). Wavelet transform to quantify heart rate variability and to assess its instantaneous changes. Journal of Applied Physiology, 86:1081–1091. 54 [Porfirio et al., 2009] Porfirio, R. P., Júnior, O. A. C., Araujo, L. C. L. d., Silva, N. C. d., e Borges, D. L. (2009). Processamento de imagens multitemporais usando a transformada rápida de fourier (fft) na dimensão do tempo. In: Anais XIV Simpósio Brasileiro de Sensoriamento Remoto, pages 7071–7078. [Quinlan, 1993] Quinlan, J. R. (1993). C4.5: Programs for Machine Learning. Morgan Kaufmann. [Renato, 1995] Renato, M. E. S. (1995). O computador no processamento de sinais biológicos. Revista Informêdica, 2(12):5–9. [Rossi, 2014] Rossi, A. nuos de Dados. L. D. (2014). Tese de Doutorado, Meta-aprendizado Aplicado a Universidade de Sõo Paulo. Fluxos Contı́- Disponivel em http://www.teses.usp.br/teses/disponiveis/55/55134/tde-26032014-155351/pt-br.php. Acessado em Dezembro de 2014. [Salles e Silva, 2012] Salles, L. F. e Silva, M. J. P. (2012). A identificacao da ansiedade por meio da analise da iris: uma possibilidadea. Revista Gaucha de Enfermagem. [Shafer et al., 1996] Shafer, J. C., Agrawal, R., e Mehta, M. (1996). SPRINT: A scalable parallel classifier for data mining. In Kaufmann, M., editor, Proceedings of the Twenty-Second International Conference on Very Large Databases, pages 544–555. [Silva, 2012] Silva, I. S. (2012). Analise adaptativa de fluxo de sentimentos. Dissertação de Mestrado, Universidade Federal de Minas Gerais. [Silveira e Assis, 2002] Silveira, L. F. Q. e Assis, F. M. (2002). Desempenho da codificação wavelet com Hamming e diversidade espaço temporal sobre canais sujeitos ao desvanecimento Rayleigh. In: Simpósio Brasileiro de Microondas e Optoeletrônica - SBMO. [Sivannarayana e Reddy, 1999] Sivannarayana, N. e Reddy, D. C. (1999). Biorthogonal wavelet transforms for ecg parameters estimation. Medical Engineering & Physics. [Sun et al., 2010] Sun, J., Sow, D., Hu, J., e Ebadollahi, S. (2010). A system for mining temporal physiological data streams for advanced prognostic decision support. In: IEEE Internation Caonference on Data Mining. [Tan et al., 2000] Tan, K. F., Chan, K. L., e Choi, K. (2000). Detection of the QRS complex, P wave and T wave in electrocardiogram. In Advances in Medical Signal and Information Processing, number 476, pages 41 – 47. First International Conference on IEEE Conference. [Tao e Ozsu, 2010] Tao, Y. e cally changing distributions. Ozsu, T. (2010). Technical report, Mining data streams University of Waterloo. https://cs.uwaterloo.ca/tozsu/publications/stream/cikm09 PeriodicalChange.pdf. with periodi- Disponivel em Acessado em Dezembro de 2014. [Van Der Haar, 2014] Van Der Haar, D. T. (2014). Collective Human Biological Signal-Based Identification and Authentication in Access Control Environments. Tese de Doutorado, University of Johannesburg. Disponivel em http://hdl.handle.net/10210/12392. Acessado em Julho de 2014. [Veloso e Meira-Junior, 2011] Veloso, A. e Meira-Junior, W. (2011). Demand-driven associative classification. Springerbriefs in Computer Science. [Versiani, 2008] Versiani, M. (2008). Projeto diretrizes — transtornos de ansiedade: Diagnostico e tratamento. Technical report, Associacao Medica Brasileira e Conselho Federal de Medicina. Disponivel em http://www.projetodiretrizes.org.br/projeto diretrizes/099.pdf. Acessado em Janeiro de 2014. [Walker, 1996] Walker, J. S. (1996). Fast fourier transforms. CRC Press, Boca Raton. [Witten e Frank, 2005] Witten, I. H. e Frank, E. (2005). Data Mining: Practical Machine Learning Tools and Techniques, Second Edition (Morgan Kaufmann Series in Data Management Systems). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. [Zweig e Campbell, 1993] Zweig, M. H. e Campbell, G. (1993). Receiver-operating characteristics (roc) plos: A fundamental evaluation toll in clinical medicine. Clinical Chemistry, 39(4):561 – 577. [Watanabe et al., 2013] Watanabe, H., Kawarasaki, M., Sato, A., e Yoshida, K. (2013). Wearable ecg monitoring and alerting system associated with smartphone: iheart. International Journal of E-Health and Medical Communications (IJEHMC), 4(4):1–15. [Greiner et al., 2000] Greiner, M., Pfeiffer, D., e Smith, R. D. (2000). Principles and practical application of the receive-operating characteristics analysis for diagnostics tests. Preventive Veterinary Medicine. [Zweig e Campbell, 1993] Zweig, M. H. e Campbell, G. (1993). Receiver-operating characteristics (roc) plos: A fundamental evaluation toll in clinical medicine. Clinical Chemistry, 39(4):561 – 577. [Bishop, 2006] Bishop, C. M. (2006). Pattern Recognition and Machine Learning (Information Science and Statistics). Springer-Verlag New York, Inc., Secaucus, NJ, USA. [Lo et al., 2005] Lo, B. P., Thiemjarus, S., King, R., e Yang, G.-Z. (2005). Body sensor network–a wireless sensor platform for pervasive healthcare monitoring. na. [Valenza et al., 2014] Valenza, G., Nardelli, M., Lanata, A., Gentili, C., Bertschy, G., Paradiso, R., e Scilingo, E. P. (2014). Wearable monitoring for mood recognition in bipolar disorder based on historydependent long-term heart rate variability analysis. Biomedical and Health Informatics, IEEE Journal of, 18(5):1625–1635. [Chen et al., 2004] Chen, W., Wei, D., Cohen, M., Ding, S., Tokinoya, S., e Takeda, N. (2004). Development of a scalable healthcare monitoring platform. In Computer and Information Technology, 2004. CIT’04. The Fourth International Conference on, pages 912–915. IEEE. [Nguyen et al., 2014] Nguyen, T.-B., Lou, W., Caelli, T., Venkatesh, S., e Phung, D. (2014). Individualized arrhythmia detection with ecg signals from wearable devices. In Data Science and Advanced Analytics (DSAA), 2014 International Conference on, pages 570–576. IEEE.