Detecção de Mal de Parkinson através de Gravações de Voz

Introdução

Este relatório aborda problema, desenvolvimento e resultados de análise e modelagem de um conjunto de dados (dataset), como parte das avaliações da disciplina de Inteligência Computacional da Universidade Federal do Rio de Janeiro (UFRJ). Os autores, Lucas Barcellos Oliveira e Pedro Wagner, ambos alunos do curso de Engenharia de Computação e Informação, foram orientados pelo Prof. Alexandre Evsukoff.

O Mal de Parkinson é uma condição que afeta mais de 200 mil brasileiros e apresenta tendência de crescimento no número de diagnósticos, de acordo com a OMS. A doença que afeta, na maioria dos casos, idosos provoca tremores e perda de firmeza nos braços, pernas e cordas vocais, prejudicando a mobilidade e independência dos pacientes.

No entanto, um diagnóstico nos primeiros estágios do desenvolvimento permite uma melhor preparação, através de medicamentos e atividades de fisioterapia, para os estágios posteriores, mitigando ou, no mínimo, postergando as complicações causadas pela doença. Por essa razão, um modelo de detecção representaria um grande avanço para a Medicina.

 

Apresentação do Dataset

O dataset usado para este trabalho foi obtido no Repositório de Machine Learning UCI. Este conjunto provém de um estudo para tentar encontrar a relação entre certas características da voz de uma pessoa e a possibilidade de ela ter, ou não, mal de Parkinson. Estes dados foram coletados em um estado pela Universidade de Istanbul.

O conjunto contém 1040 registros, cada um correspondendo há uma gravação de voz, adquiridos de quarenta indivíduos, vinte saudáveis, e vinte apresentando variados graus de mal de Parkinson. Para cada indivíduo foram feitas vinte e seis gravações de tipos variados (vogais, números, frases, etc.) e cada gravação foi transformada em um registro de vinte e nove características.

As características incluem um identificador do indivíduo a qual a gravação se refere, várias medições referentes à frequência, tom e estabilidade da voz, informação de classe (0 para um indivíduo saudável, 1 para um possuidor do mal de Parkinson) e um valor UPDRS. Esta última característica se refere a uma escala unificada que mede a severidade do mal de Parkinson. Isto significa que o conjunto de dados pode ser utilizado para problemas de regressão tanto quanto para de classificação.

O conjunto de dados já foi disponibilizado pelo repositório com certo nível de preparação prévia. Ele não apresenta valores incompletos ou muito incoerentes com outros valores.

 

Tabela 1: Atributos contidos no dataset

Características

Significado

Jitter (local)

Jitter(absolute)

Jitter(rap)

Jitter(ddp)

Jitter(ppq5)

Parâmetros de variação da frequência

(Adquiridos por diferentes métodos)

Número de pulsos

Número de períodos

Período Médio

Desvio padrão dos períodos

Parâmetros de pulso
Shimmer (local)

Shimmer(local, dB)

Shimmer (apq3)

Shimmer (apq5)

Shimmer (apq11)

Shimmaer (dda)

Parâmetros de variação da amplitude

(Adquiridos por diferentes métodos)

Fração de quadros sem voz

Número de quebras na voz

Grau de quebras na voz

Parâmetros de estabilidade
Tom médio

Tom mediano

Tom máximo

Tom mínimo

Desvio padrão

Parâmetros de tom
Auto-Correlação

Barulho-a-Harmonia

Harmonia-a-Barulho

Parâmetros de Harmonia
Subject ID Identificador do indivíduo
UPDRS

Informação de Classe

Labels

 

Abaixo são elencadas as equações para a obtenção de algumas variáveis. Considera-se T como o período (pitch), N como número de quadros e A como a amplitude do sinal.

Capturar

Eq. 1 – Fórmula para o cálculo do parâmetro Jitter(local)

Capturar

Eq. 2 – Fórmula para o cálculo do parâmetro Jitter(local absolute)

Capturar

Eq. 3 – Fórmula para o cálculo do parâmetro Jitter(ddp)

Capturar

