Sistema de mineração de dados para descoberta de

Propaganda
IV Semana de Ciência e Tecnologia IFMG – Campus Bambuí
IV Jornada Científica
06 a 09 Dezembro de 2011
Sistema de mineração de dados para descoberta de padrões em dados
médicos
Matheus Felipe MIRANDA¹; Marcos Roberto RIBEIRO²
¹ Estudante do curso de Tecnologia em Análise e Desenvolvimento de Sistemas e bolsista
do Programa Institucional de Bolsas de Iniciação Científica do IFMG campus Bambuí;
² Professor do IFMG campus Bambuí;
RESUMO
Atualmente, há uma grande quantidade de dados disponíveis. Entretanto, estes devem ser
analisados, de forma a transformá-los em conhecimento. Para isso, dispomos da mineração
de dados. A mineração de dados é muito importante na medicina, auxiliando o médico a
analisar dados provenientes de grandes bancos de dados. Dessa forma, este profissional
poderá visualizar informações não evidentes através de técnicas convencionais de bancos de
dados ou análise manual. O presente projeto visa utilizar técnicas de mineração de dados
para obtenção de regras e padrões em um banco de dados médicos. Será desenvolvida uma
aplicação para auxiliar a tarefa de mineração.
Palavras-chaves: Mineração de dados, dados médicos, bancos de dados.
INTRODUÇÃO
Os diversos sistemas de informações atuais trabalham com um volume de dados
cada vez maior. Entretanto, tais dados devem ser transformados em conhecimento e
informações úteis. (MURASSE, 2010). Dentre estes sistemas, destacam-se os da área
médica. Devido à grande quantidade de dispositivos para coleta e armazenamento de dados,
o volume de dados coletados é cada vez maior, surgindo a necessidade de criar instrumentos
para análise dos mesmos. (COLAZZOS, 2002). Entretanto, o médico não é o profissional
especialista em descobrir as informações contidas nos bancos de dados. Dessa forma,
desenvolver uma aplicação que auxilie o médico nessa tarefa pode ajudá-lo a obter
informações úteis não evidentes. (JUNGLOS, 2003).
Para que tais informações possam ser descobertas, utilizamos neste projeto a
mineração de dados. Podemos enxergar a mineração de dados como um instrumento para
visualizar informações úteis não visíveis através de técnicas convencionais de busca em
bancos de dados ou técnicas manuais. Dessa forma, a mineração de dados permite analisar
uma grande quantidade de dados para chegar a novas informações úteis.
Um formato de entrada amplamente utilizado na mineração de dados é um banco de
transações. Transações são dados correlatos que estão em uma mesma tupla no banco de
dados. Em uma transação, temos itemsets, conjuntos de itens dentro de uma transação. Por
exemplo, um itemset em um banco de dados médicos pode ser os dados do prontuário do
IV Semana de Ciência e Tecnologia IFMG – Campus Bambuí
IV Jornada Científica
06 a 09 Dezembro de 2011
paciente e uma transação é o próprio prontuário de um paciente. Um resultado que poderia
ser obtido pela mineração de dados seria a descoberta de uma combinação de medicamentos
que levam a uma enfermidade.
O objetivo deste projeto é realizar um processo de mineração de dados e
desenvolver uma aplicação que auxilie na tarefa de minerar regras de associação em um
banco de dados médicos.
MATERIAIS E MÉTODOS
Para descobrir as regras de associação de um banco de transações, utilizamos o
algoritmo apriori. Este algoritmo obtém regras de associação do tipo A → B, onde A e B
são itemsets. Por exemplo, “medicamento A, medicamento B → doença C”. Neste exemplo,
existem transações em que apareceram o medicamento A e o medicamento B, o paciente
teve uma doença C.
O algoritmo apriori emprega os conceitos de suporte e confiança. O suporte de um
itemset pode ser entendido como a porcentagem de transações em que um itemset aparece
no banco de dados. Sua fórmula é SUP(X) = NTRANS(X)/NTRANS(BD), onde SUP(X) é
o suporte do itemset X, NTRANS(X) é o número de transações em que o itemset X aparece
e NTRANS(BD) é o número de transações total do banco de dados. A confiança é útil para
verificar se a regra é significativa. (SILBERSCHATZ, 1999). Sua fórmula é CONF(A → B)
= SUP(AB)/SUP(B), onde CONF(A → B) é a confiança da regra A → B, SUP(AB) é o
suporte do itemset AB e SUP(B) é o suporte do itemset B.
O algoritmo apriori utiliza um suporte mínimo para obter apenas os itemsets
frequentes, ou seja, aqueles que possuem o suporte maior ou igual ao suporte mínimo.
Analogamente, existe a confiança mínima para obter as regras de associação mais
relevantes. (BORGELT, 2002).
A execução do algoritmo apriori consiste de três fases: geração, poda e varredura. A
geração consiste em gerar itemsets maiores a partir de itemsets menores frequentes. A poda
é a eliminação de itemsets gerados que não possuem probabilidade de serem frequentes. Por
fim, a varredura percorre todas as transações do banco de dados, verificando se os itemsets
que passaram da poda são frequentes.
Na obtenção os itemsets de tamanho 1, o algoritmo realiza apenas uma varredura no
banco de dados. No caso dos itemsets de tamanho 2, o algoritmo executa apenas a geração e
varredura. Para os itemsets de tamanho 3 ou maiores acontecem todas as três etapas.
Considere um exemplo de um banco de dados mostrado na Figura 1(a), onde cada
letra representa uma doença. Considere também um suporte mínimo de 50% e confiança
mínima de 80%.
Inicialmente, O algoritmo apriori varre o banco de dados, verificando os itemsets de
tamanho 1 frequentes. Em nosso exemplo, os itemsets A,B,C,D,E possuem os respectivos
IV Semana de Ciência e Tecnologia IFMG – Campus Bambuí
IV Jornada Científica
06 a 09 Dezembro de 2011
Paciente
Doenças
Itemset
Podado
Regra
Confiança
Regra
Confiança
1
A, B, C
ABC
Não
A→B
100%
A → B,C
100%
2
C, D, E
ACD
Sim (AD)
B →A
100%
B → A,C
100%
3
B, A, C
BCD
Sim (BD)
A→C
100%
A,B → C
100%
4
C, A, B, D
B→C
100%
A,C → B
100%
100%
B,C → A
(c) Regras de associação
100%
D→C
(a) Banco de Dados
b) Itemsets de tamanho 3
Figura 1: Exemplo de mineração em dados médicos
suportes 75%, 75%, 100%, 50%, 25%. Portanto, apenas os itemsets A, B, C e D são
frequentes.
Após esta etapa, o algoritmo gera itemsets de tamanho 2 a partir dos itemsets de
tamanho 1 frequentes. Em seguida, é verificado se os itemsets gerados são frequentes. Em
nosso exemplo, os itemsets de tamanho 2 gerados com seus respectivos suportes são AB
(75%), AC (75%), AD (25%), BC (75%), BD (25%) e CD (50%). Portanto apenas AB, AC,
BC e CD são frequentes.
Para gerar itemsets de tamanho 3, itemsets de tamanho 2 frequentes são combinados.
A seguir, os itemsets de tamanho 3 que contenham itemsets de tamanho 2 não frequentes são
podados. Em nosso exemplo, o itemset ABC não foi podado, pois os itemsets AB, BC e AC
são frequentes. Entretanto, ACD foi podado, pois o itemset AD não é frequente. O resultado
da poda nos itemsets de tamanho 3 pode ser visto na Figura 1(b). Após a poda o suporte dos
itemsets não podados é verificado. A partir daí, o algoritmo prossegue realizando estes
passos iterativamente para itemsets de tamanho maior, até que seja obtido um conjunto
vazio.
As regras de associação são geradas a partir de itemsets de tamanho 2 ou maiores.
Um itemset pode gerar mais de uma regra, dependendo da escolha do antecedente e
consequente. Por exemplo, o itemset AB pode gerar as regras A → B ou B → A. Para todas
as regras, o algoritmo verifica se a confiança da regra atende a confiança mínima. Por
exemplo, a regra C → D possui confiança de 50%, que é inferior à confiança mínima de
80%, portanto esta regra é eliminada. A Figura 1(b) exibe todas as regras que atendem a
confiança mínima.
Os dados utilizados no projeto seriam inicialmente obtidos em centros de saúde
próximos ao IFMG – Campus Bambuí, entretanto, devido à falta de informatização, não foi
possível obtê-los. Uma pesquisa foi realizada sobre outros bancos de dados médicos
disponíveis e encontrado o banco de dados do Sistema de Informações Sobre Mortalidade
(SIM) do Datasus1.
Para minerar os dados do SIM foi utilizada uma implementação do apriori com
algumas otimizações desenvolvida por Borgelt (2002). Esta implementação possibilitará,
posteriormente, manipular os dados a partir de uma aplicação que será desenvolvida na
1 http://www.datasus.gov.br
IV Semana de Ciência e Tecnologia IFMG – Campus Bambuí
IV Jornada Científica
06 a 09 Dezembro de 2011
próxima etapa deste projeto.
Esta implementação utiliza arquivos de texto simples, entretanto, no SIM, os dados
estão no formato dBase File (DBF) e compactados no formato DBC. Para que os dados
pudessem ser manipulados pela implementação, foi utilizado um programa gratuito
disponível na página do SIM, o programa TabWin 1, utilizado para tabular dados de saúde. O
TabWin foi usado para converter entre os formatos DBF e DBC e para gerar instruções SQL
(Structured Query Language).
As instruções SQL obtidas no passo anterior foram inseridas no sistema de
gerenciamento de banco de dados (SGBD) PostgreSQL, para criação de um banco de dados
a partir dessas instruções SQL. (SOUZA, 2009). A aplicação que será desenvolvida na
próxima etapa do projeto irá manipular os dados que foram inseridos no PostgreSQL.
Com o auxílio das ferramentas descritas anteriormente, foram obedecidos os
seguintes passos:
1. Cópia dos dados disponíveis no SIM para um computador local;
2. Utilização do TabWin para conversão dos arquivos e geração de instruções SQL;
3. Inserção no SGBD PostgreSQL;
4. Consulta ao banco de dados para geração de arquivo de texto simples;
5. Obtenção das regras e padrões por meio da implementação do algoritmo apriori.
Em seguida, será desenvolvida uma aplicação para automatização dos passos
descritos.
RESULTADOS E DISCUSSÃO
Por meio dos métodos descritos na seção anterior foram obtidas mais de 1.000
regras de associação como resultados preliminares. Posteriormente, será necessária a análise
de um profissional da medicina para verificar as regras obtidas. Dentre estas regras,
destacamos algumas de tamanho significativo na Tabela 1.
A próxima etapa do projeto será desenvolver uma aplicação, que irá realizar uma
consulta ao banco de dados, para extração de informações. Será utilizada a implementação
do algoritmo apriori para gerar as regras e padrões a partir dos dados obtidos pela consulta.
Esta aplicação irá realizar as tarefas descritas na seção anterior, auxiliando o profissional da
medicina.
CONCLUSÃO
Há uma grande quantidade de dados disponíveis atualmente. Entretanto, estes
necessitam de um instrumento para uma análise mais profunda, como a mineração de dados.
A mineração de dados auxilia o profissional da medicina na interpretação dos dados
provenientes destes bancos de dados.
O projeto tinha o objetivo inicial de obter dados de saúde de centros próximos ao
IV Semana de Ciência e Tecnologia IFMG – Campus Bambuí
IV Jornada Científica
06 a 09 Dezembro de 2011
Regra
Suporte
Confiança
Local ocorrência = hospital → assistência médica = sim exame = sim necropsia = não ano
12,7
87,3
Necropsia = Não → assistência médica = sim exame = sim cirurgia = não ano = 2001
11,6
95,6
Ano = 2001 → assistência médica = sim exame = sim necropsia = não raça = branca
11,3
80,2
Exame = sim → assistência médica = sim necropsia = não raça = branca ano = 2001
11,2
80,8
Cirurgia = não → exame = sim necropsia = não sexo = masculino ano = 2001
11,2
80,8
Ano = 2001 → exame = sim necropsia = não cirurgia = não sexo = masculino
11,2
80,2
= 2001
Tabela 1: Regras e padrões obtidos do banco de dados médicos
IFMG – Campus Bambuí. Entretanto, devido à falta de informatização, não foi possível
obtê-los. Então, foi utilizado o banco de dados do SIM.
Em uma mineração de dados preliminar foram obtidos mais de 1.000 regras de
associação. Podemos notar que para analisar melhor os parâmetros e resultados da
mineração é preciso o acompanhamento de um profissional da área.
Obter os dados pela página do Datasus, preparar os dados para que possam ser
utilizados na implementação do algoritmo apriori, e por fim realizar a mineração é uma
tarefa extremamente complexa. Portanto, a etapa atual do projeto consiste em desenvolver
uma aplicação que auxilie o profissional da medicina nessas tarefas.
AGRADECIMENTOS
Os autores agradecem à FAPEMIG pela concessão de bolsa para execução do projeto.
REFERÊNCIAS BIBLIOGRÁFICAS
BORGELT, Christian, KRUSE, Rudolf. Introduction of association rules: apriori
implementation. 15th Conference on Computational Statitics. Berlim, Alemanha. 2002.
COLLAZOS, K.S., BARRETO, J.M., ROISENBERG, M. Dificuldades na aplicação de
KDD em medicina. Anais do II Congresso Brasileiro de Computação. Itajaí, Santa Catarina.
2002.
JUNGLOS, Aldemir. Aplicação de Data Mining em banco de dados do serviço de
transplante de medula óssea. 2003.118 p. Dissertação (Mestrado em Métodos Numéricos
em Engenharia) – Programa de Pós-Graduação. Setor de Tecnologia. Universidade Federal
do Paraná, Curitiba, 2003.
MURASSE, Carlos M., TSUNODA, Denise F. Descoberta de conhecimento a partir de
uma base de indicadores de desenvolvimento social utilizando WEKA. Anais do XXX
Congresso da SBC. Belo Horizonte, Minas Gerais. 2010.
SOUZA, Evandro P. de. Instalação e configuração do PostgreSQL no linux via códigofonte. Campinas: Embrapa Informática Agropecuária, 2009. 19 p.
SILBERCHATZ, Abraham., KORTH, Henry., SUDARSHAN, S. Sistema de banco de
dados. São Paulo: Pearson. 3. ed. 1999.
Download