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