Eq. 4 – Fórmula para o cálculo do parâmetro Jitter(rap)

Capturar

Eq. 5 – Fórmula para o cálculo do parâmetro Jitter(ppq5)

Capturar

Eq. 6 – Fórmula para o cálculo do parâmetro Shimmer(local)

Capturar

Eq. 7 – Fórmula para o cálculo do parâmetro Shimmer(local db)

Capturar

Eq. 8 – Fórmula para o cálculo do parâmetro Shimmer(dda)

Capturar

Eq. 9 – Fórmula para o cálculo do parâmetro Shimmer(apq3)

Capturar

Eq. 10 – Fórmula para o cálculo do parâmetro Shimmer(apq5)

Capturar

Eq. 11 – Fórmula para o cálculo do parâmetro Shimmer(apq11)

 

Apresentação da Tecnologia

A tecnologia utilizada para este trabalho foi o programa RapidMiner. Desenvolvido pela empresa de mesmo nome, RapidMiner é um software para mineração de dados que inclui funcionalidades para todos os passos do processo de machine learning.

O RapidMiner apresenta uma interface gráfica simples que inclui uma tela, representando o processo para onde “caixinhas” podem ser arrastadas representando as diversas funções. O RapidMiner possui um grande acervo de funções para todas as partes do processo, incluindo mineração de dados, visualização, pré-processamento, ajuste, análise de desempenho, validação cruzada, regressão, classificação etc.

Cada função disponível no RapidMiner possui uma série de parâmetros que podem ser ajustadas a critério do usuário. Dependendo do tipo de função, esses parâmetros podem determinar a que atributos ela se refere, qual das possivelmente várias versões da função será utilizada, atribuir fatores para os diferentes termos de uma equação, por exemplo.

RapidMiner também inclui tutoriais para iniciantes e um acervo próprio de conjuntos de dados já disponíveis para treinamento.

 

Caracterização dos Dados

A fim de melhor compreender o conjunto de dados a ser estudado e que preocupações devemos ter na fase de pré-processamento e, posteriormente, na modelagem e na interpretação dos resultados, foi realizada uma análise exploração dos dados.

Dentre as informações mais relevantes percebidas, está a distribuição balanceada entre classes. Precisamente metade dos registros pertence à classe saudável e metade à classe de pacientes da doença. Além disso, a distribuição entre homens e mulheres também era equilibrada [Fig. 1].

Capturar

Fig. 1 – Gráficos da distribuição de homens e mulheres e de registros com e sem Mal de Parkinson

 

Além disso, é importante destacar que não existiam valores ausentes no conjunto de dados, dispensando métodos para estimativa e preenchimento de tais valores ou a decisão de descartar alguma variável ou exemplo.

Matriz de Correlação - TRAIN 2

Fig. 2 – Matriz de Correlação dos atributos do dataset. Na escala, vermelho representa maior correlação e azul representa menor correlação.

Observando a matriz de correlação acima [Fig. 2], percebe-se que alguns atributos tem alta correlação, isto é, uma variação em um coincide com uma variação semelhante no outro. Esses casos de elevada correlação ocorrem principalmente entre atributos que representam uma mesma medida (por exemplo, Jitter) mas obtidas através de diferentes cálculos (por exemplo, JitterLocal, JitterLocalAbsolute, JitterDDP etc.).

Em tais cenários, é adequado escolher apenas uma das variáveis fortemente correlacionadas e descartar as demais, visto que elas não “adicionam mais informação” ao dataset e podem comprometer as etapas posteriores de modelagem.

Capturar

Fig. 3 – Histograma do atributo Jitter (local)

 

Capturar

Fig. 4 – Histograma do atributo Jitter (local absolute)

 

Capturar

Fig. 5 – Histograma do atributo Shimmer (local)

 

Capturar

Fig. 6 – Histograma do atributo Shimmer (local dB)

 

Capturar

Fig. 7 – Histograma do atributo AC

 

Capturar

Fig. 8 – Histograma do atributo Harmonic-to-Noise Ratio

 

Pré-processamento

