Descobertas de Padrões Usando Técnicas de Extração de

Propaganda
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.
Download