universidade do vale do itajaí centro de ciências tecnológicas da

Propaganda
UNIVERSIDADE DO VALE DO ITAJAÍ
CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
FERRAMENTAS PARA ESTIMAR VALORES FALTANTES EM UMA BASE
DE DADOS NA ETAPA DE PRÉ-PROCESSAMENTO DE UM KDD
Área de Inteligência Artificial
por
Leandro Alberto Vieira
Benjamin Grando Moreira, Bel.
Orientador
Itajaí (SC), Jul de 2008
UNIVERSIDADE DO VALE DO ITAJAÍ
CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
FERRAMENTA PARA ESTIMAR VALORES FALTANTES EM UMA BASE
DE DADOS NA ETAPA DE PRÉ-PROCESSAMENTO DE UM KDD
Área de Inteligência Artificial
por
Leandro Alberto Vieira
Relatório apresentado à Banca Examinadora do
Trabalho de Conclusão do Curso de Ciência da
Computação para análise e aprovação.
Orientador: Benjamin Grando Moreira, Bel.
Itajaí (SC), Jul de 2008
SUMÁRIO
LISTA DE ABREVIATURAS ................................................................. iv
LISTA DE FIGURAS ................................................................................ v
Lista de tabelas .......................................................................................... vi
Lista de equações ...................................................................................... vii
RESUMO ................................................................................................. viii
ABSTRACT ............................................................................................... ix
1. INTRODUÇÃO ..................................................................................... 1
1.1 PROBLEMATIZAÇÃO ..................................................................................... 3
1.1.1 Formulação do Problema ................................................................................. 3
1.1.2 Solução Proposta ............................................................................................... 3
1.2 OBJETIVOS ........................................................................................................ 4
1.2.1 Objetivo Geral ................................................................................................... 4
1.2.2 Objetivos Específicos ........................................................................................ 4
1.3 METODOLOGIA ................................................................................................ 5
1.4 ESTRUTURA DO TRABALHO........................................................................ 5
2 FUNDAMENTAÇÃO TEÓRICA........................................................ 7
2.1 DESCOBERTA DE CONHECIMENTO EM BASE DE DADOS
(KNOWLEDGE DISCOVERY IN DATABASES - KDD) ..................................... 7
2.1.1 Etapas do KDD .................................................................................................. 8
2.1.1.1
Compreensão do Domínio de Aplicação ................................................ 11
2.1.1.2
Seleção de Dados ...................................................................................... 12
2.1.1.3
Pré-Processamento ................................................................................... 12
2.1.1.4
Transformação dos Dados ....................................................................... 13
2.1.1.5
Mineração de Dados ................................................................................. 13
2.1.1.6
Interpretação e Avaliação do Conhecimento ........................................ 14
2.2 PRÉ-PROCESSAMENTO DE DADOS .......................................................... 14
2.2.1 Tratamentos de valores ausentes ................................................................... 15
2.2.2 Tratamento de valores inconsistentes ........................................................... 16
2.2.3 Exclusão dos valores não pertencentes ao domínio ..................................... 17
2.3 TRATAMENTO DE VALORES AUSENTES ............................................... 17
2.3.1 Aleatoriedade dos valores ausentes ............................................................... 18
2.3.2 Métodos para o tratamento de valores ausentes .......................................... 22
2.4 RACIOCÍNIO BASEADO EM CASO ............................................................ 23
2.4.1 O ciclo RBC ..................................................................................................... 24
2.4.2 O Algoritmo K-Vizinho mais Próximos ........................................................ 25
2.5 MINERAÇÃO DE DADOS .............................................................................. 26
2.5.1 Técnicas de Mineração de Dados................................................................... 27
ii
2.5.2 Tarefas desempenhadas por técnicas de Mineração de Dados................... 28
2.6 FERRAMENTA WEKA ................................................................................... 29
2.7 TRABALHOS SIMILARES............................................................................. 31
2.7.1 Pré-processamento em Aprendizado de Máquina Supervisionado ........... 32
2.7.2 Um Estudo de Caso do Impacto da Imputação de Dados na Mineração de
Dados........................................................................................................................... 33
3 DESENVOLVIMENTO...................................................................... 34
3.1 REQUISITOS DE SOFTWARE ...................................................................... 34
3.1.1 Requisitos funcionais ...................................................................................... 34
3.1.2 Requisitos não funcionais ............................................................................... 34
3.1.3 Regras de Negócio ........................................................................................... 35
3.2 MÉTODO ESTATÍSTICO ............................................................................... 35
3.3 MÉTODO RBC.................................................................................................. 36
3.4 MÉTODO MD ................................................................................................... 39
3.4.1 Gerador de arquivo ARFF ............................................................................. 42
3.4.2 Utilizando a ferramenta Weka ...................................................................... 42
3.5 FUNCIONAMENTO DA FERRAMENTA .................................................... 48
3.6 TESTE E VALIDAÇÃO ................................................................................... 51
3.6.1 Resultados obtidos pelo método estatístico ................................................... 53
3.6.2 Resultados obtidos pelo método RBC padrão .............................................. 54
3.6.3 Resultados obtidos pelo método RBC com peso .......................................... 55
3.6.4 Resultados obtidos pelo método de MD ........................................................ 57
3.6.5 Comparação entre os métodos ....................................................................... 59
4 CONCLUSÕES .................................................................................... 62
MODELAGEM DO SISTEMA .............................................................. 67
Casos de Uso ............................................................................................. 67
Casos de Uso da ferramenta ..................................................................................... 67
iii
LISTA DE ABREVIATURAS
ARRF
CSV
DLL
DOS
ERP
EM
IA
J2SDK
JAR
KDD
MAR
MBR
MCAR
MD
ML
MNAR
OLAP
PHP
RBC
RIPPER
SGBD
SQL
TCC
TI
UNIVALI
WEKA
Attribute Relation File Format
Comma-Separated Values
Dynamic Link Library
Disk Operanting System
Enterprise Resource Planning
Expectation Maximization
Inteligência Artificial
Java Software Development Kit
Java Archive
Knowledge Discovery in Databases
Missing At Random
Memory-Based Reasoning
Missing Completly At Random
Mineração de Dados
Maximum Likelihood
Missing Not At Random
On-Line Analytical Processing
Hypertext Preprocessor
Raciocínio Baseado em Casos
Repeated Incremental Pruning Error Reduction
Sistema Gerenciados de Banco de Dados
Structure Query Language
Trabalho de Conclusão de Curso
Tecnologia da Informação
Universidade do Vale do Itajaí
Waikato Environment for Knowledge Analysis
iv
LISTA DE FIGURAS
Figura 1. Etapas do Processo KDD .................................................................................................... 10
Figura 2. Tempo dispendido para cada etapa do KDD ...................................................................... 11
Figura 3. Conjunto de dados original ................................................................................................. 19
Figura 4. Imputação por média dos atributos ..................................................................................... 20
Figura 5. Imputação pelo algoritmo do Vizinho Mais Próximo ........................................................ 21
Figura 6. Ciclo RBC. .......................................................................................................................... 25
Figura 7. Estrutura do arquivo ARFF ................................................................................................ 30
Figura 8. Exemplo do método RBC em que faz o somatório dos atributos. ...................................... 38
Figura 9. Configuração no arquivo php.ini. ....................................................................................... 40
Figura 10. Classe Java teste para integração com o PHP. .................................................................. 40
Figura 11. Código PHP para invocar os métodos da classe Java. ...................................................... 41
Figura 12. Tela de erro do Apache no momento da integração. ........................................................ 41
Figura 13. Dados no log de eventos do Windows referente ao Apache. ........................................... 41
Figura 14. Erro ao abrir o arquivo pelo Weka quando existem rótulos duplicados. .......................... 42
Figura 15. Tela inicial da ferramenta Weka. ...................................................................................... 43
Figura 16. Tela de pré-processamentos de dados do Weka com conjunto de dados importados. ..... 44
Figura 17. Tela dos algoritmos de classificação do Weka. ................................................................ 45
Figura 18. Algoritmos de classificação. ............................................................................................. 46
Figura 19. Regras geradas pelo Algoritmo JRip. ............................................................................... 47
Figura 20. Erro ao manipular valores qualitativos. ............................................................................ 48
Figura 21. Tela do sistema para importar o arquivo CSV.................................................................. 48
Figura 22. Tela de informações sobre o processamento. ................................................................... 49
Figura 23. Classificação dos atributos ............................................................................................... 50
Figura 24. Tela de apresentação dos resultados. ................................................................................ 51
Figura 25. Resultados Obtidos pela ferramenta - Método Estatístico. ............................................... 53
Figura 26. Resultados Obtidos pela ferramenta - Método RBC padrão............................................. 54
Figura 27. Resultados Obtidos pela ferramenta - Método RBC com Peso. ....................................... 56
Figura 28. Regra para a previsão........................................................................................................ 57
Figura 29. Regra para o atributo vento............................................................................................... 58
Figura 30. Regra para Jogar? ............................................................................................................. 58
Figura 31. Casos de Uso da ferramenta proposta. .............................................................................. 68
Figura 32. Exemplo de Arquivo CSV. ............................................................................................... 70
Figura 33. Setando pesos para o RBC. ............................................................................................... 72
Figura 34. Visualização dos resultados na ferramenta. ...................................................................... 73
v
LISTA DE TABELAS
Tabela 1. Principais Funcionalidades da Ferramenta WEKA. ........................................................... 31
Tabela 2. Tabela de dados originais. .................................................................................................. 52
Tabela 3. Base de dados com os valores faltantes. ............................................................................ 52
Tabela 4. Proximidade dos valores obtidos pelo Método Estatístico................................................. 54
Tabela 5. Proximidade dos valores obtidos pelo Método RBC padrão ............................................. 55
Tabela 6. Pesos Atribuídos aos Atributos - RBC Peso ...................................................................... 55
Tabela 7. Proximidade dos valores obtidos pelo Método RBC com peso ......................................... 56
Tabela 8. Valores obtidos pelo algoritmo JRip. ................................................................................. 57
Tabela 9. Proximidade dos valores obtidos pelo algoritmo JRip ....................................................... 59
Tabela 10. Proximidade dos métodos em relação aos valores quantitativos. .................................... 59
Tabela 11. Comparação entre os métodos.......................................................................................... 60
vi
LISTA DE EQUAÇÕES
Equação 1 ........................................................................................................................................... 26
Equação 2 ........................................................................................................................................... 36
Equação 3 ........................................................................................................................................... 36
Equação 4 ........................................................................................................................................... 39
vii
RESUMO
VIEIRA, Leandro Alberto. Ferramenta para estimar valores faltantes em uma base de dados
na etapa de pré-processamento de um KDD. Itajaí, 2008. 84f. Trabalho de Conclusão de Curso
(Graduação em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar,
Universidade do Vale do Itajaí, Itajaí, 2008.
O atual crescimento da Tecnologia da Informação a redução do preço dos equipamentos tem
propiciado o armazenamento de grande base de dados. Porém a capacidade humana de compreender
uma grande quantidade de dados se torna extremamente difícil. Para auxiliar o processo de análise
surge uma área de pesquisa conhecida como KDD (Knowledge Discovery in Databases) que tem
por objetivo extrair conhecimento útil de conjuntos de dados. Dentre as etapas do KDD existe a
etapa de pré-processamento que tem como objetivo assegurar a qualidade dos dados selecionados
para que todo o processo do KDD tenha êxito nos seus resultados. Um dos principais problemas
encontrados nesta etapa é a existência de valores faltantes. A forma mais simples utilizada para o
tratamento de valores faltantes é remoção do registro, que implica na perda de informação. Neste
contexto este trabalho apresenta uma ferramenta para estimar os valores faltantes tanto qualitativo
quanto quantitativo desenvolvida em PHP utilizando os métodos de Raciocínio Baseado em Casos,
estatística com moda e média, e abordagens de Mineração de Dados utilizando a ferramenta
WEKA. O trabalho também apresenta o estudo comparativo entre os métodos RBC e estatístico e os
resultados obtidos pela ferramenta.
Palavras-chave: Descoberta de Conhecimento em Base de Dados. Mineração de dados. Préprocessamento.
viii
ABSTRACT
The current growth of the Information Technology and the reduction of the equipments price have
been propitious to the storage of great databases that can reach hundreds of terabytes of
information. However, the human capacity to analyze and to understand great amounts of data
makes it extremely difficult. To aid the analysis process a new research area appears, known as
KDD (Knowledge Discovery in Databases), which has the objective of extracting useful knowledge
from great groups of data. Among the stages of KDD there is the pre-processing stage that has as
objective to assure the quality of the selected data in order to make the whole process of KDD
successful in its results, being this stage that takes most of the time in the process. One of the main
problems found in this stage is the absence of values. The simplest and more used way for the
treatment of absent values is the removal of the registration that implicates in the information loss.
In this context this work introduces the creation of a tool to estimate the absent values - as
qualitative as quantitative – developed in PHP using the methods of Case-Based Reasoning,
statistic and approaches to Data Mining resorting to the WEKA tool. This document also presents
the comparative studies between the CBR methods and statistics, necessary concepts, the
implementation and the results obtained from this tool.
Keywords: Knowledge Discovery in Databases. Data Mining. Pre-processing.
ix
1. INTRODUÇÃO
A Tecnologia da Informação vem possibilitando cada vez mais o armazenamento de grandes
bases de dados. Sejam por tecnologias como SGBD (Sistemas Gerenciadores de Banco de Dados),
Internet, leitores de códigos de barras, sistemas de informação em geral são alguns exemplos de
recursos que vem proporcionando o aumento de inúmeras bases de dados sejam estas de natureza
comercial, administrativa, governamental e científica (GOLDSCHMIDT; PASSOS, 2005).
Devido à grande facilidade de se guardar grandes quantidades de dados, questões como “O
que fazer com todos esses dados armazenados?”, pois de nada adianta um grande volume de dados
disponíveis se eles não podem ser usados de forma útil.
Para atender esse contexto, surge uma nova área denominada KDD (Knowledge Discovery
in Databases) que em português significa Descoberta de Conhecimento em Bases de Dados. Uma
das definições mais conhecidas foi proposta por Fayyad et al. (1996 apud GOLDSCHMIDT;
PASSOS, 2005): “KDD é um processo, de várias etapas, não trivial, interativo e iterativo, para
identificação de padrões compreensíveis, válidos, novos e potencialmente úteis a partir de um
grande conjunto de dados”.
Segundo Goldschmidt e Passos (2005), o KDD pode ser dividido em três etapas que são:
1. Pré-Processamento: responsável pelas funções de captação, organização e tratamento
de dados;
2. Mineração de Dados: responsável por realizar buscas efetivas por conhecimentos
úteis em um KDD; e
3. Pós-Processamento: abrange o tratamento do conhecimento obtido pela etapa de
mineração de dados.
O grande objetivo da etapa de pré-processamento é assegurar a qualidade dos dados
selecionados para que todo o processo do KDD tenha êxito nos seus resultados, um fato importante
a ser salientado é que esta etapa é a que mais consome tempo em todo o processo na Descoberta de
Conhecimento em Base de Dados. Mais um dos grandes problemas desta etapa ocorre na parte de
tratamento de valores, pois é muito comum em grandes bases de dados haver valores faltantes. Os
motivos que levam a ocasionar valores faltantes são principalmente o erro humano, ou porque a
informação não estava disponível no momento dos levantamentos dos dados, entre outros fatores
que podem ocasionar este problema. A maneira mais simples para tratamento de valores faltantes é
eliminar o registro onde não se encontram os dados, só que isso implica a perda de informação
podendo acarretar uma má qualidade no resultado da aplicação de KDD, desta forma gerando
resultados insatisfatórios.
Devido aos fatores apresentados acima este projeto propõe a criação de uma ferramenta Web
para estimar os valores faltantes utilizando três técnicas para o tratamento dos valores, que são: (i)
estatística; (ii) Raciocínio Baseado em Casos (RBC); e (iii) Mineração de Dados (MD).
A aplicação do método estatístico se fará, inicialmente, pelo uso da média, ou seja, quando
houver um dado faltante este receberá a média dos outros valores. Esta é a forma mais simples e
algumas vezes utilizada, mas que não é recomendada, pois o uso da média pode não estimar o dado
faltante de forma coerente, devido à possibilidade de haver valores discrepantes na base de dados e
isso acarretaria em uma estimativa que não condiz com a realidade dos dados.
Segundo von Wangenheim e von Wangenheim (2003): “Raciocínio Baseado em Casos é
uma abordagem para a solução de problemas e para o aprendizado com base em experiência
passada. De uma forma simplificada, podemos entender o Raciocínio Baseado em Casos como a
solução de novos problemas por meio da utilização de casos anteriores já conhecidos”. A partir do
RBC este projeto pretende estimar os valores faltantes baseado em casos passados e que sejam
similares ao registro que está sendo analisado.
Quanto a Mineração de Dados, Carvalho (2001) define como: “O uso de técnicas
automáticas de exploração de grandes quantidades de dados de forma a descobrir novos padrões e
relações que, devido ao volume de dados, não seriam facilmente descobertos a olho nu pelo ser
humano”.
Através da ferramenta proposta para estimação dos valores faltantes, este trabalho tem como
outro objetivo destacar qual dos três métodos mencionados anteriormente proporcionam as
melhores estimativas ou ainda, de forma automática, distinguir qual dos métodos é o mais efetivo
em bases de dados específicas.
Esse projeto se justifica como um Trabalho de Conclusão de Curso para o curso de Ciência
da Computação por se tratar de uma solução que auxiliará na etapa de pré-processamento de dados
para um processo de KDD, utilizando técnicas de Inteligência Artificial.
2
1.1 PROBLEMATIZAÇÃO
1.1.1 Formulação do Problema
Um dos grandes problemas da etapa de pré-processamento ocorre na fase de tratamento de
valores, pois é muito comum em grandes bases de dados haver valores faltantes. Os motivos que
levam a ocasionar valores faltantes são principalmente o erro humano, ou porque a informação não
estava disponível no momento dos levantamentos dos dados, entre outros fatores que podem
ocasionar este problema. A maneira mais simples para tratamento de valores faltantes é eliminar o
registro onde não se encontram os dados, só que isso implica em perder informações podendo
acarretar uma má qualidade no resultado da aplicação de KDD, desta forma gerando resultados
insatisfatórios.
1.1.2 Solução Proposta
Este projeto propõe o desenvolvimento de uma ferramenta Web em PHP (Hypertext
Preprocessor). Esta ferramenta estima valores faltantes em uma base de dados visando auxiliar a
etapa de pré-processamento de um KDD. A ferramenta tem como principais funcionalidades:
·
Um analisador de arquivo que importa uma base de dados no formato CSV (CommaSeparated Values);
·
Apresentação das estimativas realizadas pelos métodos implementados.
Os métodos que serão implementados para a geração das estimativas são:
·
Estatístico: este trabalho se propõe a trabalhar apenas com a média para estimativa de
dados, outros métodos estatísticos não serão implementados;
·
RBC: através deste algoritmo estima-se os dados baseando-se em experiências passadas;
e
·
Mineração de Dados: para utilização de mineração de dados este trabalho propõe-se
integrar PHP com JAVA, com a finalidade de usar API´s do WEKA (Disponível para
download em http://www.cs.waikato.ac.nz/ml/weka), que estão disponíveis apenas para
tecnologia JAVA.
3
Estes métodos foram aplicados em uma base de dados com a finalidade de apoiar a etapa de
Pré-processamento de um KDD, visando fornecer ao usuário os dados estimados pelos três
métodos. O projeto visa também estipular qual dos métodos é o mais efetivo.
Para o usuário, após serem identificados os valores estimados, será apresentada uma tabela
com os registros que tiveram campos estimados, com uma caixa de seleção apresentando os valores
trazidos pelas estimativas.
1.2 OBJETIVOS
1.2.1 Objetivo Geral
O objetivo principal do trabalho consiste na construção de uma ferramenta para a etapa de
pré-processamento de KDD visando estimar os valores de dados faltantes em uma base de dados,
com aplicação de três métodos diferentes, que são: (i) Mineração de Dados; (ii) Raciocínio Baseado
em Casos; e (iii) método estatístico. O trabalho também visa comparar os três métodos procurando
descobrir qual é o mais efetivo, ou ainda, de forma automática, distinguir qual dos métodos é o mais
efetivo em bases de dados específicas.
1.2.2 Objetivos Específicos
Os objetivos específicos deste projeto são:
·
Pesquisar e analisar soluções similares;
·
Pesquisar os conceitos necessários para a implementação do projeto;
·
Pesquisar e estudar as tecnologias que serão envolvidas no projeto;
·
Definir os requisitos do sistema;
·
Criar a modelagem conceitual do sistema;
·
Implementar o sistema, tendo os seguintes módulos:
o Criação do Analisador de Arquivo;
o Módulo RBC;
o Módulo de Mineração de dados; e
o Módulo Estatístico.
4
·
Testar e validar o sistema; e
·
Documentar todas as etapas envolvidas na construção da ferramenta.
1.3 Metodologia
A metodologia adotada para desenvolvimento deste documento nesta fase do Trabalho de
Conclusão de Curso divide-se em cinco etapas:
·
Estudo: essa etapa teve como objetivo adquirir o conhecimento necessário, pesquisando
os conceitos e tecnologias necessárias para a execução do projeto além de pesquisar
soluções semelhantes. Os recursos utilizados no estudo são livros e outros trabalhos
realizados na área;
·
Modelagem: esta etapa detalhou o funcionamento do sistema proposto criando um
modelo conceitual que abrange análise e o projeto.
·
Desenvolvimento: a etapa de desenvolvimento detalha a construção da ferramenta seus
requisitos os problemas encontrados e as soluções encontradas.
·
Teste e Validação: esta etapa tem como principal objetivo testar e validar a aplicação
com intuito de verificar se a ferramenta compreende todos os requisitos estabelecidos e
verificar ainda a existência de problemas de implementação.
·
Documentação: esta etapa tem como principal objetivo documentar todo o processo de
pesquisa, a descrição do problema, a solução proposta, além dos testes feitos e os
resultados obtidos ao longo do trabalho.
1.4 Estrutura do trabalho
Este documento está estruturado em quatro capítulos.
O Capítulo 1, Introdução, apresenta uma visão geral sobre o que se propôs com este
trabalho.
O Capítulo 2, Fundamentação Teórica, apresenta o levantamento de dados necessários para
o entendimento e desenvolvimento da ferramenta proposta.
5
O Capítulo 3, Desenvolvimento, apresenta o desenvolvimento da ferramenta, os problemas
encontrados os resultados obtidos e a comparação entre os métodos.
Finalizando, o Capítulo 4, apresenta a conclusão deste trabalho.
6
2 FUNDAMENTAÇÃO TEÓRICA
O presente capítulo tem por objetivo apresentar a revisão bibliográfica sobre os conteúdos e
tecnologias a serem utilizadas durante o desenvolvimento. Na Seção 2.1 é apresentada uma visão
geral sobre o KDD e suas etapas. Já na Seção 2.2 é apresentada em especifico a etapa de Préprocessamento. Na Seção 2.3 é apresentado o tema chave deste trabalho que é o tratamento de
valores faltantes. Nas Seções 2.4 e 2.5 apresentam mais detalhes sobre os métodos utilizados neste
trabalho, sendo o RBC e Mineração de Dados respectivamente e seção 2.6 apresenta uma breve
descrição sobre a ferramenta WEKA. Na Seção 2.7 é descrito sobre soluções similares a solução
proposta neste trabalho.
2.1
DESCOBERTA
DE
CONHECIMENTO
EM
BASE
DE
DADOS
(KNOWLEDGE DISCOVERY IN DATABASES - KDD)
O grande avanço da tecnologia da informação tem permitido cada vez mais o
armazenamento de grandes volumes de dados, sendo possível devido aos dispositivos se tornarem
cada vez mais rápidos e com maior capacidade de armazenamento, além de se tornarem mais
baratos. Outras tecnologias como a Internet, Sistemas Gerenciadores de Banco de Dados (SGBD) e
sistemas de informação em geral também contribuem para a existência de base de dados cada vez
maiores. (GOLDSCHMIDT e PASSOS, 2005).
Segundo Goldschmidt e Passos (2005) grandes empresas, tais como Wal-Mart, Banco do
Brasil, Caixa Econômica Federal e grandes projetos científicos como missões espaciais da NASA e
o Projeto Genoma Humano são capazes de atingir bases de dados da ordem de centenas de terabytes
de informações.
Mas no mesmo ritmo em que a tecnologia da informação propicia esta proliferação de
enormes bases de dados, a capacidade humana de analisá-las e compreendê-las diminuem na mesma
proporção. Sendo então que, no meio dessa imensa massa de dados, pode haver informações úteis
que dificilmente serão identificadas e utilizadas por métodos tradicionais como planilha de cálculos
e relatórios informativos operacionais que servem basicamente para satisfazer as necessidades
rotineiras de uma empresa (BATISTA, 2003; GOLDSCHMIDT e PASSOS, 2005; SASSI, 2006).
Segundo Gardner (1998 apud OLIVEIRA 2000) a aplicação de Data Warehousing pode ser
considerada como uma das primeiras formas para tornar viável a análise em grande quantidade de
dados no apoio ao processo decisório. O objetivo deste é criação de um repositório que contenha
dados limpos para análise com ferramentas OLAP (On-Line Analytical Processing) sendo que este
tipo de ferramenta apresenta facilidade para realizar consultas complexas em base de dados
multidimensionais.
As ferramentas para analisar um Data Warehouse, geralmente são orientadas às consultas,
ou seja, é feita pelo usuário para que possa comprovar suas hipóteses ou fazer consultas aleatórias,
porém, o analista humano não é capaz de imaginar todas as relações e associações possíveis em
uma grande base de dados, o que impede que padrões escondidos nos dados sejam encontrados
(OLIVEIRA, 2000).
Devido a isto, surge a necessidade de uma nova geração de ferramentas e técnicas de
análises dirigidas por computador para auxiliar de maneira “inteligente” e automática (ou semiautomática) os analistas humanos na extração de novos conhecimentos em sua base de dados. Para
suprir esta necessidade surge uma área de pesquisa chamada KDD (Knowledge Discovery in
Databases) que em português significa Descoberta de Conhecimento em Bases de Dados.
(BATISTA, 2003; OLIVEIRA, 2000).
Uma das definições mais conhecidas foi proposta por Fayyad, Piatetsky-Shapiro e Smyth
(1996 apud GOLDSCHMIDT e PASSOS, 2005): “KDD é um processo, de várias etapas, não
trivial, interativo e iterativo, para identificação de padrões compreensíveis, válidos, novos e
potencialmente úteis a partir de um grande conjunto de dados”. Cabena (1997 apud SASSI, 2006)
define KDD como “descobrir conhecimento significa extrair, de grandes bases de dados, sem
nenhuma formulação prévia de hipóteses, informações relevantes e desconhecidas, que podem ser
utilizadas para a tomada de decisão.”
2.1.1 Etapas do KDD
Como definido anteriormente, o KDD é composto por várias etapas que exigem a atuação de
um analista humano, pois ao longo destas etapas é necessário tomar decisões, por isto sendo
chamado de um processo interativo. O processo de KDD é também iterativo pois pode haver
inúmeras repetições, seja ela parcial ou integral, das etapas de um KDD, para que através desse
8
refinamento possa se obter resultados mais satisfatórios. (GOLDSCHMIDT e PASSOS, 2005;
SASSI, 2006).
No processo de KDD existem geralmente três tipos de usuários, que são:
·
Analista de dados: este usuário tem conhecimento sobre o funcionamento nas técnicas e
ferramentas envolvidas no KDD.
·
Especialista no domínio: é aquele que conhece o domínio no qual será aplicado o KDD.
·
Usuário: é aquele que usará o conhecimento extraído do processo de KDD, sendo que o
usuário pode ser uma instituição, uma empresa ou um setor de uma empresa.
As etapas de um processo KDD são interligadas com o objetivo de que os resultados obtidos
em uma etapa possam ser utilizados para melhorar os resultados das etapas seguintes. Como
descrito por Sassi (2006) as etapas que compõe o processo de KDD são:
·
Compreensão do domínio da aplicação;
·
Seleção dos dados;
·
Pré-processamento dos dados;
·
Transformação dos dados;
·
Mineração de dados; e
·
Interpretação e avaliação do conhecimento.
A Figura 1 ilustra as etapas do KDD desde a seleção dos dados até a obtenção do
conhecimento:
9
Figura 1. Etapas do Processo KDD
Fonte: Adaptado de Sassi (2006).
As etapas de seleção de dados, pré-processamento e a transformação dos dados (Figura 1)
também denominada por preparação de dados, consomem entre 60 e 80% de todo o tempo
necessário para a efetuação do processo, sendo que grande parte deste tempo é consumida com a
limpeza dos dados, como descrito por Pyle (1999).
A Figura 2 demonstra o tempo despendido para cada etapa do processo, cabendo salientar o
grande esforço requerido para as etapas que antecedem a mineração de dados.
10
Figura 2. Tempo dispendido para cada etapa do KDD
Fonte: Adaptado de Sassi (2006).
2.1.1.1
Compreensão do Domínio de Aplicação
Esta etapa é importante pois é nela que se faz o levantamento de requisitos necessários para
que se possa atingir o objetivo esperado. O especialista do domínio e o analista trabalham em
conjunto visando definir o problema da melhor maneira possível, pois isto permite identificar se o
conhecimento extraído será útil (LOBO e KALIL, 2006).
Segundo Oliveira (2000) cada domínio de aplicação tem suas próprias peculiaridades, porém
alguns aspectos podem ser levados em conta com objetivo de se definir as ações a serem tomada,
como: Definição dos objetivos e dos requisitos da extração do conhecimento, Identificação das
possíveis fontes de dados, Incorporação do conhecimento extraído num sistema de tomada de
decisão e o estudo da viabilidade e custos da aplicação do processo. Após o entendimento do
domínio da aplicação deve-se preparar os dados para serem analisados na etapa posterior.
11
2.1.1.2
Seleção de Dados
Esta etapa é responsável por selecionar um conjunto de dados alvo dentre as bases existentes
no qual a descoberta de conhecimento será efetuada. A seleção de dados varia de acordo com os
objetivos estipulados pela empresa (OLIVEIRA, 2000).
Os dados comumente estão organizados em base de dados transacionais ou em um Data
Warehouse. Caso a organização seja dotada de um Data Warehouse deve-se verificar a
possibilidade de utilizar esta estrutura no processo de KDD. Nos outros casos é comum congregar
os dados selecionados em uma única tabela já que a maioria das técnicas de Mineração de Dados
supõe que os dados estejam organizados em uma grande estrutura tabular bidimensional.
Concluindo-se então que o processo de KDD pode ocorrer tendo ou não um Data Warehouse
(GOLDSCHMIDT; PASSOS, 2005).
Outra importância desta etapa é otimizar o tempo de processamento da etapa de mineração
de dados, já que o algoritmo minerador será executado apenas em subconjunto de dados relevantes
(OLIVEIRA, 2000).
2.1.1.3
Pré-Processamento
A grande função da etapa de pré-processamento é aprimorar a qualidade dos dados
selecionados, pois é bastante comum em aplicações reais onde se pretende aplicar o KDD que os
dados estejam incompletos, ruidosos, inconsistentes, duplicados, entre outros possíveis problemas
(GOLDSCHMIDT; PASSOS, 2005; BATISTA, 2003).
Vale salientar que a etapa de pré-processamento é de extrema importância para que o
processo de descoberta de conhecimento consiga extrair informações úteis, pois a qualidade dos
dados influi diretamente na qualidade dos modelos de conhecimentos gerados pelo KDD. Espera-se
então que a partir da etapa de pré-processamento a Mineração de Dados seja mais eficaz já que os
problemas encontrados nos dados tenham sido tratados antes da extração de novos conhecimentos.
(GOLDSCHMIDT; PASSOS, 2005).
Sendo o pré-processamento o foco principal deste trabalho esta etapa será mais detalhada na
seção 2.3.
12
2.1.1.4
Transformação dos Dados
O objetivo da etapa de transformação de dados é padronizar os dados para suprir possíveis
limitações das técnicas de Mineração de Dados a serem utilizadas no processo de KDD. Como
exemplificado por Batista (2003), muitos algoritmos de MD tem limitações em analisar certos tipos
de dados, tais como, atributos de data e hora. Quando o algoritmo minerador a ser utilizado não é
capaz de analisar certo dado, este geralmente é transformado em outra informação em que o
algoritmo de MD é capaz de analisar.
Sassi (2006) argumenta que o processo de KDD pode ser executado sem esta etapa, porém
quando a transformação de dados é utilizada, os resultados obtidos são mais intuitivos e geralmente
facilitam na construção do modelo de conhecimento.
As vantagens de se executar a etapa de transformação de dados são:
·
Melhor compreensão do conhecimento descoberto;
·
Facilitar o algoritmo de MD a tomar decisões globais; e
·
Reduzir o tempo de processamento da MD.
A desvantagem de se utilizar esta etapa é devida a diminuição da qualidade do
conhecimento a ser obtido, isto implica na perda de detalhes importantes sobre as informações
extraídas (SASSI, 2006).
2.1.1.5
Mineração de Dados
A mineração de dados é considerada a etapa mais importante de todo o processo de KDD, é
nesta etapa em que se decide quais os algoritmos serão utilizados nos dados para descoberta de
novos conhecimentos. As técnicas e algoritmos a serem aplicados para a construção de um modelo
são oriundos de diversas áreas do conhecimento, entre elas podem ser citadas: Aprendizado de
Máquina, Estatística, Redes Neurais, Banco de Dados, entre outras. Não é uma tarefa trivial definir
qual o melhor algoritmo para o problema, pois se sabe que nenhum algoritmo é ótimo para todas as
aplicações então para obtenção de melhores resultados as técnicas citadas podem ser combinadas.
(SASSI, 2006; BATISTA, 2003).
A etapa de mineração de dados será mais aprofundada na seção 2.6, já que este será um dos
métodos propostos pela ferramenta para estimar os dados.
13
2.1.1.6
Interpretação e Avaliação do Conhecimento
Após a etapa de MD os padrões extraídos devem ser validados, para que isto ocorra os
usuários envolvidos em todo o processo de KDD devem interpretar o conhecimento extraído através
de ferramentas estatísticas e de visualização que permita interpretar de forma precisa os resultados
obtidos, para assim poder verificar se o conhecimento extraído é útil ou é irrelevante. Caso isso
ocorra, deve-se refazer as etapas anteriores com intuito de melhorá-las, sendo que esta iteração pode
ser feita até que os resultados obtidos sejam relevantes ou que não seja possível descobrir
conhecimento útil dos dados (OLIVEIRA, 2000).
2.2 PRÉ-PROCESSAMENTO DE DADOS
Geralmente grandes bases de dados onde se deseja aplicar o KDD são propensas a ter dados
faltantes, ruidosos ou inconsistentes. Dados faltantes são informações ausentes em determinados
atributos, dados ruidosos ou outliers, são dados errados ou que contenham valores discrepantes e
dados inconsistentes é quando existe alguma discrepância semântica entre si. (GOLDSCHMIDT;
PASSOS, 2005).
Batista (2003) descreve que, apesar de muitos algoritmos de MD serem projetados para
manipular os dados em situações como mencionadas anteriormente, os algoritmos mineradores
podem obter resultados mais significativos caso a maioria dos problemas já tenham sido corrigidos
ou removidos.
O grande objetivo do pré-processamento é garantir e aprimorar a qualidade dos dados
obtidos da etapa de seleção de dados já que a qualidade dos dados influi diretamente no
conhecimento a ser extraído (BATISTA, 2003).
Pré-processamento de dados pode ser considerado como um processo semi-automático, ou
seja, depende geralmente da capacidade do analista de dados identificar anomalias nos dados, além
de utilizar métodos que sejam mais adequados para cada tipo de problema (BATISTA, 2003).
Batista (2003) propõe classificar os métodos a serem empregados nas tarefas em dois
grupos:
·
Tarefas fortemente dependentes do conhecimento do domínio: tarefas deste tipo podem
ser realizadas apenas com uso do conhecimento específico do domínio, ou seja, um
14
método automático pode ser aplicado em tarefas fortemente dependentes do
conhecimento de domínio, desde que um conhecimento específico seja fornecido.
·
Tarefas fracamente dependentes do conhecimento do domínio: esse tipo de tarefa utiliza
métodos que extraem dos próprios dados as informações precisas para tratar o problema
de pré-processamento. Cabe-se evidenciar que mesmos essas tarefas ainda dependem do
conhecimento de domínio devido à escolha do método para tratar o problema, porém
essas tarefas utilizam métodos mais automáticos que as tarefas fortemente dependentes
do conhecimento do domínio. Exemplos deste tipo de tarefa pode se citar o tratamento
de valores faltantes e a identificação de outliers, entre outros.
Sendo que o grupo de tarefas fracamente dependentes do conhecimento do domínio engloba
o tratamento de valores faltantes, principal tema do trabalho, pois através dos próprios dados já
existentes é possível extrair as informações necessárias para o problema de pré-processamento.
2.2.1 Tratamentos de valores ausentes
Como o objetivo deste trabalho é estimar os valores faltantes a partir da própria base de
dados serão abordados alguns métodos utilizados para este tipo de problema que são
(GOLDSCHMIDT; PASSOS, 2005):
·
Exclusão de Casos: este método exclui os registros que possuam pelo menos um valor
ausente, embora simples não é o método mais adequado quando a quantidade de valores
faltantes varia significativamente pois se tem o risco de sobrarem poucas tuplas com
todos os atributos preenchidos.
·
Preenchimento manual de valores: uma maneira de se implementar este método é
pesquisar junto aos dados originais procurando encontrar os valores ausentes, sendo que
após os valores sejam encontrados eles devem ser preenchidos manualmente. Devido a
isto, esta abordagem se torna inviável em grandes bases de dados que possuam muitos
valores ausentes. Geralmente este método consome muito tempo e recurso.
·
Preenchimento com valores globais e constantes: consiste em substituir informações
ausentes por um valor padrão que é especificado pelo especialista no domínio, porém
alguns algoritmos mineradores podem “entender” esse padrão como valores recorrentes
importantes prejudicando o processo de KDD.
15
·
Preenchimento com métodos estatísticos: este método pode ser utilizado como
alternativa ao método anterior que substitui os valores faltantes por constantes padrões.
O autor cita como exemplo de medidas estatísticas a média para valores numéricos e a
moda para atributos categóricos.
·
Preenchimento com métodos de mineração de dados: através de métodos de mineração
de dados como Redes Neurais, Modelos Bayesianos e Árvores de decisão podem-se
criar modelos preditivos para que possa indicar possíveis valores para o preenchimento
de valores ausentes. Este método comparado aos apresentados anteriormente utiliza os
dados existentes para predizer os valores faltantes.
2.2.2 Tratamento de valores inconsistentes
Essa função tem como objetivo identificar e remover valores inconsistentes. Valores
inconsistentes ocorrem quando dados diferentes são referenciados pelo mesmo rótulo, ou quando
rótulos diferentes são representados pelo mesmo dado. Esse tipo de problema pode acontecer em
uma única tupla ou em várias. Um exemplo de valor inconsistente é quando, para aprovar certo
crédito, a pessoa precisa ter uma renda acima de um valor X. Se na base de dados existam pessoas
com renda menor do que o permitido, este seria um valor inconsistente, sendo que neste tipo de
problema se faz necessário a presença de um especialista no domínio da aplicação
(GOLDSCHMIDT e PASSOS, 2005; BATISTA, 2003).
Goldschmidt e Passos (2005) citam dois métodos para o tratamento de valores inconsistentes
que são:
·
Exclusão de dados: compreende em eliminar da base de dados os registros que possuam
ao menos um valor inconsistente sendo que estes dados podem ser encontrados através
de consultas SQL (Structure Query Language) com as restrições devidas para a
identificação de inconsistências.
·
Correção de erros: objetiva em substituir os dados inconsistentes, através de correção
manual ou utilizando comandos de atualização para um determinado número de registro.
16
2.2.3 Exclusão dos valores não pertencentes ao domínio
Goldschmidt e Passos (2005) consideram essa função como um caso particular da limpeza
de inconsistência, sendo que esta função consiste em eliminar valores que não pertencem ao
domínio dos atributos fazendo-se necessário o conhecimento prévio do domínio de cada atributo.
Os autores apresentam os seguintes métodos para resolução deste problema:
·
Exclusão de casos: compreende em eliminar registros que possuam valores fora do
conjunto de valores válidos uma forma de se obter os valores inválidos é através de
consultas SQL.
·
Correção de erros: objetiva em substituir os valores inválidos, através de correção
manual ou utilizando comandos de atualização para um determinado número de registro.
2.3 Tratamento de valores ausentes
Qualidade de dados é um dos fatores primordiais para que o processo de KDD obtenha
sucesso, já que a qualidade do conhecimento a ser extraído esta diretamente ligada ao conjunto de
dados de entrada no qual será aplicado o KDD (BATISTA, 2003).
Um dos principais agravantes para a falta de qualidade nos dados são os valores
desconhecidos. Os valores desconhecidos ocorrem por diversos motivos, tais como, erro humano,
recusa de pessoas em disponibilizar certos dados, defeitos em equipamento em caso de sistemas
automatizados, entre outros. É comum em base de dados a presença de valores ausentes sendo que
geralmente os analistas de dados tratam essa questão de maneira bastante simplista, porém isto pode
ocasionar anomalias no conhecimento a ser obtido (ibidem).
Segundo o autor supracitado na maioria das vezes os atributos de um conjunto de dados
possuem relações entre si, o que possibilita determinar aproximações para os valores ausentes
através da identificação de relações entre esses atributos. Através da técnica de imputação de dados
é possível estimar valores para substituição de valores ausentes, o uso desta técnica possibilita que o
tratamento de valores ausentes seja independente do algoritmo de aprendizagem a ser utilizado,
viabilizando então que o analista de dado escolha o método de tratamento de valores ausentes mais
apropriado para cada conjunto de dados.
17
Cabe salientar que o tratamento de valores ausentes deve ser bem planejado, pois quando
este processo é realizado de forma inadequada pode inserir nos dados características que não
condizem com a realidade, causando distorções no conhecimento a ser extraído (LOBO e KALIL,
2006).
2.3.1 Aleatoriedade dos valores ausentes
Batista (2003) cita que um dos fatores mais relevantes para a seleção do método de
tratamento de valores ausentes é analisar aleatoriedade dos mesmos. A classificação da
aleatoriedade é feita conforme os valores estão distribuídos. Na sua forma mais comum, os valores
ausentes estão distribuídos aleatoriamente nos dados, isso implica em que a probabilidade de
encontrar um valore ausente é a mesma para qualquer valor do atributo. Já quando ocorre dos
valores não estarem aleatoriamente distribuído a probabilidade de encontrar um valor desconhecido
pode depender, do valor verdadeiro não conhecido do atributo.
A seguir serão apresentados alguns gráficos para a melhor compreensão sobre a
aleatoriedade dos dados. Na Figura 3 é apresentado um gráfico mostrando a renda média das
esposas perante as rendas médias dos maridos. O gráfico representa o conjunto de dados original
onde os valores ausentes são representados pelo quadrado (õ) e os valores conhecidos pelo sinal de
mais (+).
18
Figura 3. Conjunto de dados original
Fonte: Adaptado de Freedman, Pisani e Purves (1998 apud BATISTA, 2003).
Algumas vezes os valores desconhecidos podem não estar aleatoriamente distribuídos sobre
os dados. Como no exemplo citado por Batista (2003), é comum que pessoas com renda mais alta, e
possivelmente, com um grau mais alto de escolaridade, se rejeitam a responder perguntas sobre sua
renda. Supondo que os valores desconhecidos representados pelo quadrado (õ) são os maridos que
se recusaram a responder a pergunta sobre a sua renda, desta maneira a probabilidade de se ter um
valor ausente é proporcional à renda do marido.
Existem diversos métodos para tratar os valores ausentes. Entre eles está a imputação por
média sendo uma das abordagens deste trabalho. Nesse método substitui-se os valores ausentes pela
média de rendas dos maridos. Este método é bastante arriscado já que pode distorcer os dados,
inserindo falsos padrões e modificando a relação entre os atributos, o que acontece nesse caso já
que os valores ausentes são mais prováveis em maridos com rendas mais altas, como é possível
notar na Figura 4 (BATISTA, 2003).
19
Figura 4. Imputação por média dos atributos
Fonte: Adaptado de Freedman, Pisani e Purves (1998 apud BATISTA, 2003).
Outro método é a utilização do algoritmo K-VIZINHOS MAIS PRÓXIMO, sendo este
também um dos métodos a serem implementados neste trabalho. No caso apresentado por Batista
(2003), este algoritmo pode ser utilizado para estimar os valores ausentes através das relações entre
os atributos. Através da Figura 5 é possível notar que os resultados se aproximam mais do conjunto
de dados original, além de preservar parte das relações entre os atributos.
20
Figura 5. Imputação pelo algoritmo do Vizinho Mais Próximo
Fonte: Adaptado de Freedman, Pisani e Purves (1998 apud BATISTA, 2003).
O grau de aleatoriedade pode ser dividido em três classes de mecanismos que são: Processo
Completamente Aleatório (Missing Completly at Random, MCAR), Processo Aleatório (Missing At
Random, MAR) e Processo Não Aleatório (Missing Not At Random, MNAR) Little (2002 apud
BATISTA, 2003).
·
MCAR – Ausentes de forma completamente aleatória: os valores ausentes de forma
completamente aleatória ou MCAR possuem o mais alto grau de aleatoriedade. Isto
acontece quando os valores ausentes de um atributo, não estão relacionados com os
valores desses atributos nem com os valores de qualquer outro atributo do conjunto de
dados. Os valores MCAR dificilmente são encontrados em problemas práticos
(BATISTA, 2003).
21
·
MAR – Ausentes de forma aleatória: segundo o autor os valores MAR acontecem
quando os valores ausentes de um atributo não estão relacionados com os valores desse
atributo, pois dependem de valores de um ou mais atributos do conjunto de dados.
·
MNAR – Ausentes de forma não aleatória: os valores MNAR ocorrem quando a chance
de possuir um valor ausente para um atributo depende dos valores do atributo com
valores ausentes e geralmente dos valores dos demais atributos do conjunto de dados,
sendo então que este pode depender do valor do atributo (BATISTA, 2003).
2.3.2 Métodos para o tratamento de valores ausentes
São vários os métodos existentes para o tratamento de valores ausentes. Litle e Rubin (2002
apud BATISTA, 2003) dividem os métodos de tratamento de valores ausentes em três classes que
são descritas a seguir:
·
Ignorar e descartar dados: são dois os métodos mais conhecidos para descartar dados
com valores ausentes. O primeiro é chamado de análise de casos completos que consiste
em destacar qualquer caso que possua um ou mais valores ausentes. Embora seja um
método simples e que facilita a análise dos dados o emprego deste método pode causar
perda de informação podendo atingir diretamente na precisão e no potencial das
estimações. O segundo método é chamado de descarte de casos e/ou atributos sendo que
este método tem por objetivo determinar a quantidade de valores ausentes em cada
atributo. Após isso se remove os atributos com grandes quantidades de valores ausentes.
Ambos as técnicas citadas acima devem ser utilizadas apenas quando os valores ausentes
estão aleatoriamente distribuídos (BATISTA, 2003; GONÇALVES e OLIVEIRA,
2005).
·
Estimativa de parâmetros: segundo Desmpster, Laird e Rubin (1977 apud BATISTA,
2003):
Procedimentos ML (Maximum Likelihood) são utilizados para estimar parâmetros de um
modelo definido para os valores observados dos dados. Procedimentos ML que utilizam
variações do algoritmo EM (Expectation Maximization) podem estimar parâmetros de um
modelo na presença de valores ausentes.
·
Imputação de dados: Tem como objetivo substituir valores faltantes por valores
estimados. As abordagens mais simples são métodos estatísticos como média para
22
valores quantitativos e moda para valores qualitativos, porém este método pode causar
distorções nos dados. Existem métodos mais sofisticados que estimam os valores usando
as relações entre os atributos já que podem ser identificadas nos dados.
2.4 RACIOCÍNIO BASEADO EM CASO
Raciocínio Baseado em Casos (RBC) é uma técnica de Inteligência Artificial que visa
resolver novos problemas recuperando e adaptando experiências passadas. Essas experiências são
chamadas de casos que são armazenadas em uma base. A partir da base de casos é possível
recuperar os casos passados buscando encontrar e adaptar soluções anteriores para resolver um
novo problema (VON WANGENHEIM e VON WANGENHEIM, 2003; MIRANDA; SANTOS,
2005).
RBC é uma técnica para resolução de problemas que se diferencia em alguns aspectos de
forma fundamental de outros enfoques da Inteligência Artificial Aamodt e Plaza (1994 apud VON
WANGENHEIM e VON WANGENHEIM, 2003). Em vez de se basear exclusivamente do
conhecimento geral de um domínio do problema ou realizar associações contendo relações
generalizadas entre descritores de problemas e conclusões, RBC utiliza-se do conhecimento
específico de soluções de problemas que já foram experimentadas anteriormente. Outro diferencial
do RBC é a técnica de aprender com incremento, ou seja, quando uma nova experiência é adquirida
esta é armazenada para que possa ser utilizada para outros problemas (VON WANGENHEIM e
VON WANGENHEIM, 2003; MIRANDA e SANTOS, 2005).
Von Wangenheim e von Wangenheim (2003) descrevem as seguintes características básicas
de um RBC:
·
Representação de Conhecimento: no RBC o conhecimento é representado em forma de
casos que descrevem experiências passadas. Também se necessário podem ser
armazenados outros conhecimentos do domínio da aplicação, como por exemplo, casos
abstratos e generalizados, tipos de dados, modelos de objetos usados como informação;
·
Medida de Similaridade: quando encontrado na base de casos um caso relevante para o
problema deve-se ser capaz de responder à pergunta quando um caso relembrado for
semelhante ao novo problema;
23
·
Adaptação: dificilmente experiências passadas representadas como casos são idênticas
ao problema atual. Sistemas de RBC avançados são capazes de adaptar os casos
recuperados completamente com o objetivo de satisfazer às características do problema
atual; e
·
Aprendizado: sempre que o sistema RBC resolver um problema com sucesso, o sistema
deverá ser capaz de reter a nova experiência com o intuito de utilizá-las em problemas
futuros.
2.4.1 O ciclo RBC
Existem várias abordagens para o processo de RBC um dos modelos mais conhecidos é o
ciclo de RBC proposto por Aamodt e Plaza (1994 apud VON WANGENHEIM e VON
WANGENHEIM, 2003), que é composto por quatro mecanismos principais como ilustrado pela
Figura 6, abaixo uma breve descrição de cada mecanismo:
·
Recuperação: é responsável por recuperar o(s) caso(s) mais similar (es) da base de
dados, sendo necessário uma indexação adequada para que se possa recuperar casos de
forma eficiente;
·
Reutilização: esta tarefa consiste em identificar as diferenças entre os casos similares e o
problema atual e analisar partes do caso recuperado que podem ser incorporadas no
problema corrente;
·
Revisão: envolve em verificar se a solução proposta satisfaz as novas especificações; e
·
Retenção: esta tarefa tem como objetivo armazenar a experiência nova ou partes dela
para que possa ser reutilizado em novos problemas.
24
Figura 6. Ciclo RBC.
Fonte: Aamodt e Plaza (1994 apud VON WANGENHEIM; VON WANGENHEIM,
2003).
2.4.2 O Algoritmo K-Vizinho mais Próximos
O algoritmo K-Vizinho mais Próximo é um algoritmo de aprendizagem conceitualmente
simples que visa aprender conceitos representados tanto por atributos quantitativos quanto
qualitativos, sendo uma técnica simples e não são necessários muitos cálculos para compreendê-la.
Primeiro deve-se identificar as características essenciais para a solução do problema, sendo que
estas devem ser representadas por algum sistema de coordenadas, de maneira que a medida de
distância entre o novo caso e os casos armazenados possam ser medidas. (BATISTA 2003,
MIRANDA e SANTOS, 2005).
Segundo Lagemann (1998), “os aspectos de definição e identificação dos índices é fator
fundamental para uma recuperação de sucesso”. Assegurando estes aspectos, a técnica de busca
indicará em qual região do espaço de busca o novo problema está incluído, o próximo passo é
encontrar os casos mais similares usando comparação e valorização.
A similaridade entre o novo caso e um caso armazenado na base de casos é determinado
para cada atributo. Para obtenção desta medida deve ser multiplicado por um fator peso e a
somatória de todos os atributos, assim é possível determinar o grau de similaridade entre os casos
25
armazenados com o caso atual (KOSLOSKY, 1999). Abaixo na Equação 1 é apresentado à fórmula
da similaridade:
n
Similaridade (N, F) =
å f (Ni, Fi) * wi
Equação 1
i =1
Sendo, na fórmula acima:
·
N = Novo Caso;
·
F= Casos armazenados na base de casos;
·
n= Número de atributos;
·
i= Atributo individual variando de 1 a n;
·
f = Função de similaridade para o atributo i nos casos N e F; e
·
w= Peso do atributo i;
Este cálculo será repetido para toda base de casos, para determinar seu ranking, as
similaridades podem variar entre o intervalo de 0 (Sem similaridade) e 1 (Similaridade exata).
A técnica do vizinho mais próximo é utilizada para determinar a similaridade, grande parte
das ferramentas a utilizam. Esta técnica é mais indicada para quando a base de casos é pequena e
contenham poucos atributos indexados, por causa da quantidade de cálculos necessários para
determinação de cada atributo indexado e cada um dos casos (MIRANDA; SANTOS, 2005).
2.5 Mineração de Dados
Vários autores tratam MD e KDD como sinônimos, cabe salientar que este projeto trata a
MD como uma etapa do processo de KDD.
Conforme Pitoni (1998), a MD é o processo de análise de um conjunto de dados com o
intuito de encontrar informações úteis e não triviais, para isto utiliza-se de métodos matemáticos,
heurísticas e algoritmos. A MD é uma etapa de um processo maior e mais abrangente conhecido
como KDD.
26
Segundo Figueira (1998): “Data Mining define o processo automatizado de captura e análise
de enormes conjuntos de dados, para então extrair um significado”.
Já para Carvalho (2001) define MD como “o uso de técnicas automáticas de exploração de
grandes quantidades de dados de forma a descobrir novos padrões e relações que, devido ao volume
de dados, não seriam facilmente descobertos a olho nu pelo ser humano.”
Polito (1997 apud MIRANDA e SANTOS, 2005) enfatiza que uma empresa que emprega a
utilização da MD está a frente das outras, pois é capaz de obter vantagens, tais como:
·
Criar parâmetros para entender o comportamento do consumidor;
·
Identificar afinidades entre as escolhas de produtos e serviços;
·
Prever hábitos de compra; e
·
Analisar comportamentos habituais para se detectar fraudes.
2.5.1 Técnicas de Mineração de Dados
Figueira (1998) destaca que muitas das técnicas de MD iniciaram nas décadas de 80 e 90 na
área de Inteligência Artificial (IA). Porém, apenas agora passaram a ser utilizadas em sistemas de
banco de dados de grande escala, devido a vários fatores que aumentaram o valor líquido da
informação, entre os principais estão:
·
A expansão e a difusão de sistemas transacionais volumosos;
·
A informação como vantagem competitiva; e
·
A difusão de tecnologia de informação escalável.
Kremer (1999) diz que cada técnica de MD possui tarefas onde são melhores aplicáveis, em
seu trabalho são apresentadas as seguintes técnicas de MD: (i) Análise de seleção; (ii) MBR
(Memory-Based Reasoning – Raciocínio Baseado em Memória); (iii) Algoritmo Genético; (iv)
Detecção de Agrupamento; (v) Análise de vínculos; (vi) Árvore de Decisão e Indução de Regras;
(vii) Redes Neurais Artificiais.
27
2.5.2 Tarefas desempenhadas por técnicas de Mineração de Dados
As técnicas de MD podem ser aplicadas em classificação, estimativa, associação,
agrupamento e sumarização.
Classificação
Segundo Carvalho (2001), esta é uma das tarefas mais utilizadas em MD devido a ser uma
das tarefas cognitivas humanas para auxiliar a compreensão do meio em que vivemos.
Para Harrison (1998), a tarefa de classificação consiste em construir um modelo que possa
ser aplicado em um conjunto de dados não classificado objetivando categorizá-los em classes. Um
dado é analisado e classificado em uma classe definida.
Exemplos comuns de tarefas de classificação: classificar clientes em pedidos de crédito
como de baixo, médio e alto risco; esclarecer pedidos de seguros fraudulentos, entre outros;
(CARVALHO, 2001).
Estimativa
A estimativa tem como objetivo determinar algum valor mais provável diante de dados já
existentes ou de dados semelhantes sobre o qual se tem conhecimento (CARVALHO, 2001).
Harrison (1998) diz que a estimativa é utilizada para definir um valor para alguma variável
desconhecida, como, por exemplo, receita, altura ou saldo da conta bancária. Sendo que a
estimativa trabalha com resultados contínuos e a classificação com resultados discretos.
Exemplos de estimativas podem ser: estimar o número de filhos em uma família; estimar a
renda de um cliente; estimar o tempo de vida do cliente, entre outros (HARISSON, 1998).
Associação
A tarefa de associação de forma geral tem como objetivo identificar quais itens estão
propensos ocorrerem em uma mesma transação. Este tipo de tarefa costuma-se ser utilizada por
cadeias de varejo que querem saber quais tipos de produtos costumam ser adquiridos juntos para
que assim possam ser disponibilizados próximos um ao outro. Essa tarefa pode ser considerada bem
definida, determinística e simples, sendo que esta diferente da tarefa de classificação não envolve
predição (ibidem).
28
Segmentação
A segmentação ou agrupamento é uma tarefa descritiva que procura classificar um conjunto
finito de agrupamentos a partir do conjunto de dados, sendo assim atributos similares é agrupado
em uma mesma segmentação. Cabendo salientar que nesta tarefa não existe classes predefinidas, ou
seja, os registros são agrupados pela semelhança, sendo assim diferente da tarefa de classificação
(ibidem). Exemplos de segmentação podem ser agrupar os clientes por região do país, agrupar
clientes por comportamento similar, entre outros.
Sumarização
A tarefa de sumarização utiliza métodos para encontrar uma descrição compacta para um
subconjunto de dados. Um exemplo desta tarefa é a definição da média e do desvio padrão para
todos os itens dos dados. Métodos melhores envolvem a derivação de regras de sumarização e
técnicas de visualização Fayyad et al. (1996 apud REZENDE, 2005).
2.6 Ferramenta WEKA
O WEKA (Waikato Environment for Knowledge Analysis) é uma ferramenta de KDD que
contém uma série de algoritmos de preparação de dados, de mineração de dados (clusterização,
segmentação e classificação) e de validação de resultados. Sendo que esta é uma ferramenta de
código aberto desenvolvida em Java pela universidade de Waikato na Nova Zelândia.
Conforme o estudo de Lobo e Kalil (2006) a ferramenta possui quatro implementação de
interface diferentes, que permite utilizar seus algoritmos com chamadas de código JAVA. As
interfaces são:
·
Simple CLI: a interação do usuário com a ferramenta ocorre por linhas de comando,
exige que o usuário tenha um bom domínio do aplicativo, mas de contraponto é
extremamente flexível e ágil.
·
Explorer: é a interface comumente mais utilizada, sendo que esta separa as etapas de
pré-processamento, mineração de dados e pós-processamento.
·
Experimenter: consiste em um ambiente de experimentação, onde é possível utilizar
testes estatísticos para verificar o desempenho de diferentes algoritmos de MD.
29
·
KnowledgeFlow: é uma ferramenta gráfica que possibilita o planejamento de ações na
construção de um fluxo de processos de um KDD.
Para analisar os dados no WEKA é necessário que os dados estejam em um formato
conhecido como ARFF (Attribute Relation File Format) este é um arquivo ASCII utilizado para
identificar atributos e seus valores. Abaixo é descrito a estrutura do arquivo ARFF (Figura 7):
·
Sintaxe: @relation <Nome da relação> - Descreve o assunto representado pelos dados.
·
Sintaxe: @attribute <Nome do Atributo> <Tipo ou conjunto de atributos> - Informa
quais são os atributos e os valores que o atributo pode assumir.
·
Sintaxe: @data (é preenchido os valores nas linhas conforme Figura 7) – Informa os
valores de cada caso, sendo estes representados pelas linhas e na sequência da
declaração dos atributos.
Figura 7. Estrutura do arquivo ARFF
O Weka permite a visualização dos dados em histogramas, e a apresentação dos resultados
em árvores de decisão, diagramas de dispersão e disponibiliza também modelos gráficos para a
construção de redes neurais (LOBO e KALIL, 2006). A Tabela 1 apresenta as principais
funcionalidades do WEKA.
30
Tabela 1. Principais Funcionalidades da Ferramenta WEKA.
Características
Valores
Acesso a Fontes Heterogêneas
Sim
Integração de Conjunto de Dados
Não
Facilidade para inclusão de Novas Operações
Sim
Facilidade para inclusão de Novos Métodos
Sim
Recurso para Planejamento de Ações
Sim
Processamento Paralelo/Distribuído
Não
Operações/ Métodos
Disponíveis
Visualização de Dados
Distribuição de Frequências;
Medidas de Dispersão;
Histogramas.
Redução de Dados
Amostragem
Limpeza de Dados
Substituição
Codificação de Dados
Discretização automática e
manual
Classificação
Árvores de Decisão, Bayes, Redes
Neurais, entre outros.
Clusterização
Simple-Kmeans, CobWeb,
FatherFrist.
Simplificação de Resultados
N/D
Organização de Resultados
Agrupamento de Padrões;
Ordenamento de Padrões;
Apresentação de Resultados
Conjunto de Regras; Árvores de
Decisão
Estruturas para Armazenamento de Métodos de Conhecimento
Sim
Estruturas para Armazenamento de Históricos de Ações
Sim
Fonte: Adaptado de Lobo e Kalil (2006).
2.7 Trabalhos Similares
Foram estudadas duas soluções similares, a primeira solução apresentada na subseção 2.7.1
que é uma tese defendida por Batista (2003) onde visa tratar valores faltantes através do algoritmo
K-Vizinho Mais Próximos e método estatístico através de média e moda e o sistemas C4.5 e CN2
onde se pretende comparar os métodos. No Trabalho de Conclusão de Curso apresentada na
subseção 2.7.2 , Lobo e Kalil (2006) fizeram experimentos com o método J4.8 que é um modelo de
31
predição, também utilizaram a média como método de imputação, através destes métodos eles
pretendiam imputar dados em um conjunto de informações de contribuintes fiscais. Também
fizeram dois estudos comparativos, sendo o primeiro, o comparativo entre os dois métodos citados
anteriormente em base de dados distintas e o segundo aplicação de diferentes ferramentas de
mineração de dados, entre elas o Weka, uma das ferramentas a serem utilizadas no trabalho.
2.7.1 Pré-processamento em Aprendizado de Máquina Supervisionado
A tese defendida por Batista (2003) tem como objetivo tratar dois problemas de préprocessamento de dados que são: (i) Tratamento de valores desconhecidos; e (ii) Tratamento de
conjuntos de dados com classes desbalanceadas.
Como método de imputação de valores desconhecidos o trabalho utiliza-se do algoritmo KVizinho Mais Próximos que segundo Batista (2003) o desempenho deste algoritmo supera o
desempenho de outros métodos tais como os métodos de imputação pela média ou moda e pelos
sistemas C4.5 e CN2.
Para o tratamento de conjunto de dados com classes desbalanceadas o trabalho utilizou o
método de seleção unilateral, no que implica na remoção dos casos pertencentes à classe
majoritária, mantendo os casos da classe minoritária. Essa remoção tem como objetivo identificar e
remover casos que possam ser menos confiáveis (ibidem, 2003).
No trabalho de Batista (2003), foi proposta a criação de um ambiente para préprocessamento de dados. Este ambiente computacional recebeu o nome de DLE (Discover Learning
Environment) que é um framework para desenvolver e avaliar novos métodos de pré-processamento
de dados, o ambiente DLE também conta com uma biblioteca para implementação de métodos de
pré-processamento de dados denominada de DOL (Discover Object Library). O trabalho também
propôs uma sintaxe para conjunto de dados que recebeu o nome de DSX (Discover Dataset Sintax)
que oferece suporte a diversos tipos de dados e a indução construtiva apoiada pelo usuário.
Através da pesquisa feita por Batista (2003) observou-se alguns aspectos, tais como:
métodos de imputação estimam valores mais bem comportados que os valores reais seriam. Nos
experimentos realizados por Batista (2003) quando existia um ou mais atributos com alta correlação
(informações similares no conjunto de dados) com os atributos que continham valores
32
desconhecidos, o indutor C4.5 na maioria da vezes obteve melhores resultados que o método de
imputação.
2.7.2 Um Estudo de Caso do Impacto da Imputação de Dados na Mineração de
Dados
O trabalho proposto por Lobo e Kalil (2006) tem como objetivo classificar a partir de
técnicas de mineração de dados um conjunto de informações de contribuintes fiscais em três
categorias: omisso, evasor e bom. Porém nem todas as informações são preenchidas o que gera
valores desconhecidos, para solucionar este problema, no trabalho foi utilizado dois métodos de
imputação de dados. O primeiro método J4.8, implementa o método de imputação conhecido como
modelo de predição. O outro método utilizado foi a imputação via filtro ReplaceMissingValues, que
utiliza o método de imputação da média. O trabalho também realizou dois estudos comparativos. O
primeiro com cinco bases de dados distintas com: valores ausentes (300 registros), valores
imputados pelo algoritmo J4.8 (300 registros), valores imputados pelo filtro ReplaceMissingValues
(300 Registros), com a base de dados original e com a base limpa. O segundo é realizado aplicando
as ferramentas de mineração de dados WEKA, WizWhy, WizRule e See5, utilizando as bases de
dados citadas acima.
33
3 DESENVOLVIMENTO
3.1 REQUISITOS DE SOFTWARE
O objetivo de requisitos de software é descrever suas funcionalidades, comportamento em
situações específicas e atributos demonstrando de forma geral o software a ser desenvolvido.
Requisito de software são uma descrição dos principais recursos de um produto de
software, seu fluxo de informações, comportamento e atributos. Em suma, um requisito de
software fornece uma estrutura básica para o desenvolvimento de um produto de software.
O grau de compreensibilidade, precisão e rigor da descrição fornecida por um documento
de requisitos de software tende a ser diretamente proporcional ao grau de qualidade do
produto resultante (PEDRYCZ; PETERS 2001).
3.1.1 Requisitos funcionais
A partir das funcionalidades desejadas para a ferramenta proposta, os seguintes requisitos
funcionais foram levantados:
·
RF01. O sistema permite estimar dados pelos métodos de RBC, Método Estatístico e
geração do arquivo ARFF.
·
RF02. A ferramenta permite importar/Salvar um conjunto de dados no formato CSV
(Valores separados por vírgulas);
·
RF03. A ferramenta permite visualizar os resultados obtidos separadamente por cada
algoritmo proposto;
·
RF04. A ferramenta permite refinar o método RBC atribuindo pesos aos atributos além
de apresentar os resultados pelo método RBC com peso padrão;
·
RF05. A ferramenta permite excluir registros e/ou atributos;
·
RF06. A ferramenta deverá permite selecionar os métodos a serem usados; e
·
RF07. A ferramenta permite trocar a classificação do atributo (Qualitativo para
Quantitativo e Quantitativo para Qualitativo).
3.1.2 Requisitos não funcionais
Os requisitos não funcionais levantados são descritos abaixo:
34
·
RNF01. A ferramenta foi implementada em PHP (Hypertext Preprocessor);
·
RNF02. Para importação do conjunto de dados o arquivo deve estar no formato CSV; e
·
RNF03. A ferramenta destaca os resultados obtidos pelos métodos de imputação;
3.1.3 Regras de Negócio
As regras de negócio identificadas para a ferramenta são descritas abaixo:
·
RN01. Para refinar o algoritmo de RBC os pesos permitidos estão na faixa de 0 a 9.
·
RN02. A estimativa por método estatístico deverá usar moda para valores qualitativos e
média para valores quantitativos.
3.2 Método Estatístico
Uma das formas mais comuns de estimar dados é através de métodos estatísticos, entre estes
métodos a média e a moda. A média é utilizada para estimar valores quantitativos (ex. Renda
Mensal) e moda para valores qualitativos (ex. sexo), porém existe um problema em usar estes
métodos, já que pode haver valores discrepantes na base de dados que podem distorcer os valores
obtidos. Este projeto implementou os dois métodos descritos, e na seção 3.6 mostra os resultados
obtidos.
No método estatístico média utilizou-se a média padrão, onde se soma todos os valores e
divide-se pelo número de linha onde não existem valores faltantes, sendo que o resultado da média
é atribuído aos valores faltantes do atributo quantitativo em questão.
No método moda conta-se o caso que mais aparece e a moda é atribuída ao valor faltante do
atributo qualitativo em questão. Na ferramenta, caso exista empate entre os registros, o valor
estimado é o primeiro que mais apareceu.
Nesta etapa do projeto foi encontrado o seguinte problema nem todas as variáveis numéricas
podem ser estimados pela média. Um exemplo deste caso seria um atributo que tivesse o CEP, que
no caso é composto apenas por números. A ferramenta identifica como um valor qualitativo e fazia
a média, que no caso fazia a média dos CEP’s distorcendo totalmente este atributo. Para solucionar
este tipo de problema foi criado um metadado para cada atributo, onde o usuário pode optar por
qualitativo ou quantitativo.
35
3.3 Método RBC
RBC é uma técnica de Inteligência Artificial que visa resolver novos problemas recuperando
e adaptando experiências passadas (VON WANGENHEIM e VON WANGENHEIM, 2003;
MIRANDA e SANTOS, 2005). Através da similaridade é possível identificar o caso mais similar
entre o novo caso e o caso armazenado, sendo que o que tiver o maior grau de similaridade é o caso
mais próximo.
Na ferramenta a base de casos é a própria base de dados, onde cada linha em que houver um
valor faltante vira um novo caso, sendo aplicado o algoritmo Vizinho Mais Próximo, representado
pela Equação 2:
n
å P .Similaridade(CN , CB )
i
Similaridade (CN, CB) =
i
Equação 2
i
i =1
n
åP
i
i =1
Onde caso o valor seja quantitativo será aplicado o seguinte cálculo, de acordo com a
Equação 3:
æ | CN - CB | ö
1- ç
÷* p
Similaridade (CN, CB) =
è MaxV - MinV ø
Equação 3
·
CN = Caso Novo;
·
CB = Caso da Base;
·
MaxV = Maior valor do atributo;
·
MinV = Menor valor do atributo;
·
P= Peso do atributo.
Exemplo do cálculo quantitativo, supondo que o MaxV = 200 e o MinV = 50;
Similaridade (120,90) = 1-(|120-90|/ (200-50))
36
Similaridade (120,90) = 1-(30/150) = 1- 0,2
Similaridade (120,90) = 0,8
Então o grau de similaridade entre o CN (Caso Novo) e o CB (Caso da Base) é igual a 0,8,
sendo que o grau de similaridade pode variar na escala de 0 (Sem Similaridade) a 1 (Similaridade
Absoluta).
Caso o valor seja qualitativo:
Se CN=CB, 1
Similaridade (CN, CB) =
Se CN≠CB, 0
Neste caso se o CN (Caso Novo) for igual ao CB (Caso da Base) o grau de similaridade é 1,
e em caso contrário, o grau de similaridade é 0.
Exemplo de como é determinado Ranking supondo que a base de dados fosse o apresentado
na Figura 8.
1º Registro:
Similaridade (Superior, Fundamental)= Superior é igual a Fundamental = 0;
Similaridade (1100, 800) = 1 - ((1100-800)/(1300-800)) = 0,4;
Similaridade (M, F) = M é igual a F = 0;
Similaridade (Própria, Própria) = Própria é igual a Própria = 1;
É realizado, então, o somatório dos valores de acordo com a Equação 2, para determinar o
ranking e a linha que tiver o maior grau de similaridade substitui os valores faltantes do novo caso.
O somatório do primeiro registro seria então:
Similaridade (CB, CN) = ((0*1) + (0,4*1) + (0*1) + (1*1)) = 1.40/5 = 0.28;
O somatório do segundo registro seria então:
Similaridade (CB, CN) = ((0*1) + (0,61*1) + (1*1) + (0*1)) = 1.61/5 = 0.32;
Desta forma o resultado mais similar seria o segundo registro, e o atributo idade receberia o
valor 47.
37
Sendo que caso não encontre na primeira iteração o valor faltante, ou seja, a linha que tenha
maior grau de similaridade não possua um dado para substituição ele faz a segunda iteração, caso
não encontre, a ferramenta apresenta como valor não encontrado.
No módulo RBC foram implementados dois métodos, sendo eles o RBC padrão em que
todos os atributos recebem peso 1 e o RBC peso, em que o usuário pode atribuir pesos de 0 a 9 para
os atributos, desta forma refinando a estimativa. Vale salientar que o RBC peso (utiliza peso) e o
RBC padrão (não utiliza peso) são termos criados que valem apenas para diferenciar os algoritmos,
sendo que na literatura não se encontra desta maneira.
Nesta etapa foram testados outros algoritmos, o primeiro e mais simples era comparar o
somatório de cada atributo do registro da base de dados comparado com o somatório do CN (Caso
Novo), sendo que o valor que mais se aproximou era considerado o caso mais similar, sendo então
em que os valores contidos neste caso substituíam os valores faltantes do CN (Caso Novo). Pode ser
ressaltado que, quando houvesse valores qualitativos era criado um metadado para estes valores, na
Figura 8 é apresentando um exemplo desta solução:
Figura 8. Exemplo do método RBC em que faz o somatório dos atributos.
Neste caso, o primeiro registro é o CN (Novo Caso) e os outros dois registros são à base de
casos, então como explicado anteriormente os valores dos registros são somados, e no exemplo o
segundo registro da base de dados foi o que mais se aproximou do CN (Caso Novo), então o caso
em questão que tem um valor faltante no atributo idade recebeu o valor do registro 2, que no
exemplo é o 47. Esta solução foi descartada por não tratar de forma eficaz os valores qualitativos.
Outro algoritmo testado foi o cálculo da distância euclidiana, representada pela Equação 4,
onde x = CN (Caso Novo) e Y =CB (Caso da Base)
38
Similaridade (x, y) =
n
å (x i - y i ) 2 ,
i=1
Equação 4
Esse cálculo é aplicado em toda base para definir o ranking, e o que tiver o maior valor é
considerado o registro com maior similaridade. Porém este algoritmo se torna tendencioso quando
existe um valor discrepante na base, pois, na simulação feita este cálculo na maioria das vezes
resolveu o problema com o caso que tinha um atributo com um valor discrepante. Desta forma este
método não atendeu as necessidades da ferramenta.
3.4 Método MD
O objetivo da MD é encontrar informações úteis e não triviais em uma grande base de
dados, através de métodos matemáticos, algoritmos, entre outros. A MD é aplicada quando existe
um grande volume de dados, pois se torna extremamente complexo para o ser humano analisar
(CARVALHO, 2001; PITONI, 1998).
Uma ferramenta muito difundida e utilizada é a ferramenta WEKA, essa ferramenta conta
com vários algoritmos para preparação dos dados, MD e validação dos resultados, sendo que o
WEKA permite utilizar seus algoritmos com chamadas de código JAVA.
Neste projeto foi proposto estimar os dados por um algoritmo de MD do WEKA, fazendo a
integração do PHP com o Java, sendo que através da integração seria possível fazer chamadas de
código Java, e utilizar o algoritmo de MD do WEKA.
Seguindo o artigo publicado por Rodrigues (2004), para integração do PHP com o Java, na
plataforma Windows, é necessário ter instalado na máquina o J2SDK (Java Software Development
Kit) a DLL (Dynamic Link Library) php_java.dll e o JAR (Java Archive) php_java.jar. A máquina
onde foi feito o desenvolvimento da ferramenta tinha instalado na máquina o EASYPHP versão
2.0b1 sendo a versão do PHP a 5.2.0 a do “Apache 2.2.3” e a do “J2SDK 1.4.2_17” os arquivos
“php_java.dll” e o “php_java.jar” estavam no diretório “C:\Arquivos de programas\EasyPHP
2.0b1\php5\ext”. Após o ambiente instalado como requerido pelo artigo, o 2º passo era descomentar
a linha extension=php_java.dll no arquivo de configuração php.ini e no mesmo arquivo alterar as
linhas indicadas pela
Figura 9:
39
[Java]
java.class.path = "C:\php5\ext\php_java.jar;C:\php5\java_class"
java.home = "C:\j2sdk1.4.2_17\bin"
java.library = "C:\j2sdk1.4.2_17\jre\bin\server\jvm.dll"
java.library.path = "C:\php5\ext"
Figura 9. Configuração no arquivo php.ini.
Fonte: Adaptado de Rodrigues (2004).
·
java.class.path: é o caminho onde se encontra o JAR (php_java.jar) e suas classes Java;
·
java.home: é o caminho onde o Java SDK foi instalado;
·
java.library: é o caminho onde se encontra a Java Virtual Machine (JVM) para rodar as
classes Java; e
·
java.library.path: é o caminho onde se encontra a DLL (php_java.dll).
Após executar estes passos, finalizou-se a parte de configuração, e o artigo propõe fazer o
seguinte teste, criação de uma classe Java com métodos get e set apresentado na Figura 10:
public class JavaPHP {
private String nome = null;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
}
Figura 10. Classe Java teste para integração com o PHP.
Fonte: Rodrigues (2004).
Essa classe foi implementada em um editor de texto e salva como JavaPHP.java. Após isso,
foi compilada através do comando Javac JavaPHP.java no DOS (Disk Operating System), e criado
um arquivo compilado com a extensão class, que no caso é o JavaPHP.class. Cabe salientar que o
arquivo compilado deve estar dentro do diretório java.class.path, indicado no arquivo de
configuração php.ini, conforme
Figura 9.
O próximo passo foi criar o código em PHP que vai invocar os métodos da classe Java,
como ilustrado na Figura 10. O código PHP é apresentado Figura 11:
40
Figura 11. Código PHP para invocar os métodos da classe Java.
Fonte: Rodrigues (2004).
Porém quando foi executado ocorreu um problema com o Apache apresentado na
Figura 12:
Figura 12. Tela de erro do Apache no momento da integração.
No log de erros do apache não notificava nenhum erro e no relatório de erros do Windows
os dados apresentados são os mostrados na Figura 13:
Figura 13. Dados no log de eventos do Windows referente ao Apache.
A integração também foi testada com o EASYPHP 1.8 sendo a versão do PHP 4.3.10 e a do
Apache 1.3.33, na mesma máquina onde foi desenvolvido o sistema. E também foi instalado
separadamente o PHP 5.2.0 e o Apache 2.2.8 em outra máquina, porém o erro persistiu.
Devido aos problemas citados acima não foi possível fazer a integração do PHP com Java,
sendo que este risco foi levantado no TCCI. Desta maneira o algoritmo de MD não foi utilizado
neste trabalho e a ferramenta trata os valores faltantes com o método estatístico e o método RBC. A
solução levantada para este risco era de fazer manualmente a estimativa de valores através do Weka
para não prejudicar o comparativo entre os métodos, porém o algoritmo JRip utilizado para
predição de dados. Não manipula valores quantitativos, como descrito na seção 3.4.2 Na seção 3.6.4
é apresentado os valores qualitativos estimados manualmente na ferramenta Weka através do
41
algoritmo JRip. Cabe salientar que o arquivo ARFF para manipulação dos dados no Weka é gerado
pela própria ferramenta (seção 3.4.1 ), a partir dos dados importados pela ferramenta de estimativa.
3.4.1 Gerador de arquivo ARFF
Para analisar os dados no Weka é necessário que os dados estejam no formato ARFF como
mencionado na seção 2.6, sendo que a ferramenta gera automaticamente o arquivo ARFF para a
utilização no Weka.
O arquivo ARFF é gerado a partir dos dados importados pelo usuário pela ferramenta, sendo
que quando existe um espaço entre os dados, o espaço é substituído por underline “_“. Por exemplo,
caso um atributo REGIAO, tivesse dados como REGIAO I, REGIAO II e REGIAO III, e fosse
aberto pela ferramenta Weka, ocorreria erro exibido na Figura 14, avisando que existem rótulos
duplicados. Devido a isto os dados onde tem espaço em branco são substituídos por underline “_“,
sendo então que no caso explicado acima os dados seriam modificados para REGIAO_I,
REGIAO_II e REGIAO_III, e desta forma o Weka consegue reconhecer o arquivo.
Figura 14. Erro ao abrir o arquivo pelo Weka quando existem rótulos duplicados.
3.4.2 Utilizando a ferramenta Weka
Nesta seção será explicado como utilizar a ferramenta Weka para minerar dados através do
algoritmo de classificação JRip ou RIPPER (Repeated Incremental Pruning to Produce Error
Reduction), sendo que este algoritmo gera regras, possibilitando estimar os valores faltantes.
Deve-se abrir a ferramenta Weka, conforme tela apresentada pela Figura 15, e clicar em
Applications
Explorer:
42
Figura 15. Tela inicial da ferramenta Weka.
Na tela de pré-processamento do Weka, é possível escolher filtros para o conjunto de dados,
também conta com uma pré-visualização dos dados. Para abrir o arquivo ARFF gerado pela
ferramenta basta clicar no botão Open File e selecionar o arquivo ARFF.
43
Na Figura 16 na tela de pré-processamento pode-se verificar os dados importados pelo
arquivo ARFF, as guias de algoritmos de MD foram habilitadas, assim como a guia de visualização
dos resultados. No caso apresentado será utilizado o algoritmo JRip que está localizado na guia
“Classify”, conforme demonstrado na Figura 16.
Figura 16. Tela de pré-processamentos de dados do Weka com conjunto de dados importados.
44
Na Figura 17 é apresentada a tela de algoritmos de classificação, sendo possível escolher o
algoritmo a ser usado, as opções de testes e em qual atributo será aplicado o algoritmo.
Figura 17. Tela dos algoritmos de classificação do Weka.
45
Para escolher o algoritmo deve-se clicar no botão “Choose” conforme Figura 18, abrir a
pasta “Rules” e optar pelo algoritmo JRip. Após a escolha do algoritmo, pode-se optar pelos
métodos de teste, que no caso foi escolhido a opção “Cross-validation” e depois escolher o atributo
para que o algoritmo JRip possa construir as regras, logo após deve-se clicar no botão “Start”, e os
resultados são apresentados no “Classifier output” conforme Figura 19.
Figura 18. Algoritmos de classificação.
46
Na Figura 19 são apresentadas as regras geradas pelo algoritmo JRip, e a partir deles é
possível estimar os valores faltantes.
Figura 19. Regras geradas pelo Algoritmo JRip.
Nas regras geradas pelo JRip, apresentadas na Figura 19, para um dos atributos da tabela
exemplo (FT01_CODREP), sendo que a base de dados utilizada para este exemplo contém 18
atributos com 200 linhas. Desta forma, para substituir os valores faltantes desta tabela, seria
necessário verificar na linha faltante: se atributo FT01_CODCLI fosse igual a 13944, o atributo
FT01_CODREP da linha faltante seria o valor 442, e assim por diante, porém é um processo
extremamente complexo, já que para cada atributo da tabela, teriam que ser geradas as regras no
algoritmo JRip, sendo este um dos fatores que inviabilizaram a implementação do algoritmo de MD
na ferramenta proposta, pois o tempo dispendido para essa tarefa seria muito grande e tornaria a
ferramenta extremamente lenta. Outro fator que inviabilizou foi que algoritmo JRip no Weka não
consegue manipular valores quantitativos (Figura 20), sendo que desta forma limitaria muito a
ferramenta se a mesma não pudesse estimar valores qualitativos.
47
Figura 20. Erro ao manipular valores qualitativos.
3.5 Funcionamento da ferramenta
Nesta seção será apresentado o funcionamento da ferramenta de estimativa, além dos
requisitos estabelecidos na seção 3.1.
Na Figura 21 é mostrada a tela para selecionar o arquivo de dados no formato CSV de
acordo com o RF02. Para selecionar o arquivo com a base de dados no formato CSV deve-se clicar
no botão “Procurar...”, e após a seleção do arquivo, clicar no botão “Avançar =>”.
Figura 21. Tela do sistema para importar o arquivo CSV.
Na Figura 22 é mostrada a tela de informações sobre o processamento dos dados, onde se
podem selecionar os métodos de RBC padrão, RBC com Pesos, Estatístico ou/e a geração do
arquivo ARFF, de acordo com o RF06. Os checkbox marcados que aparecem ao lado de cada
registro e ao lado de cada atributo são os dados que irão ser processados. Caso o usuário opte por
excluir um registro ou/e um atributo basta desmarcar o checkbox, sendo que os itens desmarcados
não serão processados. Esta funcionalidade contempla o RF05.
48
N
Ú
M
E
R
O
D
E
R
E
G
I
S
T
R
O
S
E
X
C
L
U
S
Ã
O
D
E
R
E
G
I
S
T
R
O
S
Figura 22. Tela de informações sobre o processamento.
49
Nos metadados é apresentado uma pré-identificação das classes dos dados (QUALItatitvo ou
QUANTItativo), sendo que o usuário pode trocar a classificação do atributo quando for necessário
como no caso apresentado na seção 3.2. Este requisito está de acordo com o RF07, e um exemplo é
mostrada na Figura 23.
Figura 23. Classificação dos atributos
Na tela de Informações sobre o processamento (Figura 22) o usuário também pode atribuir
pesos aos atributos no intervalo de 0 a 9. No caso de utilizar o RBC com pesos, este requisito é
referente ao RF04.
50
Após configurar da maneira desejada, deve-se clicar no botão “Processar =>”, para que a
ferramenta estime os valores. Na Figura 24 é apresentado a tela de resultados, onde o usuário pode
verificar os valores obtidos pelos algoritmos escolhidos, sendo que esta funcionalidade contempla o
RF01 e o RF03. O usuário, após verificar os resultados, pode salvá-los no formato CSV. Para isto,
basta clicar no botão “Exportar CSV”. Cabe salientar que os dados que serão exportados serão os
selecionados no Combo Box, sendo que esta funcionalidade está de acordo com RF02.
Figura 24. Tela de apresentação dos resultados.
3.6 Teste e validação
A base de dados utilizada para validar e testar o sistema é uma base de dados encontrada na
ferramenta Weka, o arquivo weather.arff, que foi transformado em CSV e importado pela
ferramenta. Essa base foi escolhida por fins didáticos, pois abrange o que pode ser feito pela
ferramenta sendo que a mesma apresenta valores qualitativos e quantitativos. Abaixo é apresentado
na Tabela 2 o conjunto de dados original, sendo que os dados contidos nela são sobre o clima, e
servem para verificar se o clima favorece as condições necessárias para a prática do golfe.
51
Tabela 2. Tabela de dados originais.
Fonte: Extraído dos exemplos de conjunto de dados do Weka.
A partir da base de dados citada acima, foi retirado aleatoriamente alguns valores, para que
assim pudesse ser feito o teste e a validação da ferramenta. A Tabela 3 apresenta a base de dados
com os valores faltantes.
Tabela 3. Base de dados com os valores faltantes.
Esta tabela de dados foi transformado em CSV e importado pela ferramenta proposta, sendo
submetido ao teste. Foram escolhidos os algoritmos Estatístico, RBC padrão e o RBC com pesos. A
52
seguir são mostrados os resultados obtidos e o quanto os valores estimados pela ferramenta se
aproximaram dos valores originais.
3.6.1 Resultados obtidos pelo método estatístico
Na Figura 25 são apresentados os resultados obtidos pela ferramenta:
Figura 25. Resultados Obtidos pela ferramenta - Método Estatístico.
A comparação dos dados estimados pela ferramenta e os dados originas são apresentados na
Tabela 4, sendo que os valores em negrito representam a proximidade dos valores estimados com os
valores da tabela original:
53
Tabela 4. Proximidade dos valores obtidos pelo Método Estatístico.
No geral o índice de proximidade foi de 63%.
3.6.2 Resultados obtidos pelo método RBC padrão
Na Figura 26 são apresentados os resultados obtidos pela ferramenta:
Figura 26. Resultados Obtidos pela ferramenta - Método RBC padrão.
A comparação dos dados estimados pela ferramenta e os dados originais são apresentados na
Tabela 5, sendo que os valores em negrito representam a proximidade dos valores estimados com os
valores da tabela original.
54
Tabela 5. Proximidade dos valores obtidos pelo Método RBC padrão
O índice de proximidade geral foi de 68%.
3.6.3 Resultados obtidos pelo método RBC com peso
Na Figura 27 são apresentados os resultados obtidos pela ferramenta pelo método RBC com
peso, sendo que os valores atribuídos aos atributos são mostrados na Tabela 6.
Tabela 6. Pesos Atribuídos aos Atributos - RBC Peso
55
Figura 27. Resultados Obtidos pela ferramenta - Método RBC com Peso.
A comparação dos dados estimados pela ferramenta e os dados originais são apresentados na
Tabela 7, sendo que os valores em negrito representam a proximidade dos valores estimados com os
valores da tabela original:
Tabela 7. Proximidade dos valores obtidos pelo Método RBC com peso
No geral o índice de proximidade foi de 76%.
56
3.6.4 Resultados obtidos pelo método de MD
Na Tabela 8 são apresentados os resultados obtidos pelo algoritmo JRip feito manualmente
na ferramenta Weka, sendo que neste caso os valores estimados são apenas valores qualitativos, já
que o mesmo não consegue manipular valores quantitativos como descrito na seção 3.4.2
Tabela 8. Valores obtidos pelo algoritmo JRip.
A regra gerada pelo algoritmo JRIP para o atributo previsão, está representada na
28, desta maneira os valores faltantes do atributo Previsão o valor atribuído é chuvoso.
Figura 28. Regra para a previsão.
57
Figura
A regra gerada pelo algoritmo JRIP para o atributo vento, está ilustrada na Figura 29, desta
maneira os valores faltantes do atributo vento o valor atribuído será de acordo com a regra. Sendo
que se a Umidade for maior ou igual a 90 o valor atribuído será verdadeiro, caso contrário o valor é
falso.
Figura 29. Regra para o atributo vento.
Na Figura 30 é apresentada a regra gerada pelo algoritmo JRIP, sendo que para os valores
faltantes do atributo Jogar? o valor atribuído foi Sim.
Figura 30. Regra para Jogar?
58
A comparação dos dados estimados pela ferramenta e os dados originais são apresentados na
Tabela 9, sendo que os valores em negrito representam a proximidade dos valores estimados
com os valores da tabela original.
Tabela 9. Proximidade dos valores obtidos pelo algoritmo JRip
No geral o índice de proximidade foi de 45%, porém neste caso este valor é relacionado aos
valores qualitativos. Na Tabela 10 é apresentado o desempenho de todos os métodos com relação
aos valores qualitativos, sendo que neste caso os valores obtidos pelo algoritmo JRip foi muito
parecido com o método estatístico.
Tabela 10. Proximidade dos métodos em relação aos valores quantitativos.
3.6.5 Comparação entre os métodos
No caso apresentado o melhor método foi o RBC com peso no qual o índice de proximidade
chegou perto de 76% no geral, enquanto o RBC padrão ficou aproximadamente com 68% e o
método estatístico como era esperado ficou abaixo dos dois métodos com 63%, sendo que os
resultados apresentados são da tabela apresentada na seção 3.6. Também foi testado em uma base
59
de dados real que continha 248 registros e 17 atributos sendo que esta base de dados foi retirada do
sistema ERP (Enterprise Resource Planning) de uma empresa de contabilidade a tabela é referente
ao movimento de contas a receber. Para efeito de teste foi retirado 30% dos valores desta tabela
aleatoriamente sendo que os resultados foram os seguintes, o método estatístico no geral se
aproximou 30% dos valores reais, o RBC com peso neste caso teve um desempenho menor que o
RBC padrão, sendo que o RBC com peso se aproximou 47% dos valores reais e o RBC padrão se
aproximou 61%. O desempenho neste caso piorou em relação ao primeiro teste descrito
anteriormente, porque em um dos atributos os dados não se repetiam, sendo que neste caso não
existiu acerto de nenhum dos algoritmos.
Um fato interessante é que em alguns atributos das bases de dados testadas o melhor método
foi à média, no caso quando os valores eram qualitativos em com poucos tipos de dados, sendo que
quando o atributo estava dessa maneira o resultado foi melhor com a moda. Desta maneira um
método híbrido entre os algoritmos implementados na ferramenta pode trazer resultados mais
satisfatórios. Para exemplificar esta situação ver na Tabela 11, qual os métodos tiveram os melhores
resultados para atributos diferentes. Nesta amostra que é uma tabela com 13 atributos e 248
registros, o RBC padrão teve o melhor índice geral com 61%, o RBC peso 60% e o método
estatístico 48%, o resultado pode ser melhorado se utilizar um método híbrido com os melhores
resultados para cada atributo que neste o índice geral de acerto chegaria a 64%.
Tabela 11. Comparação entre os métodos.
Atributo
Tipo
CodFil
CodTpt
SeqMov
CodTns
VctPro
VlrAbe
CodFrj
VlrLiq
NumCco
SeqCco
UsuGer
DatGer
HorGer
Qualitativo
Qualitativo
Qualitativo
Qualitativo
Qualitativo
Quantitativo
Qualitativo
Quantitativo
Qualitativo
Qualitativo
Qualitativo
Qualitativo
Qualitativo
RBC Peso
Acerto (%)
92%
83%
85%
84%
1%
68%
59%
55%
66%
34%
75%
52%
22%
RBC Padrão
Acerto (%)
92%
90%
82%
87%
1%
71%
61%
58%
71%
33%
83%
46%
25%
60
Estatístico
Acerto (%)
97%
81%
94%
95%
0%
35%
21%
33%
78%
16%
53%
22%
4%
Melhor Método
Estatístico
RBC Peso
Estatístico
Estatístico
RBC Peso e Padrão
RBC Padrão
RBC Padrão
RBC Padrão
Estatístico
RBC Peso
RBC Padrão
RBC Peso
RBC Padrão
A partir dos resultados apresentados pode-se concluir que de modo geral o método RBC é
melhor que o método estatístico. Porém como demonstrado na Tabela 11, esse resultado depende de
alguns fatores como o tipo do atributo, pois o método estatístico em alguns atributos teve um
resultado melhor que os métodos de RBC peso e padrão, sendo que na maioria das vezes os
atributos eram qualitativos e se repetiam bastante e desta forma o método estatístico moda foi
melhor. Quanto ao RBC padrão e RBC com peso, depende de o usuário conhecer ou não a base de
dados, pois caso os pesos sejam distribuídos erroneamente pode acabar prejudicando a estimativa de
dados no RBC com peso.
61
4 CONCLUSÕES
O projeto propôs criar uma ferramenta para estimar valores faltantes na etapa de préprocessamento de um KDD, visando auxiliar a resolver este problema que é comum ocorrer em
bases de dados. Os valores faltantes podem acarretar em distorções no conhecimento extraído pelo
processo de KDD, já que este é tratado muitas vezes com a exclusão do registro onde se tem um
valor faltante, porém isso implica na perda de informação, sendo assim, pretende-se com uso da
ferramenta proposta estimar esses valores faltantes para que não se perca informações e para que se
possam obter resultados mais precisos com o processo de extração de conhecimento. Outro objetivo
proposto pelo projeto foi comparar os métodos com o intuito de se descobrir qual deles é o mais
eficaz.
Pode-se concluir através dos testes efetuados que o método RBC é mais eficaz que o método
estatístico, como esperado. Cabe ressaltar que em alguns casos o método estatístico teve resultados
superiores aos métodos de RBC, sendo que nestes casos, os atributos eram qualitativos e os dados
se repetiam bastante, desta forma o método estatístico moda teve resultados melhores. Em relação
ao RBC padrão e o RBC com peso depende do conhecimento do usuário sobre a base de dados, ou
seja, se os pesos forem distribuídos de forma errada, ele irá afetar o desempenho do RBC com peso,
então na utilização do método RBC com peso é necessário que o usuário tenha domínio sobre a
base de dados.
Este trabalho apresentou conceitos de KDD e suas etapas, entre elas a etapa de préprocessamento e mineração de dados e os métodos de estimativa propostos. Também foi
apresentada a especificação do projeto, onde foram especificados os requisitos e funcionalidades da
ferramenta. Conclui-se então que os objetivos previstos foram alcançados, apesar dos riscos de
integração com Java, levantado no TCC I, ter ocorrido e não possibilitando a implementação do
método MD na ferramenta.
A partir deste trabalho é esperado que problemas como valores faltantes sejam solucionados
através da ferramenta e espera-se que a ferramenta possa auxiliar diversos trabalhos na área de
mineração de dados.
Para trabalhos futuros poderiam ser implementados novos métodos de estimativa de dados,
também poderia ser feito um estudo sobre o impacto dos valores estimados em relação à base de
dados originais aplicando a um processo KDD. Outro trabalho futuro é fazer com que a ferramenta
trabalhe diretamente com o banco de dados. Poderiam também ser tratado, os valores ruidosos,
conhecidos também como outliers, que são valores discrepantes em uma base de dados, também
sendo comum ocorrer em grandes bases de dados, já que a ferramenta apresentada trata somente os
valores faltantes.
63
REFERÊNCIAS BIBLIOGRÁFICAS
BATISTA, Gustavo Enrique de Almeida Prado Alves. Pré-processamento em aprendizado de
máquina supervisionado. 2003. Disponível em:
<http://www.teses.usp.br/teses/disponiveis/55/55134/tde-06102003160219/publico/TeseDoutorado.pdf>. Acesso em: 21 set. 2007.
BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com uml. Rio de Janeiro:
Campus, 2002.
CARVALHO, Luís Alfredo Vidal de. Datamining: a Mineração de Dados no marketing, medicina,
economia, engenharia e administração. São Paulo: Érica, 2001.
MIRANDA, Elisangela Maschio de; SANTOS, Fernando Gomes dos. Raciocínio Baseado em
Casos. In: FERNANDES, Anita Maria da Rocha. Inteligência Artificial: noções gerais.
Florianópolis: VisualBooks, 2005. p. 27-55.
FIGUEIRA, Rafael Medeiros Andrade. Miner: um software de inferência de dependências
funcionais. Trabalho de Conclusão (Graduação em Ciência da Computação) - Departamento de
Ciência da Computação, Instituto de Matemática, Universidade Federal do Rio de Janeiro, Rio de
Janeiro, 1998.
GOLDSCHMIDT, Ronaldo; PASSOS, Emmanuel Lopes. Data mining: um guia prático. Rio de
Janeiro: Elsevier, 2005. 2ª Reimpressão.
GONÇALVES, Ana Flávia Vilhena; OLIVEIRA, Fabiola Pantoja. Imputação de dados no
contexto de mineração de dados. 2006. Disponível em:
<www.cci.unama.br/margalho/portaltcc/tcc2005/PDF/018.pdf >. Acesso em: 30 out 2007.
HARRISON, Thomas H. Intranet Data Warehouses. São Paulo: Berkley Brasil, 1998.
LAGEMANN, Gerson Volney. RBC para o problema de suporte ao cliente na empresas de
prestação de serviço de software: o caso Datasul. 1998. Disponível em:
<http://www.eps.ufsc.br/disserta98/lagemann/>. Acesso em: 30 out. 2007.
LOBO, Rafaela da Silva; KALIL, Rosana Ceres E. Um estudo de caso do impacto da imputação
de dados na Mineração de Dados. 2006. Disponível em:
<http://www.labes.ufpa.br/portaltcc/principal/Tcc/action.do;jsessionid=999DC987DE35106FF7BC
13192FD24AE3?Act=download&id=63>. Acesso em: 05 set. 2007.
KOSLOSKY, Marco Antônio Neiva. Aprendizagem Baseado em Casos: Um Ambiente para
Ensino de Lógica de Programação. 1999. Disponível em:
<http://www.eps.ufsc.br/disserta99/koslosky/>. Acesso em: 30 out. 2007.
KREMER, R. Sistema de apoio à decisão para previsões genéricas utilizando técnicas de Data
Mining. Trabalho de Conclusão (Graduação em Ciência da Computação) - Curso de Ciências
Exatas, Instituto de informática, Universidade Regional de Blumenau. Blumenau, 1999.
64
OLIVEIRA, Robson Butaca Taborelli de. O processo de extração de conhecimento de base de
dados apoiado por Agentes de Software. Disponível em:
<http://www.teses.usp.br/teses/disponiveis/55/55134/tde-23092001231242/publico/dissertacao_minador.pdf>. Acesso em: 01 out. 2007.
PEDRYCZ, Witold; PETERS, James F. Engenharia de software: teoria e prática. Rio de Janeiro:
Elsevier, 2001.
PITONI, Rafael Moreira. Mineração de regras de associação nos canais de informação do
direto. Trabalho de Conclusão (Graduação em Ciência da Computação) - Curso de ciência da
computação, Instituto de informática, Universidade Federal do Rio Grande do Sul, Porto Alegre,
1998.
PYLE, Dorian. Data Preparation for Data Mining. San Francisco: Morgan Kaufmann Publishers,
1999.
REZENDE, Solange de Oliveira. Sistemas Inteligentes: Fundamentos e Aplicações. Barueri:
Manole, 2005.
RODRIGUES, Rodrigo. Integrando o PHP com Java (parte 1). 2004. Disponível em: <
http://phpbrasil.com/articles/article.php/id/777>. Acesso em: 24 mai. 2008.
SASSI, Renato José. Uma arquitetura híbrida para descoberta de conhecimento em bases de
dados teoria dos rough sets e redes neurais artificiais mapas auto-organizáveis. 2006.
Disponível em: < http://www.teses.usp.br/teses/disponiveis/3/3142/tde-16032007163930/publico/teseversaorevisada.pdf>. Acesso em: 21 set. 2007.
von WANGENHEIM, Christiane Gresse; e von WANGENHEIM, Aldo. Raciocínio Baseado em
Casos. Barueri: Manole, 2003.
65
APÊNDICES
66
MODELAGEM DO SISTEMA
CASOS DE USO
O objetivo do diagrama de casos de uso é modelar os recursos que os usuários esperam do
sistema ao qual interagem. Segundo Bezerra (2002), “o modelo de casos de uso é uma
representação das funcionalidades externamente observáveis do sistema e dos elementos externos
ao sistema que interagem com ele”. Sendo assim, pode-se dizer que o diagrama de casos de uso
molda os requisitos funcionais do sistema.
Casos de Uso da ferramenta
A Figura 31 apresenta os casos de uso da ferramenta proposta, sendo que cada caso de uso
representado corresponde a uma funcionalidade da ferramenta.
67
ud Use Case Model
UC01 - Importar
Conj unto de Dados
UC02 - Salv ar
Documento
UC03 - Setar Pesos para o
método de RBC
UC04 - Visualizar os
Resultados
Usuário
UC05 - Escolher os
métodos de imputação
UC06 - Excluir Atributos e
Registros
UC07 Estimar os
dados
«include»
UC08 Minerar
Dados
WEKA
Figura 31. Casos de Uso da ferramenta proposta.
68
UC01 – Importar conjunto de dados
Permite ao usuário importar um conjunto de dados através de um arquivo no formato CSV.
Requisitos
·
RF02. A ferramenta deverá permitir importar/salvar um conjunto de dados no formato
CSV (Valores separados por vírgulas);
·
RNF02. Para importação do conjunto de dados o arquivo deve estar no formato CSV;
Condições
·
Pré-Condição: O arquivo deve estar no formato CSV para importação do conjunto de
dados.
·
Pós-Condição: O conjunto de dados é apresentado ao usuário pela ferramenta.
Cenários:
Importar conjunto de dados {Principal}
1.
O usuário opta por importar o conjunto de dados;
2.
Usuário informa arquivo para importar o conjunto de dados;
3.
A ferramenta verifica se o arquivo está no formato CSV; e
4.
O conjunto de dados é apresentado ao usuário.
Erro ao importar o conjunto de dados {Exceção}
Caso o arquivo indicado pelo usuário não seja uma arquivo CSV.
1.
O sistema emitirá uma mensagem de erro: ”Arquivo inválido – O arquivo deve estar no
formato CSV”.
2.
Retornar ao passo 1 do cenário Importar conjunto de dados.
69
Figura 32. Exemplo de Arquivo CSV.
UC02. Salvar Documento
Permite o usuário salvar o arquivo em formato CSV com os dados estimados pela
ferramenta.
Requisitos
·
RF02. A ferramenta deverá permitir importar/salvar um conjunto de dados no formato
CSV (Valores separados por vírgulas);
Condições
·
Pré-Condição: O arquivo esta aberto na ferramenta; e
·
Pós-Condição: Informações salvas em um arquivo no formato CSV.
Cenários:
Salvar documento {Principal}
1.
O usuário solicita para salvar o documento; e
2.
A ferramenta salva o documento.
Erro ao salvar {Exceção}
Caso a ferramenta não consiga salvar o documento.
1. Sistema emite uma mensagem de erro: “Não foi possível salvar o documento.”
70
UC03. Setar pesos para o método RBC
Permite o usuário refinar o método RBC atribuindo valores de 0 à 9 para os atributos de
forma a classificá-los por relevância.
Requisitos
·
RF04. A ferramenta deverá permitir refinar o método RBC atribuindo pesos aos
atributos além de apresentar os resultados pelo método RBC com peso padrão;
·
RF07. A ferramenta deverá permitir selecionar os métodos a serem usados.
·
RN01. Para refinar o algoritmo de RBC os pesos permitidos estão na faixa de 0 a 9.
Condições
·
Pré-Condição: O usuário deverá optar pela opção de RBC; e
·
Pós-Condição: Pesos atribuídos para os atributos.
Cenário
Setar pesos para o método RBC {Principal}
1.
O usuário opta por utilizar o método RBC;
2.
Usuário atribui os pesos que estão na faixa de 0 a 9 aos atributos conforme a relevância
necessária para cada atributo.
71
BROWSER XXX
http://www.estimadados.com.br
Estima Dados
C:\Documents and Settings\leandro\Desktop\Teste.csv
Mineração de dados
Método Estatístico
Idade
RBC
Importar
Estimar Dados
Mostrar Resultados
Escolaridade
Renda Mensal
Sexo
Tipo de Residência
22
Ensino Médio
1000,00
M
Própria
35
Ensino Fundamental
850,00
M
Aluguel
43
Ensino Superior
2700,00
F
Própria
52
Analfabeto
500,00
(0-9)
Ensino Médio
26
31
1250,00
Ensino Médio
1150,00
2
9
9
8
7
6
5
4
3
2
1
Salvar
F
M
Outros
M
Aluguel
Outros
2
7
Abrindo...
Figura 33. Setando pesos para o RBC.
UC04. Visualizar os resultados
Permitir o usuário optar pelos métodos de estimativas propostos no trabalho.
Requisitos
·
RF03. A ferramenta deverá permitir visualizar os resultados obtidos separadamente por
cada algoritmo proposto;
·
RNF03. A ferramenta deverá destacar os resultados obtidos pelos métodos de
imputação;
Condições
·
Pré-condição: O usuário deverá ter importado o conjunto de dados, optado pelos
métodos e estimado os dados.
·
Pós-condição: visualização dos resultados estimados pela ferramenta conforme os
métodos selecionados.
72
Cenários:
Visualizar os resultados obtidos pela ferramenta {Principal}
1.
Visualização dos resultados através da caixa de listagem.
BROWSER XXX
http://www.estimadados.com.br
Estima Dados
C:\Documents and Settings\leandro\Desktop\Teste.csv
Mineração de dados
Idade
Método Estatístico
RBC
Importar
Estimar Dados
Mostrar Resultados
Escolaridade
Renda Mensal
Sexo
22
Ensino Médio
1000,00
M
Própria
35
Ensino Fundamental
850,00
M
Aluguel
43
Ensino Superior
2700,00
F
52
Analfabeto
500,00 (0-9)
F
30 -> Média
Ensino Médio
26
Ensino Médio ->M
31
Ensino Médio
5
2
1241,66 ->Média
1150,00 ->MD
1000,00 ->RBC P
1250,00
1125,00 ->RBC R
Salvar
Tipo de Residência
Própria
Aluguel ->Média
M
Outros
M
Aluguel
1150,00
M ->Média
Aluguel
9
2
7
Figura 34. Visualização dos resultados na ferramenta.
UC07. Estimar os dados
Permitir ao usuário estimar os dados através dos métodos propostos pela ferramenta.
Requisitos
·
RF01. O sistema deverá permitir a estimativa de dados pelos métodos de RBC, Método
Estatístico e Mineração de Dados.
Condições
·
Pré-condição: O usuário deverá importar o conjunto de dados e selecionar o(s)
método(s) de estimativa proposto.
73
·
Pós-condição: Dados estimados conforme os métodos selecionados pelo usuário.
Cenários:
Estimar os dados {Principal}
1.
Usuário importa conjunto de dados;
2. Seleciona os métodos para estimativa; e
3. Usuário executa a estimativa de dados.
Erro por não haver dados a serem estimados {Exceção}
Caso o usuário não ter importado o conjunto de dados.
1.
O sistema emite uma mensagem de erro: “Não existem dados para serem estimados.”;
2.
Retornar ao passo 1 do cenário Estimar os dados.
Erro por não haver métodos selecionados {Exceção}
Caso o usuário não ter selecionado nenhum método para estimativa dos dados.
1.
O sistema emite uma mensagem de erro: ”Não existem métodos selecionados para
estimativa de dados.”;
3.
Retorna ao passo 2 do cenário Estimar os dados.
Atribuir os pesos ao método RBC {Alternativo}
Caso o usuário tenha optado por utilizar o método RBC.
1.
O usuário deve atribuir os pesos aos atributos para o refinamento do método RBC.
2.
Retorna ao passo 3 do cenário Estimar os dados.
74
Download