Antes de qualquer modelo ser aplicado, certas medidas foram tomadas para tornar o dataset mais eficiente para ser trabalhado. O primeiro passo em todos os processos de classificação sempre foi o de remover o atributo UPDRS. Se isso não fosse feito, o modelo poderia atingir quase 100% de acurácia simplesmente classificando como positivo qualquer registro que tivesse UPDRS maior que 0.

Os passos seguintes consistiram em transformar o valor numérico da Informação de Classe em um valor nominal (verdadeiro ou falso), colocar esse atributo como label, e detectar e remover outliers. Como mencionado anteriormente, o dataset não possuía valores demasiadamente distantes dos outros, mas mesmo assim, foi decidido remover entre 50 e 55 outliers, o que é cerca de 5% do dataset original. Os outliers foram detectados usando a distância euclidiana entre um registro e seus dez vizinhos mais próximos. Alguns modelos demonstraram acurácia melhor com diferentes valores do intervalo 50-55.

Por fim, os registros são normalizados utilizando Z-transformação, e em seguida é feita uma análise de componentes principais (PCA) para reduzir sua dimensionalidade. Durante o PCA, qualquer componente que possuísse uma variância cumulativa superior a certo patamar é removido do conjunto. O valor padrão para este patamar é de 0.95, porém esse valor foi ajustado em alguns modelos.

Tal procedimento reduziu o número de dimensões do problema para 10 (além de uma dimensão da saída). [Fig. 9] Para a maioria dos modelos, essa etapa de pré-processamento melhorou a acurácia do modelo em cerca de 5%.

3 Matriz de Projeção.png

Fig. 9 – Matriz de projeção após pré-processamento

 

Modelos e Resultados

Dentre as diversas métricas possíveis, utilizaremos a acurácia e seu desvio-padrão para comparar os diferentes modelos testados. A acurácia é dada pela razão entre o número de  classificações corretas (verdadeiros positivos somados a verdadeiros negativos) e o número total de exemplos testados. Não será relevante, em nosso caso, a métrica de área sob a curva (AUC), visto que a distribuição de exemplos entre as classes é simétrica.

Para cada treinamento dos modelos, foi realizada validação cruzada. Inicialmente, a validação foi feita em dez ciclos utilizando k-fold, em que são separados dez subconjuntos de dados e, a cada iteração, um subconjunto é utilizado para teste e os outros nove para treinamento do modelo.

Porém, de modo a ter medições de performance de modo semelhante às dos autores do conjunto de dados, optou-se por utilizar a técnica leave-one-out (LOO). Nela, a validação cruzada ocorre em M ciclos, sendo M o número de exemplos no dataset. A cada ciclo, o conjunto de treinamento é composto por M-1 exemplos e o conjunto de teste por apenas um exemplo. Daí deriva-se o nome: “deixar um de fora”. No ciclo seguinte, um exemplo diferente é separado para o conjunto de testes até que cada um dos exemplos tem sido o conjunto de testes alguma vez. As estatísticas finais são dadas pela média aritmética das estatísticas obtidas em cada ciclo.

 

k-NN

No modelo k-NN (k Nearest Neighbors, ou k Vizinhos Mais Próximos), um exemplo no conjunto de testes é comparado com os exemplos no conjunto de treinamento. Para cada par, é calculada a semelhança ou distância entre os dois exemplos (em nosso problema, optamos pelo uso da distância euclidiana).

Os k exemplos do conjunto de treinamento mais “próximos”, ou seja, com menor valor absoluto de distância ou maior de semelhança, são utilizados para prever a classe do exemplo de teste. É feita, geralmente, uma votação: a classe mais frequente nos k vizinhos mais próximos será dada como a classe prevista para o exemplo testado. Também é possível atribuir pesos maiores aos votos dos vizinhos mais próximos e pesos menores aos menos próximos, dentre os k vizinhos computados [Fig. 10] .

knn

Fig. 10 – Exemplo em que, para k=3, o algoritmo k-NN atribuirá o exemplo testado à classe 2 e, para k=5, atribuirá à classe 1. Isso demonstra a iportância de realizar experimentações para determinar qual é o valor de k mais adequado para seu problema.

 

