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.