Cledjalma Ferreira Neves DESCOBERTAS DE PADRÕES USANDO TÉCNICAS DE EXTRAÇÃO DE CONHECIMENTO Palmas 2004 Cledjalma Ferreira Neves DESCOBERTAS DE PADRÕES USANDO TÉCNICAS DE EXTRAÇÃO DE CONHECIMENTO “Trabalho apresentado ao curso de Sistemas de informação do Centro Universitário Luterano de Palmas como requisito Parcial da disciplina de Práticas de Estágio orientado pela Professora Thereza Padilha”. Palmas 2004 “O valor das coisas não está no tempo que elas duram, mas na intensidade com que acontecem. Por isso existem momentos inesquecíveis, coisas inexplicáveis e pessoas incomparáveis”. (Fernando Pessoa) AGRADECIMENTO Agradeço primeiramente a Deus. Aos meus pais, Djalma Barros Neves (em memória) e Cleonice Ferreira Neves, que me ensinaram os valores éticos e morais desde os primeiros anos de vida. A Danielle Lago, que durante os experimentos e elaboração deste trabalho, sempre esteve ao meu lado dando apoio e carinho. A professora Thereza Padilha e os demais professores, que ao longo do curso me revelaram seus conhecimentos. As demais pessoas com que tive discutindo ao longo da confecção deste material, sejam colegas de faculdade, colegas de trabalho ou amigos. Serei eternamente grato aos amigos verdadeiros pela compreensão de minhas ausências, pelo constante incentivo, pelo companheirismo e pela generosa amizade. SÚMARIO RESUMO ......................................................................................................................................................... 6 1. INTRODUÇÃO ........................................................................................................................................... 7 2. REVISAO DE LITERATURA................................................................................................................... 9 2.1. DIABETES MELLITUS .............................................................................................................................. 9 2.1.1. Conceito ......................................................................................................................................... 9 2.1.2. Funcionamento do organismo ....................................................................................................... 9 2.1.3. Fatores que precipitam a Diabetes ...............................................................................................10 2.1.4. Tipos de Diabetes Mellitus............................................................................................................10 2.1.4.1. Diabetes Mellitus tipo um ..................................................................................................................... 11 2.1.4.2. Diabetes Mellitus tipo dois .................................................................................................................... 11 2.2. EXTRAÇÃO DE CONHECIMENTO .............................................................................................................11 2.2.1. Métodos.........................................................................................................................................12 2.2.2. Tarefas de aprendizado.................................................................................................................13 2.2.3. Aplicações .....................................................................................................................................14 2.3. SOFTWARE WEKA ................................................................................................................................14 2.3.1. Arquivos arff .................................................................................................................................15 2.3.2. Ambiente Explorer ........................................................................................................................17 2.3.2.1. Pré-processo .......................................................................................................................................... 17 2.3.2.2. Classifly................................................................................................................................................. 18 2.3.2.4. Algoritmo ZEROR ................................................................................................................................ 19 2.3.2.5. Algoritmo ONER .................................................................................................................................. 19 2.3.2.6. Algoritmo J48........................................................................................................................................ 19 3. MATERIAL E METODOLOGIA ............................................................................................................20 3.1. LOCAL E PERÍODO ..................................................................................................................................20 3.2. MATERIAL .............................................................................................................................................20 3.2.1. Conjunto de dados ........................................................................................................................20 3.2.2. Recursos humanos ........................................................................................................................23 3.2.3. Recursos de hardware...................................................................................................................24 3.2.4. Recursos de software ....................................................................................................................24 3.2.5. Fontes bibliográficas ....................................................................................................................24 3.3. METODOLOGIA ......................................................................................................................................25 4. RESULTADOS E DISCUSSÕES..............................................................................................................26 4.1. HIPÓTESES .............................................................................................................................................26 4.1. APLICAÇÃO DO ALGORITMO ZEROR ....................................................................................................26 4.3. APLICAÇÃO DO ALGORITMO ONER ......................................................................................................27 4.4. APLICAÇÃO DO ALGORITMO J48 ...........................................................................................................29 4.5. DISCUSSÕES...........................................................................................................................................30 5. CONCLUSAO ............................................................................................................................................33 6. TRABALHOS FUTUROS.........................................................................................................................35 7. REFERÊNCIAS BIBLIOGRÁFICAS......................................................................................................36 RESUMO Este estudo se propõe, utilizando conceitos de extração de conhecimento, a identificar o melhor algoritmo para um conjunto de dados relativos aos pacientes de Diabetes Mellitus tipo dois da região norte do município de Palmas do estado de Tocantins. A identificação do melhor algoritmo para descoberta de padrões auxiliará no processo de triagem dos possíveis pacientes, uma vez que quanto mais cedo for dado o diagnóstico do quadro diabético melhor para o paciente, pois nem sempre os pacientes sabem que estão com este problema. Palavra-chave: Extração de conhecimento. 1. INTRODUÇÃO O aumento da mortalidade cardiovascular dos pacientes diabéticos está relacionado ao estado diabético e a agregação de vários fatores de riscos cardiovasculares como obesidade, hipertensão arterial entre outros. Quanto mais cedo for dado o diagnóstico do quadro diabético, maiores são as chances de sobrevida do paciente, uma vez que pode se controlar a hiperglicemia, pois é fato conhecido que este adequado controle pode prevenir, retardar ou atenuar as manifestações crônicas do quadro diabético [2]. Neste contexto, fica mais acentuada a importância do diabético assumir com responsabilidade, os cuidados com a saúde. Para cumprir tal objetivo é necessário que o indivíduo esteja bem informado e convenientemente motivado. A Diabetes Mellitus é um problema de saúde pública, já que freqüentemente está associado a complicações que comprometem a produtividade, qualidade de vida e sobrevida dos pacientes que são diagnosticados. A informação teve uma intenção ou um objetivo a ser alcançado e está sempre agregada ao conhecimento, entretanto isso não quer dizer que ter informação necessariamente tenha o conhecimento. Dentro deste contexto, pode-se analisar a informação como um objeto, ao qual são associadas características próprias, dependendo do âmbito disciplinar da aplicação, e com reações também particulares, dependendo do objetivo com que é empregada e do conhecimento que permite construir. Dentro deste contexto, mineração de dados para extração de padrões ocultos, informações relevantes, associações e mudanças não estão sendo muito exploradas na área médica, entretanto há grande disponibilidade de informações armazenadas em bancos de dados ou um outro repositório eletrônico junto com o avanço da tecnologia, faz com que estas informações obtidas por uma mineração de dados possam ajudar a área médica no tratamento do quadro diabético, descobrindo as tendências e padrões que possam dar suporte à tomada de decisões no tratamento. O objetivo deste trabalho consiste em identificar qual o melhor algoritmo de mineração de dados entre o ZEROR, ONER e J48 para extrair padrões ocultos relacionados a partir de bases de dados contendo casos reais. Estes padrões serão obtidos através de utilização de técnicas de extração de conhecimento incorporadas no software Weka. Este trabalho está organizado da seguinte forma: nas próximas seções apresentam uma visão geral sobre Diabetes Mellitus, Extração de conhecimento e sobre o software Weka. As seções citadas acima têm como objetivo fornecer ao leitor subsídios para o entendimento das seções seguintes, principais foco do trabalho. A seguir, serão analisados os funcionamentos dos algoritmos ZEROR, ONER e J48 para a descoberta de padrões relativos à base de dados coletados. A discussão é apresentada como um foco da aplicabilidade desses algoritmos à descoberta de conhecimento em Diabetes Mellitus tipo dois. 2. REVISAO DE LITERATURA 2.1. Diabetes Mellitus 2.1.1. Conceito Diabetes Mellitus é uma síndrome múltipla decorrente da insuficiência ou dificuldade de produzir insulina. A Diabetes Mellitus tem como característica a hiperglicemia crônica com distúrbios do metabolismo dos carboidratos, lipídios e proteínas. Com o passar do tempo a Diabetes Mellitus provoca danos, disfunções, falência de vários órgãos, especialmente rins, olhos, nervos, coração e vasos sangüíneos. O diabético pode sentir alguns sintomas, tais como desanimo, sonolência, dificuldades visuais, dormências e câimbras, além de emagrecer apesar de comer mais do que o habitual, urinar em demasia e em maior quantidade, ou ainda, sentir muita sede [4]. 2.1.2. Funcionamento do organismo Para compreender melhor o que ocorre no diabético, fazem-se necessárias algumas explicações sobre o funcionamento do organismo: o pâncreas, órgão localizado no interior do abdome por trás do estomago. O pâncreas produz um hormônio chamado de insulina, o qual é lançado no sangue. O organismo metaboliza o açúcar ingerido, também conhecido como hidrato de carbono, transformando-os em glicose. A glicose, por sua vez penetra na célula, produzindo energia graças à capacidade apresentada pela insulina. Quando se ingere hidrato de carbono, o pâncreas produz exatamente uma quantidade de insulina que é lançada no sangue para que possa aproveitar estes alimentos. No entanto, no diabético este mecanismo não funciona corretamente. Então quando se alimenta ele se alimenta, seu pâncreas não produz insulina na quantidade adequada, ou se a produz, este hormônio é incapaz de agir corretamente e, em conseqüência, os açucares ingeridos não são aproveitados e o teor de glicose aumenta no sangue. Acontece que o organismo necessita utilizar esta glicose, pois é com a sua “queima” que é produzida a energia necessária todas as atividades. Entretanto, quando a glicose não é absorvida pelas células do corpo, aumenta o seu teor na circulação sanguínea, causando assim os sintomas do quadro diabético [2]. 2.1.3. Fatores que precipitam a Diabetes Podem ocorrer situações ou fatores que influenciam diretamente na produção ou ação da insulina, favorecendo o aparecimento da doença Diabetes Mellitus, naquelas pessoas que já estão predispostas. Entre elas, podem-se destacar [3]. • Obesidade (aumento de peso); • Infecções; • Gravidez; • Cirurgias; • Emoções fortes (traumas emocionais); • Stress; • Envelhecimento; • Uso de medicamentos diabetogênicos em doses altas e por tempo prolongado (alguns diuréticos, bloqueadores, estrogênios, cortisonas e derivados). 2.1.4. Tipos de Diabetes Mellitus Nos dias atuais, Diabetes Mellitus vem se tornando um problema de saúde publica, uma vez que é crescente o número de pessoas que apresentam esta doença, principalmente no Brasil [12]. Nesta seção aborda-se os dois tipos de Diabetes Mellitus. A diferença entre elas não é absoluta, mas em termos gerais: 2.1.4.1. Diabetes Mellitus tipo um Neste tipo de Diabetes Mellitus ocorre entre crianças e adultos menores de 30 anos. A destruição seletiva das células betas vai diminuindo progressivamente. Como estas células são a única fonte de insulina no organismo e sua regeneração não é significativa, então o diabético é chamado de insulino-dependente. O portador de Diabetes Mellitus tipo um tem como tratamento o recebimento de doses de insulina no sangue [4]. 2.1.4.2. Diabetes Mellitus tipo dois A etimologia deste tipo de diabete não é conhecida, mas vários dados indicam que esta enfermidade é o resultado da combinação de fatores genéticos e ambientais causando assim o desenvolvimento da doença. Este tipo de diabete ocorre nas pessoas acima de 40 anos, uma vez que existe uma disfunção progressiva das células betas e baixa capacidade do organismo utilizar a insulina. Não é depende de insulina, mas seu tratamento poderá ser feito com dietas e exercícios físicos. Entretanto, se for o caso, o tratamento é realizado por comprimidos. Este caso de diabete ocorre em 90% dos casos [4]. 2.2. Extração de conhecimento A necessidade de extrair informações relevantes e conhecimentos úteis de grandes quantidades de informações tem chamado atenção, uma vez que o aumento de dados armazenados no formato eletrônico tem crescido drasticamente nas ultimas décadas. O valor destes dados está tipicamente ligado à capacidade de extrair informação de mais alto nível que sirva para um propósito especifico. Entretanto a analisar desses dados ainda é demorada, dispendiosa e sujeita a erros [6]. Figura 1: Etapas do processo de extração de conhecimento [14]. Segundo Terra [14], em geral, o processo de descoberta de conhecimento consiste em quatro etapas: • Objetivos: sempre o processo de Extração de conhecimento tem como objetivo uma hipótese, que será aprovada ou rejeitada com a utilização dos exemplos ou conhecimentos adquiridos; • Preparação: é a etapa onde os dados são preparados para serem apresentados às técnicas de Data Mining. Os dados são selecionados (quais os dados que são importantes), purificados (retirar inconsistências dos dados) e pré-processados (reapresentá-los de uma maneira mais adequada para o Data Mining). Esta etapa é realizada sob supervisão e conhecimento de um especialista; • Data Mining: são colocados algoritmos específicos, nos quais utilizados para extração de conhecimento. A maioria dos algoritmos é baseada em conceitos de aprendizado de máquina, reconhecimento de padrões, entre outros; • Interpretação: o resultado apresentado é avaliado, visando determinar se algum conhecimento adicional foi descoberto, assim como definir a importância dos fatos gerados. “A extração de conhecimento em bases de dados consiste na seleção e processamento de dados com a finalidade de identificar padrões, dar maior precisa em padrões conhecidos e modelar o mundo real. Data Mining, em português, mineração de dados se refere ao exame de grandes quantidades de dados, procurando encontrar relações entre dados” [15]. 2.2.1. Métodos Segundo Fayyard [6], sua proposta era uma divisão dos métodos de extração de conhecimento abordando à sua aplicação, podendo ser descritivos ou preditivos. • Descritivos: cria-se um modelo para gerar uma representação descritiva dos dados. A partir desta descrição são tomadas as devidas ações; • Preditivos: criam-se modelos que permitem prever uma situação futura e necessariamente não focam a compreensão humana. 2.2.2. Tarefas de aprendizado Para extrair conhecimento relevante sobre um domínio especifico existem diversas técnicas que podem ser utilizadas. Segundo Fayyad [6], não existe um modelo universal para resolver todas as situações. A escolha de uma técnica para resolver uma situação particular de certa forma é uma arte. Por tanto é necessário informar qual o problema que se deseja resolver e quais as metas que devem ser alcançadas. As técnicas de aprendizado podem estar caracterizadas como: • Associação: é a descoberta de relações de associação ou correlações entre um conjunto de itens. São freqüentemente expressadas na forma de regras que mostram as condições atributo-valor que acontecem freqüentemente juntas em um determinado conjunto de dados; • Classificação: analisa um conjunto de dados de treinamento (conjunto de dados cuja classificação já é conhecida) e constrói um modelo para cada classe baseando nas características dos dados. Uma arvore de decisão ou um conjunto de regras de classificação é gerado por tal processo de classificação, que pode ser usado para entender melhor cada classe no banco de dados e para classificação de futuros dados; • Agrupamento: análise de agrupamentos consiste em identificar possíveis agrupamentos nos dados, onde um agrupamento é uma coleção de objetos que são “semelhantes”; • Seqüência: analisa um grande conjunto de dados de séries temporais para encontrar certas regularidades e características interessantes. Descobrindo assim padrões seqüenciais, periodicidades, tendências e divergências. Por exemplo, pode-se predizer a tendência dos valores acionários para uma companhia baseando-se sua historia acionaria, situação empresarial, desempenho dos competidores e mercado atual. Vale ressaltar que nenhuma técnica pode ser considerada o melhor para todas as aplicações. Para a escolha da técnica mais adequada para o problema deve-se conhecer o domínio. Saber quais os dados são mais importantes, conhecer os padrões já existentes e assim por diante [6]. 2.2.3. Aplicações As aplicações de extração de conhecimento são as mais variadas possíveis. Podendo se fazer estudos nos ambientes com propósitos diferentes. Abaixo estão listadas algumas áreas onde podem ser aplicados os conceitos de extração de conhecimento. • Acadêmico: o Disciplinas de graduação que tem maior probabilidade de serem cursadas em conjunto; • Bancário: o Liberação de empréstimos para clientes que tem característica de bom pagador; • Científico: o NASA cataloga imagem de satélites e classifica eventos similares nas imagens; • Marketing: o Mala direta de produtos para clientes que tem possibilidade de comprar aquele produto; • Varejo: o Produtos organizados nas prateleiras de forma que o cliente ponha no carrinho de compra os produtos que vendem em conjunto; 2.3. Software WEKA WEKA (Waikato Environment for Knowledge Analysis) foi desenvolvido pela Universidade de Waikato e representa seu ambiente para análise de conhecimento tendo a possibilidade dos usuários realizarem vários experimentos em um curto espaço de tempo [8]. O software foi escrito em linguagem JAVA, uma vez que esta linguagem está disponível em varias plataformas como Windows, Linux e Macintosh, transformando assim num software bastante portável. WEKA é um software livre que possui sua licença baseada na GPL (General Public Licence) e pode ser facilmente encontrado para download no endereço: < http://www.cs.waikato.ac.nz/ml/weka/ >. A tecnologia de aprendizado de máquina continua se desenvolvendo e amadurecendo conforme mais pessoas, no seu ambiente de trabalho, submetem seus conjuntos de dados aos algoritmos de aprendizagem. Serão apresentados a seguir, o formato de entrada das bases de dados (arff) e os ambientes abordados no trabalho tais como: preprocess e classifly. 2.3.1. Arquivos arff O WEKA possui um formato próprio, o arff. Antes de aplicar conjuntos de dados a qualquer algoritmo do software WEKA, estes devem ser convertidos para o formato arff que consiste basicamente de duas partes: • Lista de atributos: parte que contém uma lista de todos os atributos onde se definem o tipo do atributo ou os valores que ele pode representar. Os valores devem está entre chaves “{}” e separados por virgulas; • Instâncias e valores: parte que consiste nas instâncias, ou seja, os registros a serem minerados com o valor dos atributos para cada instância separada por virgulas. Caso haja alguma falta de um dado no conjunto de valores, este é substituído por um ponto de interrogação “?”. A ilustração abaixo apresenta um exemplo de conjunto de dados no formato arff comentado, no qual será abordado na prática o conceito visto anteriormente. Vale ressaltar que este exemplo serve para apresentar os conceitos e a aplicabilidade do formato arff. @relation Analise_de_financiamento Indicação do conjunto de dados a ser estudado; @attribute idade real Atributo numérico com processamento de até sete dígitos. Embora há outros tipos como interger e numeric; @attribute estado_civil {Casado, Solteiro, Atributo nominal com caracteres especiais, Divorciado} vírgulas, ou espaços em branco devem ser colocados entre aspas simples. Ex: ‘’único valor’; @attribute tem_filhos {Sim, Não} @attribute emprego_fixo {Sim, Não} @attribute casa_propria {Sim, Não} Atributos booleanos expresso por sim ou não, no qual apresentará ou não a ocorrência do atributo em questão; @attribute automovel {Sim, Não} @attribute Apto_financiar {Sim,Não} Último atributo é definido como atributo classe ou alvo. @data @data é a palavra reservada para o conjunto 21,Solteiro,Sim,Não,Não,Não,Não de dados propriamente dito. No exemplo, é 23,Solteiro,Não,Sim,Sim,Não,Não composto por apenas cinco registros. As informações devem ser colocadas separadas 30,Divorciado,Sim,Sim,Sim,Não,Sim por virgulas e cada linha representa um 40,Divorciado,Não,Não,Sim,Não,Sim único registro. 44,Casado,Não,Não,Não,Sim,Sim Tabela 1: Exemplo de um arquivo no formato arff. 2.3.2. Ambiente Explorer Nesta seção será abordado o ambiente Explorer do WEKA, no qual estará sendo apresentado o funcionamento básico do aplicativo como abertura do arquivo da base de dados no formato arff, depois a escolha do método de mineração de dados. 2.3.2.1. Pré-processo Na figura abaixo, a tela do Preprocess, na qual abrem-se os arquivos para experimentos, executam filtros e tem-se a identificação dos atributos e instâncias do conjunto de dados. O filtro tem como finalidade limpar o conjunto de dados retirando algum atributo ou filtrando dados inconsistentes. Figura 2: Tela do Preprocess. O gráfico apresentado na figura acima representa a classe alvo e a sua classificação. Cada cor representa um estado da classe alvo. Para a visualização de todos os gráfico clicase na guia Vizualize All. 2.3.2.2. Classifly Na figura abaixo, é apresentada a tela do Classifly, na qual o software WEKA disponibiliza várias implementações de classificadores. Clica-se Choose para escolher o algoritmo, escolhe a opção de treinamento e validação e clica-se em Start para executar o resultado para análise é apresentado na Classifier output. Figura 3: Tela do Classifly. Deve-se analisar o Overfitting. Para isso as classificações geradas pelos algoritmos devem ser a mais geral possível, uma vez que o algoritmo deve contemplar casos não descritos nos exemplos, sem piorar o seu desempenho. Os resultados, desta classificação, podem ser avaliados na matriz de confusão, no qual pode se observar à precisão do algoritmo em estudo. Antes da escolha de um algoritmo de extração de regras devem-se analisar as predições e o impacto para as predições incorretas podem ocasionar [16]. O custo de uma predição incorreta em uma aplicação de diagnóstico médico pode ser um fator determinante para a escolha de um algoritmo. Abaixo será apresentado o funcionamento básico dos algoritmos: ZEROR, ONER e J48. 2.3.2.4. Algoritmo ZEROR Este é o algoritmo de aprendizagem mais primitivo do software WEKA. Modela uma base de dados com uma única regra. Dado um conjunto de dados para uma nova classificação, o algoritmo ZEROR prediz o valor mais freqüente nos dados de treinamento para problemas com valores nominais ou valor da classe comum para problemas de predição numéricos [17]. 2.3.2.5. Algoritmo ONER O algoritmo ONER é um algoritmo que produz uma regra simples, pois é baseado em um único atributo. Este algoritmo leva um único parâmetro que é o número mínimo de exemplos [17]. 2.3.2.6. Algoritmo J48 O J48 é o algoritmo mais popular do Weka. Baseado na implementação do C 4.5 release 8, que gera uma árvore de decisão baseado em um conjunto de dados de treinamento, sendo que este modelo é usado para classificar as instâncias no conjunto de teste. A versão mais recente do algoritmo, disponibilizada apenas comercialmente, é a C 5.0 [17]. Figura 4: Exemplo de uma árvore de decisão. Para o exemplo apresentado acima, o domínio foi especificado como uma aplicação de aprovação de financiamento de crédito. Onde a árvore apresenta os nós e a navegação é realizada de cima para baixo até atingir a classe alvo. 3. MATERIAL E METODOLOGIA Para o seguinte trabalho, utilizou-se um software de domínio público chamado WEKA (Waikato Environment for Knowledge Analysis) que contém várias implementações de algoritmos de extração de conhecimento. Uma base de dados coletada, junto ao especialista do domínio, foi transformada para formato arff, padrão exigido pelo Weka conforme descrito na seção 2.2.1, e submetida a três algoritmos que fazem parte do Weka que tem como objetivo a escolha do melhor algoritmo de extração de conhecimento. 3.1. Local e período O período da realização deste trabalho foi de setembro a dezembro de 2004, no Laboratório de informática do Curso de Sistemas de informação no Centro Universitário Luterano de Palmas. 3.2. Material Os materiais necessários para a realização dos experimentos podem ser divididos em cinco categorias: Conjuntos de dados, Recursos humanos, Recursos de hardware, Recursos de software e Fontes Bibliográficas. 3.2.1. Conjunto de dados Foi realizada uma coleta de dados junto ao especialista do domínio, a qual disponibilizou os prontuários dos pacientes, já diagnosticados, em Diabetes Mellitus Tipo DOIS, contendo 74 prontuários. Abaixo contém uma lista dos atributos, com uma breve descrição e seus valores possíveis. Atributos: • Idade: o Indica a idade do paciente. Como a Diabetes Mellitus tipo 2, aparece em pacientes com mais de 40 anos, então os casos apresentados tiveram idade superior a 40 anos. • Valores: real ColesterolAnormal: o Indica uma anormalidade na taxa de colesterol aceitável no organismo. • Valores: {Sim,Não} DoencasCoronarianas: o Indica se o paciente apresenta alguma doença cardiovascular. • Valores: {Sim,Não} Hipertensão: o Indica se o paciente apresenta problemas de hipertensão sanguínea. • Valores: {Sim,Não} Obesidade: o Indica se o paciente apresenta um índice elevado de massa corpórea. Cálculo feito através do Índice de massa corpórea. • Valores: {Sim,Não} Sedentarismo: o Indica se o paciente não pratica exercícios físicos regulares. • Valores: {Sim,Não} TrigliceridesAnormal: o Indica se o paciente apresenta uma anormalidade na taxa de triglíceres aceitável no organismo. Valores: {Sim,Não} • Antecedentes: o Indica se o paciente apresenta casos de antecedentes com quadro diabético. • Valores: {Sim,Não} Assintomáticos: o Indica se o paciente não apresenta sintomas clínicos do quadro diabético ou não apresenta os sintomas clássicos como, por exemplo: Poliúria, Polidipsia, Polifagia e Excesso ou perda de peso. • Valores: {Sim,Não} VisaoTurva: o Indica se o paciente apresenta problemas de visão. • Valores: {Sim,Não} FeridasNaoCicatrizam: o Indica se o paciente apresenta feridas que demoram a se catrizar. • Valores: {Sim,Não} DormeciasMembrosInferiores: o Indica se o paciente tem câimbras nos membros inferiores. • Valores: {Sim,Não} Poliúria: o Indica se o paciente urina demasiadamente. • Valores: {Sim, Não} Polidipsia: o Indica se o paciente bebe muita água. • Valores: {Sim, Não} Polifagia: o Indica se o paciente sente fome constante. Valores: {Sim, Não} • PerdaExcessoPeso: o Indica se o paciente apresenta perda ou excesso de peso. • Valores: {Sim, Não} GlicemiaCapilar: o Indica se o paciente apresenta alteração do açúcar no sangue. • Valores: real Diabético: o Classe alvo; o Indica se o paciente apresenta o quadro diabético. Valores: {Sim,Não} 3.2.2. Recursos humanos No presente trabalho teve a participação de três pessoas, onde cada uma tinha determinada função. • Um estagiário, que ficou incumbido de estudar e realizar dos experimentos com a ferramenta Weka no domínio especificado nas seções anteriores, bem como a estruturação da documentação que se destina o trabalho; • Um orientador, no qual supervisiona os experimentos realizados com a ferramenta e auxilia na confecção da documentação do presente trabalho; • Um médico especialista no domínio, que auxilia na documentação dos experimentos realizados na ferramenta utilizada. 3.2.3. Recursos de hardware Foram utilizados dois computadores com seus requisitos citados abaixo: • Computador 1: o AMD K6-2 550Hz; o 98 MB RAM; o HD 10 GB; • Computador 2: o Pentium III 750Hz; o 128Mb RAM; o HD 20 GB; 3.2.4. Recursos de software • Os softwares utilizados foram os seguintes: • OpenOffice.org 1.1.2 br, para editoração da redação, leitura de algumas referencias bibliográficas e geração de um documento PDF; • Monzilla FireFox 0.10 PR, para pesquisas realizadas na Internet; • WEKA 3.4, para realização dos experimentos dos algoritmos de aprendizagem; • Java 2 Run-Time (J2RE), para dar suporte a aplicação WEKA; • Adobe Acrobat Reader 6.0, para leitura de referencias bibliográficas; • WinZip e WinRar, descompactadores utilizados quando necessários; • Globalink, para traduções de textos escritos em línguas estrangeiras; 3.2.5. Fontes bibliográficas As fontes bibliográficas são constituídas por: livros, manuais, publicações cientificas, teses e dissertações obtidas na Internet. 3.3. Metodologia Para a realização do presente trabalho foi elaborado um cronograma descrito nas atividades realizadas, como é apresentado na tabela 2: Setembro / 2004 ● Definição do tema e restrições do domínio (Diabetes Mellitus Tipo 2) ● Coleta de dados sobre os pacientes diagnosticados em Diabetes Mellitus tipo 2 na região Norte de Palmas – TO. Sendo que esta base de dados estava disponibilizada em um banco de dados e em uma planilha eletrônica. Total dos casos coletados: 74 casos; Outubro / 2004 ● Revisão de literatura: ● Pesquisas sobre Diabetes Mellitus; ● Pesquisas sobre Extração de conhecimento; ● Pesquisas sobre a ferramenta WEKA; ● Transformação dos arquivos coletados para o padrão do WEKA. Novembro / 2004 ● Escolha nos algoritmos que seriam estudados, uma vez que o Pacote WEKA disponibiliza uma grande quantidade de classificadores; ● Entendimento do funcionamento dos algoritmos de classificação ZEROR, ONER e J48; ● Comparativos com bases de dados fictícias com 50 casos e 100 casos; Dezembro / 2004 ● Avaliação do especialista do domínio; ● Testes finais; ● Elaboração da redação final. Tabela 2: Cronograma das atividades realizadas. 4. RESULTADOS E DISCUSSÕES A seguir serão apresentados os resultados obtidos dos experimentos realizados com o conjunto de dados coletados contendo 74 exemplos e 18 atributos. A classe alvo “Diabético” foi instanciada com 56 para a classe “Sim” e 18 para a classe “Não”. Os algoritmos foram executados separadamente. 4.1. Hipóteses O presente trabalho abordará duas hipóteses. A primeira hipótese tem como característica principal que todas as respostas sejam informadas pelo paciente no momento da triagem e que todos os atributos foram preenchidos corretamente. A segunda hipótese, no momento da triagem o paciente não sabe ou não têm certeza que aquela resposta esteja correta. Por exemplo, o paciente desconhece sua taxa de colesterol. Neste caso, o paciente não sabe se está com o colesterol alterado. 4.1. Aplicação do Algoritmo ZEROR A tabela abaixo representa a aplicação do algoritmo ZEROR === Run information === Scheme: Weak.classifiers.rules.ZeroR Relation: DiabetesMellitus Instances: 74 Attributes: 18 === Classifier model (full training set) === ZeroR predicts class value: Sim === Evaluation on training set === === Summary === Correctly Classified Instances 56 75.7% Incorrectly Classified Instances 18 24.3% === Detailed Accuracy By Class === Class Precision Sim 0.757 === Confusion Matrix === a b <-- classified as 56 0 | a = Sim 18 0 | b = Não Tabela 3: Hipótese 1 – Aplicação do algoritmo ZEROR. Como é característico do algoritmo ZEROR , foi observado que ele fez uma predição do valor nominal que teve mais ocorrência, no caso o valor “Sim”. Focando o estudo na matriz de confusão ficou observado que o algoritmo obteve um percentual de acerto de 75,7% para os atributos nominais “Sim”. A classificação incorreta de 18 instâncias faz que com que o seu percentual fosse reduzido. === Run information === Scheme: weka.classifiers.rules.ZeroR Relation: DiabetesMellitusValoresMOD Instances: 74 Attributes: 18 === Classifier model (full training set) === ZeroR predicts class value: Sim === Evaluation on training set === === Summary === Correctly Classified Instances 38 82.6% Incorrectly Classified Instances 8 17.4% Total Number of Instances 46 Ignored Class Unknown Instances 28 === Detailed Accuracy By Class === Class Precision Sim 0.826 === Confusion Matrix === a b <-- classified as 38 0 | a = Sim 8 0 | b = Não Tabela 4: Hipótese 2 – Aplicação do algoritmo ZEROR. O algoritmo aumentou a sua precisão para 82,6%, reduzindo o número de instâncias classificadas erradas, entretanto o algoritmo ignorou 28 exemplos, pois o mesmo não consegue instanciar estes exemplos. 4.3. Aplicação do Algoritmo ONER A tabela abaixo representa a aplicação do algoritmo ONER. === Run information === Scheme: Weka.classifiers.rules.OneR -B 6 Relation: DiabetesMellitus Instances: 74 Attributes: 18 === Classifier model (full training set) === GlicemiaCapilar: < 178.5 -> Não >= 178.5 -> Sim (74/74 instances correct) === Evaluation on training set === === Summary === Correctly Classified Instances 74 100% Incorrectly Classified Instances 0 0% === Detailed Accuracy By Class === Class Sim Class Não Precision 1 Precision 1 === Confusion Matrix === a b <-- classified as 56 0 | a = Sim 0 18 | b = Não Tabela 5: Hipótese 1 – Aplicação do algoritmo ONER. Como é característico do algoritmo ONER foi observado que a classe “GlicemiaCapilar” é o fator preponderante para instanciar a classe alvo, no caso “Diabetico” . Focando o estudo na matriz de confusão, pode-se observar que o algoritmo ONER consegue instanciar corretamente 100% dos exemplos. Gerando apenas uma única regra. Se a glicemia capilar for menor ou igual a 178,5 então é classificado como “Não diabético”, senão é classificado como “diabético”. === Run information === Scheme: Weka.classifiers.rules.OneR -B 6 Relation: DiabetesMellitusValoresMOD Instances: 74 Attributes: 18 === Classifier model (full training set) === Idade: not ? -> Sim (38/46 instances correct) === Evaluation on training set === === Summary === Correctly Classified Instances 38 Incorrectly Classified Instances 8 Total Number of Instances 46 Ignored Class Unknown Instances 28 === Detailed Accuracy By Class === Class Precision Sim 0.826 === Confusion Matrix === a b <-- classified as 38 0 | a = Sim 8 0 | b = Não 82.6% 17.4% Tabela 6: Hipótese 2 – Aplicação do algoritmo ONER. Como é característico do algoritmo ONER gerar apenas uma regra para classificar a classe alvo, então ele não se comportou como esperado. Não conseguiu instanciar o atributo mais relevante para a classificação da classe alvo, no caso o atributo “GlicemiaCapilar”. O algoritmo instanciou a primeira classe da relação, no caso “Idade”. Eliminando esta classe pelo Preprocess, o algoritmo instancia a próxima classe da relação e assim sucessivamente. 4.4. Aplicação do Algoritmo J48 A tabela abaixo representa a aplicação do algoritmo J48. === Run information === Scheme: Weka.classifiers.trees.J48 -C 0.25 -M 2 Relation: DiabetesMellitus Instances: 74 Attributes: 18 === Classifier model (full training set) === J48 pruned tree -----------------GlicemiaCapilar <= 174: Não (18.0) GlicemiaCapilar > 174: Sim (56.0) === Evaluation on training set === === Summary === Correctly Classified Instances 100 100% Incorrectly Classified Instances 0 0% === Detailed Accuracy By Class === Class Sim Class Não Precision 1 Precision 1 === Confusion Matrix === a b <-- classified as 56 0 | a = Sim 0 18 | b = Não Tabela 7: Hipótese 1 – Aplicação do algoritmo J48. Focando o estudo na matriz de confusão, foi observado que a classificação gerada pelo algoritmo J48 tem um percentual de acertos em 100% para a classe alvo, no caso “Diabético”, uma vez que ele identificou que a “GlicemiaCapilar” como atributo mais relevante. Sendo a glicemia capilar acima de 174 é classificado como diabético. === Run information === Scheme: Weka.classifiers.trees.J48 -C 0.25 -M 2 Relation: DiabetesMellitusValoresMOD Instances: 74 Attributes: 18 === Classifier model (full training set) === J48 pruned tree -----------------GlicemiaCapilar <= 174: Não (6.22/0.81) GlicemiaCapilar > 174: Sim (39.78/2.59) === Evaluation on training set === === Summary === Correctly Classified Instances 43 93.5% Incorrectly Classified Instances 3 6.5% Total Number of Instances 46 Ignored Class Unknown Instances 28 === Detailed Accuracy By Class === Class Sim Class Não Precision 0.927 Precision 1 === Confusion Matrix === a b <-- classified as 38 0 | a = Sim 3 5 | b = Não Tabela 8: Hipótese 2 – Aplicação do algoritmo J48 O algoritmo manteve uma precisão elevada, mesmo com a segunda hipótese. Focando o estudo na Correectly Classified Instances, foi observado que o algoritmo instanciou, com uma probabilidade de acerto de 93,5%. 4.5. Discussões Com o objetivo de pesquisar a viabilidade de obter conhecimento a partir de uma base de dados sobre Diabetes Mellitus tipo dois, procurou-se investigar as técnicas de extração de conhecimento onde é apresentada uma visão crítica dos pontos positivos e negativos dos resultados apresentados acima. Essa visão crítica é apresentada no contexto de data mining culminando em uma sugestão sobre qual algoritmo se adapta melhor as bases de dados coletadas para descoberta de uma predição em Diabetes Mellitus Tipo dois. A performance dos algoritmos pode ser melhorada através da remoção de atributos irrelevantes. Esta tarefa que pode ser realizada manualmente, utilizando a ferramenta Weka ou através de algum método automático de seleção de atributos. As figuras abaixo representam o resultado da matriz de confusão para análise das duas hipóteses propostas no trabalho. Figura 4: Funcionamento do Algoritmo ZEROR. O algoritmo ZEROR teve um desempenho razoável nas duas hipóteses, mas por se tratar de um algoritmo bastante simples não seria o mais ideal para o tipo de predição, uma vez que a característica do algoritmo é traçar uma única regra baseando-se no valor mais apresentado na base de dados. No caso, o valor nominal “Sim”, como é observado na figura acima. Figura 5: Funcionamento do Algoritmo ONER. O algoritmo ONER também obteve uma considerável margem de acerto para a primeira hipótese, entretanto para a segunda hipótese ele não foi tão preciso e também não instanciou corretamente o atributo mais relevante. Como o custo de overfitting é levado em consideração o algoritmo não se comportou como esperado, pois não gerou uma regra que contemplasse todos os casos da base de dados. Figura 6: Funcionamento do Algoritmo J48. Estudando o funcionamento dos algoritmos ficou observado que o algoritmo J48 se comportou bem, com uma precisão de acertos aceitável para o conjunto de dados coletados. A primeira hipótese, no qual o algoritmo instanciou corretamente todos os casos, tornando assim a precisão de 100%. A segunda hipótese, no qual o algoritmo instanciou corretamente 93,5% dos casos, o algoritmo obteve uma margem de acertos aceitável para as predições. 5. CONCLUSAO Extração de conhecimento tem sido cada vez mais aplicada em grandes bases de dados, em particular por causa da alta demanda de transformar grandes quantidades de dados em informações úteis, promovendo agilidade e confiança para o apoio à tomada de decisão. A disponibilidade do conjunto de dados não foi uma problemática, pois estes dados já estavam disponibilizados num formato eletrônico e o trabalho do especialista do domínio foi um facilitador no entendimento do problema. Foi identificado que a Glicemia Capilar, segundo o especialista do domínio, o atributo mais significativo para o diagnóstico do quadro diabético. O software Weka foi de grande utilidade nas análises, uma vez que em um curto espaço de tempo pode se fazer vários experimentos. Além de possuir uma licença GPL, o software Weka contém vários algoritmos de aprendizagem de máquina. Neste contexto, o presente trabalho tem como proposta a escolha do melhor algoritmo dentre ZEROR, ONER e J48. Foi observado as matrizes de confusão dos algoritmos estudados. Identificou-se que o J48 se manteve mais estável para o conjunto de dados e para as predições dos possíveis pacientes em Diabetes Mellitus tipo dois. O algoritmo ZEROR não consegue instanciar um atributo devido às suas características, classificando apenas o valor nominal com a maior ocorrência. O algoritmo ONER instanciou corretamente com uma única regra a glicemia capilar, entretanto o impacto das predições erradas na segunda hipótese pode ser considerado um fator determinante para a escolha deste algoritmo. O algoritmo J48 se apresentou mais estável tanto para a primeira hipótese quanto para a segunda hipótese. Os acertos apresentados para as predições da segunda hipótese se mostraram consideravelmente alto, uma vez que se manteve acima dos 90%. Com a utilização de técnicas de extração de conhecimento para auxiliar o processo de triagem dos possíveis pacientes em Diabetes Mellitus tipo dois identificando os padrões ocultos na base de dados coletada, pode-se observar que quando a glicemia capilar está acima de 174, no caso do algoritmo J48, o paciente foi diagnosticado com o quadro diabético. 6. TRABALHOS FUTUROS Data warehouse é um conjunto de tecnologias que permitem converter uma grande quantidade de dados em informação utilizável, transformando um banco de dados num ambiente operacional. Sua principal característica é que ele é um banco de dados desenhado para tarefas analíticas, usando dados de diferentes aplicações. Apesar dos dados estarem num formato eletrônico, em sua maioria, os dados podem está desarrumados em relação aos dados obtidos pelo especialista do domínio. A criação de um data warehouse tem como objetivo a extração de dados de qualquer fonte, seja ela um banco de dados, documentos de texto, planilhas eletrônicas entre outros. No contexto do presente trabalho, seria interessante utilizar data warehouse para integrar os dados coletados em todos os postos de saúde do plano diretor de palmas, de maneira que eles possam ficar consistentes para serem aplicados a um algoritmo de extração de conhecimento. A integração das bases de dados, abrangendo todos os setores do município de Palmas pode-se buscar um padrão oculto nos dados. Ter em mãos a informação e a habilidade de transformar esta informação em conhecimento é um fator critico para o sucesso. O uso estratégico dos conhecimentos adquiridos pode se tornar um aliado aos gestores e demais pessoas envolvidas no processo de combate ao quadro diabético. 7. REFERÊNCIAS BIBLIOGRÁFICAS [1] Brasil, Ministério da Saúde. Orientações básicas para o diabético, 2ª edição, Brasília, 1993. [2] Costa, Arual Augusto. Manual de diabetes: alimentação, medicamentos, exercícios. 3ª edição, Editora Sarvier, 1998. [3] Brasil, Ministério da Saúde. Doenças Crônico-Degenerativas, 3ª edição, Brasília, 2000. [4] Brasil, Ministério da Saúde. Diabetes Mellitus. 2ª edição, Brasília, 2002. [5] UCI KDD Archive. Disponível em: < http://kdd.ics.uci.edu/ >. Acesso em: 25 de novembro de 2004. [6] FAYYAD, U.; PIATETSKY-SHAPIRO, G.; SMYTH, P. The KDD Process for Extracting Useful Knowledge from Volumes of Data. 1996. [7] TECNOLOGIAS PARA APOIO A TOMADA DE DECISÃO. Disponível em: < http://www.inf.pucrs.br/~egidio/tadc/ >. Acesso em: 31 de novembro de 2004. Weka Project. Disponível em: < http://www.cs.waikato.ac.nz/ml/weka/ > Acesso em: 31 de novembro de 2004. [8] [9] Análise de informações em dados estruturados com XML Disponível em: < http://dein.ucs.br/Pesquisa/Projetos/KDD-XML/ > Acesso em: 28 de novembro de 2004. [10] Boa Saúde Disponível em : < http://www/boasaude.uol.com.br >. Acesso em 14 de setembro de 2004. [11] Universidade De Évora. Disponível em : < http://www.di.uevora.pt/~rt/apr/docs/TutorialPratico.html >. Acesso em 31 de novembro de 2004. [12] ABC da Saúde Disponível em: < http://www.abcdasaude.com.br/artigo.php?127 > Acesso em 12 de setembro de 2004. [13] Introdução à aprendizagem de máquina. Disponível em: < http://robotics.stanford.edu/people/nilsson/mlbook.html > Acesso em 28 de novembro de 2004. [14] TERRA, J.C.C. Gestão do conhecimento: o empresarial. grande desafio São Paulo: Negócio Editora, 2000. Micthell, Tom. Machine Learning, McGraw Hill, 1997. [15] [16] [17] Gama, João. Avaliação de Classificadores. Disponível em: < http://www.liacc.up.pt/~jgama/Aulas_ECD/aval.pdf > Acesso em 29 de novembro de 2004 Witten, I. H., and Frank E. Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations. San Francisco, 1999.