Em nossas experimentações, optamos, a princípio, pelo valor k=4. Porém, como no sistema de votação tal valor permite que ocorram empates, decidiu-se por escolher um número de vizinhos ímpar. Assim, foi escolhido o valor k=3 [Fig. 11], ou seja, são utilizados os três exemplos mais próximos do exemplo de teste em sua previsão.

Capturar

Fig. 11 – Matriz de confusão para o modelo k-NN

 

Bayesiano Naïf

Um classificador bayesiano baseia-se nos fundamentos de Estatística propostos por Thomas Bayes, ainda no século XVIII. Em resumo, o modelo busca computar a probabilidade de um exemplo pertencer a uma determinada classe, com base nas distribuições de probabilidades relacionadas às variáveis de entrada. A classe dada como saída da execução do classificador é aquela que apresenta a maior probabilidade de conter o exemplo avaliado.

Capturar

Eq. 12 – Teorema de Bayes, que afirma que a probabilidade a posteriori de pertencer a classe Ci dado um atributo x é proporcional à probabilidade a priori de pertencer a Ci  e à probabilidade condicional de ter valor x dado que pertence à classe Ci e inversamente proporcional à probabilidade a priori de ter valor x dada a distribuição de probabilidades das variáveis.

 

A ideia geral dessa família de modelos é basear-se nas distribuições de probabilidades para inferir a probabilidade à posteriori de pertencer a uma classe. A atuação é semelhante à de tentar se aproveitar de avaliações condicionais sobre um exemplo para melhorar as probabilidades inferidas, que originalmente são de 50% para cada classe.

Classificadores bayesianos podem envolver cálculos muito complexos e computacionalmente custosos. A fim de simplificar os algoritmos envolvidos,  tempo de execução e uso de recursos da máquina, foi utilizado o modelo conhecido como “Bayesiano Naïf”, ou Bayesiano Ingênuo, ou ainda Bayesiano Simples. Nele, é assumida a independência estatística das variáveis de entrada do problema. Ou seja, um atributo de entrada não influencia nem é influenciado por qualquer outro. Em geral, isso não é verificado na prática, porém traz resultados suficientemente bons. Em especial, é essencial lembrar que, no pré-processamento, quando um grupo de atributos está altamente correlacionado, deve-se deixar apenas um e remover todos os demais.

Capturar

Fig. 12 – Matriz de confusão para o modelo de Bayesiano Naïf

 

Árvore de Decisão

Os modelos de árvores de decisão estabelecem uma sequência de avaliações, iniciando-se pelo nó-raiz, que, após completadas, levam a um – e apenas um – nó-folha da árvore que possui a informação de que classe foi estimada.

Por exemplo, observando a árvore gerada para este dataset [Fig. 13], para classificar um exemplo do conjunto de teste, primeiramente é verificado se o valor da variável pc_4 está acima ou abaixo de um patamar (0.434). Dependendo de qual condição for satisfeita, o próximo passo pode ser avaliar se o valor de pc_2 está acima ou abaixo de 0.903 ou se pc_5 está acima ou abaixo de -3.206. Percorrendo o caminho adequado para aquele exemplo, chega-se, no último nível da árvore, à previsão de qual classe o registro analisado pertence, cuja acurácia média foi de razoáveis 66,05% [Fig. 14].

De modo a tornar uma árvore de decisão o mais eficiente possível, é desejável minimizar o número de avaliações necessárias para chegar aos nós-folhas, isto é, deseja-se construir uma árvore com a menor altura possível. Assim, no topo da árvore, devem estar decisões que mais ajudem na classificação, separando ao máximo as classes. É dito que esse critério de construção de árvores de decisão visa maximizar o chamado “ganho de informação” em cada decisão.

Capturar

Fig. 13 – Árvore de decisão gerada. (As variáveis pc são componentes principais obtidas no pré-processamento.) Classe vermelha refere-se à classe de portadores e a azul refere-se a de saudáveis.

 

Capturar

Fig. 14 – Matriz de confusão para o modelo de Árvore de Decisão

 

Extra – Ensembles de Árvores

A fim de conceber modelos capazes de resolver problemas mais complexos, foram concebidos métodos que combinam saídas de vários modelos simples de modo a construir um modelo mais robusto e acurado. No contexto deste trabalho, foram realizadas experimentações com modelos ensemble de árvores. Assim, em vez de apenas uma árvore fornecer a saída do problema, um conjunto de árvores (chamado de floresta) é treinado e executado. Seus resultados combinados (em geral, por meio de votação) dão a saída do ensemble.

Vale salientar, todavia, que modelos ensemble, por serem compostos por várias instâncias de modelos mais simples, não devem ser comparados aos demais modelos individuais. A inclusão dessa categoria de modelos nesta produção se dá apenas a guisa de curiosidade.

Capturar.JPG

Fig. 15 – Floresta é um conjunto de árvores de decisão, cujas saídas são combinadas.           Extraído de arogozhnikov.github.io em 20/11/2017.

 

Gradient-Boosted Trees

“Gradient-Boosted Trees” é o termo mais utilizado para se referir, em tradução livre para o português, a “Árvores Melhoradas por Gradiente”. Neste método, uma série de árvores é gerada. Cada nova árvore adicionada é construída de forma a minimizar o erro entre previsão e observação dado pelas árvores anteriores (procedimento que pode ser realizado pelo método do gradiente, dando origem ao nome).

Uma das vantagens deste tipo de modelo é que podemos conceber que cada nova árvore adiciona é construída de uma maneira que se especializa nos “pontos fracos” da(s) árvore(s) anterior(es). Ou seja, decisões que deixam a desejar em árvores anteriores são fontes de erro que serão contabilizadas na função objetivo a ser minimizada pelo método do gradiente. Assim, a próxima árvore a ser construída agirá para contrapor as carências das árvores anteriores.

Com isso, podemos compreender por que as Gradient-Boosted Trees apresentam excelentes resultados, em termos de acurácia média, com 69,52%, dentro de um problema de difícil separação. [Fig. 16].

Capturar

Fig. 16 – Matriz de confusão para o modelo de Gradient-Boosted Trees

 

Random Forest

Uma das eventuais desvantagens de se utilizar árvores de decisão surge quando árvores muito grandes são geradas. Geralmente, uma árvore com grande altura que exige avaliar várias decisões antes de alcançar um nó folha apresenta maior risco de overfitting (superajustar-se ao conjunto de treinamento), gerando um modelo de variância elevada.

Considerando isso, o modelo de Floresta Randômica (ou Random Forest) busca criar várias árvores pequenas, com poucos nós e alturas baixas. Para isso, o dataset é dividido em amostras e cada árvore componente do ensemble é treinada sobre uma dessas amostras geradas randomicamente. O conjunto de todas as árvores terá sido treinado para todo o conjunto de dados, mas cada árvore apenas em alguns exemplos.

Além disso, cada árvore é construída sobre um subconjunto das variáveis do problema. Cada árvore sorteia randomicamente uma porção de variáveis relativamente pequena quando comparada a dimensão total do conjunto de dados. Mais uma vez, não se espera que cada árvore seja capaz de resolver o problema de classificação, mas sim a floresta como um todo.

É dessa natureza não determinística e estocástica que é oriunda a alcunha de Floresta Randômica e seu poder de resolução de certos problemas complexos [Fig. 17].

Capturar

Fig. 17 – Matriz de confusão para o modelo de Random Forest

 

Perceptron de Múltiplas Camadas (MLP)

Redes neurais são modelos computacionais de Machine Learning que são inspirados por e pretendem simular o funcionamento e complexidade do cérebro humano, como neurônios artificiais.

Redes neurais são compostas por um número variável de camadas contendo neurônios que são ligados aos neurônios das camadas anterior e seguinte. A primeira e a última camadas contém as variáveis de entrada e de saída respectivamente. As camadas intermediárias, ditas ocultas fazem o processamento das variáveis, com cada neurônio fazendo um único processamento baseado no peso das conexões, combinando-as e depois aplicando uma função de ativação sobre o resultado. A saída de uma camada é utilizada como entrada da camada seguinte,

Como o problema a ser estudado possui somente duas possíveis classes decidiu-se utilizar o modelo Perceptron, que é um tipo específico de rede neural usado para classificações binárias. A rede neural obtida pelo RapidMiner está ilustrado a seguir [Fig. 18]. Foi aplicada a função de ativação sigmoide em todas as camadas.

Capturar

Fig. 18 – Representação da rede neural gerada. (Pesos omitidos em prol da legibilidade.)

 

Importante para o funcionamento e sucesso das redes neurais é a definição da função de ativação, que definirá a saída de cada neurônio. No caso, foi utilizada uma função sigmoide, que transforma as saídas do neurônio em um valor binário, útil para um problema de classificação. O Perceptron utilizado possui uma camada oculta de dezoito neurônios, e dois neurônios de saída, representando as duas classes. Foi alcançada acurácia média de 64,68% com margem 3,66% para mais ou para menos [Fig. 19].

Capturar

Fig. 19 – Matriz de confusão para o modelo de MLP

 

Aprendizagem Profunda (Deep Learning)

O modelo de deep learning no RapidMiner é, essencialmente, uma rede neural muito grande. Com o aumento no número de camadas e de neurônios, a rede neural fica mais complexa, porém mais eficaz, capaz de solucionar problemas mais difíceis. A rede neural utilizada possui duas camadas ocultas de cinquenta neurônios do tipo unidade linear exponencial (exponential linear unit, ou ELU), que utiliza a função abaixo como função de ativação [Eq. 12] [Fig. 20]. Ela guarda semelhanças com a função linear retificada, porém foi a que apresentou melhor desempenho em nossos testes.

Capturar

Eq. 12 – Forma da função de ativação utilizada (o parâmetro a é um número real maior ou igual a 0)

Capturar

Fig. 20 – Gráfico da função de ativação utilizada

 

Na última camada, é utilizada a função de ativação softmax, muito indicada para problemas de classificação ao consultar as bibliografias relacionadas ao tema. Assim, obtemos a topologia de nossa rede [Fig. 20]

Capturar

Fig. 20 – Descrição da topologia da rede deep learning

 

É válido notar que, neste modelo, foi observado um aumento na acurácia quando a etapa de pré-processamento foi retirada. A razão para isso é que o algoritmo de deep learning usado pelo RapidMiner, já implementa suas etapas próprias de normalização e redimensionamento [Fig. 21].

Capturar

Fig. 21 – Matriz de confusão para o modelo de Deep Learning

 

Máquinas de Vetores de Suporte

Em Máquinas de Vetor de Suporte (SVM), as variáveis de entrada são mapeadas para o chamado espaço de características com número maior de dimensões, aplicando-se uma função. O problema que era de difícil separação no espaço original passa a ser separável por um plano no espaço de características. Após encontrar o hiperplano que maximiza a separação entre os exemplos mais próximos (vetores de suporte), o hiperplano é trazido de volta ao espaço original, ganhando curvas muito mais definidas e complexas.

svm

Fig. 22 – Separação por plano com margem máxima no espaço de características. Em verde, os pontos de mais difícil classificação e utilizados como vetores de suporte.

 

Pelo classificador ser definido sobre os pontos de mais difícil classificação (de modo que tenham valor -1 e 1), trata-se de uma das técnicas mais adequadas para problemas de difícil separação. Para outros exemplos pertencentes à classe negativa, o classificador tem valor menor que -1. Analogamente, para outros exemplos da classe positivo, seu valor é maior que 1. O ajuste pode ser feito através da solução de um problema de otimização quadrática, por exemplo.

A equação do hiperplano é da forma:

Capturar

Eq. 13 – Equação do hiperplano separador das classes. O vetor w é normal ao hiperplano.

 

Sendo a margem, que desejamos maximizar, dada por:

Capturar

Eq. 14 – Expressão da margem proporcionada pelo hiperplano descrito ela Eq. 13, sendo ||w|| a norma do vetor normal w ao plano.

 

Com isso o problema de otimização associado consiste tanto em maximizar a margem m ou em minimizar a norma da normal, sujeito às restrições de classificar corretamente todos os exemplos.

Funções de Base Radial (RBF) foram utilizadas para mapear exemplos no espaço de características em detrimento da função linear de núcleo (kernel dot) recomendada pelo RapidMiner, devido à natureza não linear do problema.

Capturar

Fig. 23 – Matriz de confusão para o modelo de SVM

 

Devido ao fato de, no problema de identificação de Mal de Parkinson, o custo de se fazer uma previsão de falso negativo é muito maior que fazer uma previsão falso positivo, decidiu-se usar a opção do modelo SVM no Rapid Miner chamada “quadratic loss neg”. Esta opção aumenta o custo de uma previsão negativa incorreta (tornando-a cerca de 4,5 vezes maior que o custo de uma previsão positiva incorreta). O resultado foi um aumento no número de classificações positivas, e um aumento na acurácia do modelo [Fig. 23].

Capturar

Fig. 24 – Matriz de confusão para o modelo de SVM modificado

 

Conclusão

Dentre os modelos convencionais aqui expostos [Tabela 2], os que apresentaram melhor desempenho em nosso conjunto de dados foram os de aprendizagem profunda (Deep Learning) e de Máquinas de Vetor de Suporte (SVM). A acurácia média apresentada pelo modelo SVM, aconselhável para problemas de difícil separação, foi um pouco superior à apresentada pelo Deep Learning. No entanto, os desvios entre ciclos da validação cruzada ensejam considerar que ambos estão tecnicamente empatados.

Tabela 2 – Modelos de classificação simples

Capturar

 

Considerando modelos ensemble, tendo em vista apenas os modelos apresentados aqui, o de Gradient-Boosted Trees aparenta ter obtido a melhor performance. No entanto, muitos outros modelos desse tipo foram deixados de fora deste trabalho e podem apresentar desempenho superior.

Tabela 3 – Modelos de classificação ensamble

Capturar

 

Apesar de nenhum dos métodos testados nesta atividade ter superado o máximo de acurácia obtida pelos pesquisadores que coletaram os dados (cerca de 75%, utilizando ensembles), os resultados obtidos mostram que é possível, sim, utilizar características da voz para estimar a existência de Mal de Parkinson em seres humanos. Iniciativas como esta podem ser utilizadas para auxiliar um médico no diagnóstico da doença, por exemplo.

 

Referências Bibliográficas

Erdogdu Sakar, B.; Isenkul, M.; Sakar, C.O.; Sertbas, A.; Gurgen, F.; Delil, S.; Apaydin, H.; Kursun, O.; “Collection and Analysis of a Parkinson Speech Dataset with Multiple Types of Sound Recordings”, IEEE Journal of Biomedical and Health Informatics, vol. 17(4), pp. 828-834, 2013.

Evsukoff, A. G.; “Ensinando Máquinas”, [S.n.], [S.l.], [S.a.].

Alex Rogozhnikov “Gradient Boosting explained [demonstration] ”. Disponível em: http://arogozhnikov.github.io/2016/06/24/gradient_boosting_explained.html. Acessado em: 20/11/2017.

Leo Breiman, Adele Cutler. “Random Forests”. Disponível em: https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm. Acessado em: 20/11/2017.

Sakar, B. E. et al.; “Collection and Analysis of a Parkinson Speech Dataset With Multiple Types of Sound Recordings”. IEEE Journal of Biomedical and Health Informatics, vol. 17, n. 4. 2013.

Yumoto, E.; Gould, W. J.; Baer, T.; “Harmonics-to-noise ratio as an index of the degree of hoarseness”. Journal of the Acoustical Society of America. 1982.

Departamento de Ciências Fonéticas da Universidade de Amsterdã. Manual do Sistema Praat. Disponível em http://www.fon.hum.uva.nl/praat/manual/Voice.html. Acessado em 04/12/2017.

Anúncios

Um comentário em “Detecção de Mal de Parkinson através de Gravações de Voz

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s