CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF.ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS THIAGO SETI PATRICIO FERRAMENTA WEB PARA MINERAÇÃO DE REGRAS DE ASSOCIAÇÃO LINS/SP 2º SEMESTRE/2014 CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF.ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS THIAGO SETI PATRICIO FERRAMENTA PARA MINERAÇÃO DE REGRA DE ASSOCIAÇÃO WEB Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Título de Tecnólogo (a) em Banco de Dados. Orientador: Prof. Me. Rodrigo Moura Juvenil Ayres LINS/SP 2º SEMESTRE/2014 THIAGO SETI PATRICIO FERRAMENTA WEB PARA MINERAÇÃO DE REGRAS DE ASSOCIAÇÃO Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins “Prof. Antonio Seabra”, como parte dos requisitos necessários para a obtenção do título de Tecnólogo em Banco de Dados sob orientação do Prof. Me. Rodrigo Moura Juvenil Ayres Data de aprovação: 04 de Dezembro de 2014 ________________________________________ Orientador: Prof. Me. Rodrigo Moura Juvenil Ayres ________________________________________ Prof. Me. Adriano Bezerra ________________________________________ Prof. Me. Fábio Lúcio Meira Dedico este trabalho aos meus pais, a quem devo tudo o que sou e o que serei no futuro. Espero um dia poder retribuir ao menos metade do que vocês fazem por mim. Para minha namorada e melhor amiga Laraisa, que sempre será a estrela mais bela e brilhante no céu da minha vida, um verdadeiro anjo para amar com toda a minha alma, uma mulher para amar com todo o meu coração. Thiago Seti Patricio AGRADECIMENTOS Em primeiro lugar a Deus, cuja graça e misericórdia se fizeram presentes durante todo o caminho. Aos meus pais, João e Solange, pelo amor, carinho e respeito tão importantes para que pudesse realizar tudo que sempre almejei na vida. À minha namorada Laraisa, que sempre me acompanha e me incentiva a cada dia, que me ensinou que para ser um grande homem devo buscar incessantemente o conhecimento e me entregar corajosamente ao desafio de desvendar a mim mesmo e ao mundo, enfim, que me faz crer cada vez mais que o amor é possível e que só assim um homem se torna completo. Este trabalho tem muito do amor que ela sempre me oferece. Ao meu avô Benedito de Godoy Seti (in memorian), que sempre me aconselhou a trilhar o caminho do conhecimento. Ao meu orientador Prof. Me. Rodrigo Moura Juvenil Ayres, por gentilmente ceder o algoritmo FOntGAR, contribuindo de forma essencial para este trabalho. Aos professores, Prof. Me. Anderson Pazin e Prof. Me. Mário Henrique S. Pardo, que muito contribuíram no processo de desenvolvimento deste trabalho e sempre estiveram dispostos a ajudar, o que de certa forma contribuiu muito para o meu desenvolvimento e muito me ensinaram. Às professoras, Profª Mª Luciane Noronha e Profª Mª Adriana de Bortoli, pelas inúmeras correções ortográficas e de formatações. Ao meu amigo Lucas, que muito colaborou no desenvolvimento do meu trabalho. A todos os professores da Fatec Lins pela atenção, respeito, dedicação e aprendizado. Aos meus amigos do Núcleo de Inovação Tecnológica (NIT), Jeison, Ricardo e Isabela, pelo apoio constante e encorajamento. À Fatec de Lins pela oportunidade. Thiago Seti Patricio RESUMO O principal desafio da mineração de dados é extrair conhecimento de bases de dados cada vez mais complexas, e uma das principais tarefas para transformar dados em informações são as regras de associação, que visam identificar as relações entre os itens armazenados no banco de dados através de algoritmos que realizam a análise e pesquisa na base de dados. Nesse sentido, este trabalho propõe realizar a criação de uma ferramenta web para mineração de regras de associação utilizando o algoritmo Fuzzy Ontology Generalized Association Rules (FOntGAR), cuja principal finalidade é o de minerar regras de associação generalizadas embasadas nas ontologias de conceitos fuzzy. Ademais, a proposta de uma nova ferramenta web para mineração de regras de associação visa fornecer uma interface para apresentação das regras geradas de maneira intuitiva, bem como possibilitar ao usuário a entrada de parâmetros na ferramenta para obter regras customizadas. Em suma, o trabalho visa aprofundar os conceitos de Knowledge Discovery in Databases (KDD), mineração de dados e regras de associação em paralelo com uma aplicação web, assim como comparar os resultados obtidos entre a aplicação proposta e a ferramenta Waikato Environment for Knowledge Analysis (Weka). Palavras-chaves: mineração de dados. regras de associação. ontologias. ABSTRACT The main challenge of data mining is to extract knowledge from databases increasingly complex data and a major task to turn data into information are association rules, which aim to identify the relationships between items stored in the database through algorithms that perform the analysis and research in the database. In this sense, this work proposes to carry out the creation of a web tool for mining association rules using the algorithm Fuzzy Ontology Generalized Association Rules (FOntGAR), whose main purpose is to mine the generalized association rules in ontology-informed of fuzzy concepts. Furthermore, the proposal of a new web tool to association rule mining aims to provide an interface for submission of generated rules in an intuitive manner, and to enable the user to input parameters in tool for custom rules. In short, the work aims to deepen the concepts of Knowledge Discovery in Databases (KDD) and data mining association rules in parallel with a web application, and compare the results between the proposed application and the tool Waikato Environment for Knowledge Analysis (Weka). Keywords: data mining. association rules. ontologies. LISTA DE ILUSTRAÇÕES Figura 1.1 – Etapas do processo de descoberta de conhecimento em bases de dados......................................................................................................................... 17 Figura 1.2 – Exemplo de taxonomia para vestuário .................................................. 23 Figura 1.3 – Exemplo de Taxonomia sem classificação para vestuário .................... 24 Figura 1.4 – Ontologia no sentido filosófico............................................................... 24 Figura 3.1 – Implementação do componente CommanButton .................................. 35 Figura 3.2 – Página inicial da ferramenta .................................................................. 36 Figura 3.3 – Componente fileUpload do PrimeFaces ................................................ 37 Figura 3.4 – Opção “Escolher” do fileUpload............................................................. 37 Figura 3.5 – Mensagem de erro ao selecionar tipo de arquivo inválido .................... 37 Figura 3.6 – Opção “Carregar” do fileUpload ............................................................ 37 Figura 3.7 – Tela “Parâmetros de configuração” ....................................................... 38 Figura 3.8 – Erros nos campos da tela “Parâmetros de configuração” ..................... 39 Figura 3.9 – Método fontgar ...................................................................................... 39 Figura 3.10 – Tela inicial com a barra de progresso ................................................. 40 Figura 3.11 – Tela inicial com os resultados gerados pelo algoritmo FOntGAR ....... 40 Figura 4.1 – Tela inicial para escolhas de interfaces gráficas da Weka .................... 48 Figura 4.2 – Estrutura do arquivo ARFF .................................................................... 49 Figura 4.3 – Interface Explorer da ferramenta Weka................................................. 50 Figura 4.4 – Exemplo de tabela de carros ................................................................. 51 Figura 4.5 – Representação da tabela de carros em CSV ........................................ 51 Figura 4.6 – Escolha de um algoritmo na ferramenta Weka...................................... 52 Figura 4.7 – Algoritmo Apriori pré-selecionado ......................................................... 52 Figura 4.8 – Tela de parâmetros da ferramenta Weka .............................................. 53 Figura 4.9 – Tela de resultados da Weka com as regras geradas ............................ 54 Figura 5.1 – Console do NetBeans com as regras geradas ...................................... 56 Figura 5.2 – Tela de ferramenta RisingMiner com as regras geradas....................... 57 Figura A.1 – Arquivo de dados supermercado.csv .................................................... 72 Figura A.2 – Regras geradas a partir do arquivo de entrada supermercado.csv ...... 73 LISTA DE QUADROS Quadro 4.1 – As seis melhores ferramentas de mineração de dados de código aberto ........................................................................................................................ 43 Quadro 4.2 – Visão técnica geral das seis melhores ferramentas de mineração de dados de código aberto ............................................................................................. 44 Quadro 4.3 – Vantagens e desvantagens das ferramentas ...................................... 45 Quadro 4.4 – Análise dos recursos das melhores ferramentas de mineração de dados de código aberto ............................................................................................. 46 Quadro A.1 – Ferramentas de mineração de dados ................................................. 67 LISTA DE ABREVIATURAS E SIGLAS ADAPA – Adaptive Decision and Predictive Analytics AGPL – Affero General Public Licence AI – Artificial Intelligence API – Application Programming Interface ARFF – Attribute-Relation File Format ASCII – American Standard Code for Information Interchange ASF – Apache Software Foundation CD-Roms – Compact Disc Read-Only Memory CONIC-SEMESP – Congresso Nacional de Iniciação Científica-Sindicato das Entidades Mantenedoras de Ensino Superior CSS – Cascading Style Sheets CSV – Comma Separated Values D2K – Data to Knowledge DOS – Disk Operating System FOntGAR – Fuzzy Ontology Generalized Association Rules FTM – Full Text Mapper GNU – Gnu’s Not Unix GPL – General Public License GUI – Graphical User Interface HTML – Hyper Text Markup Language IDE – Integrated Development Environment JDBC – Java Database Connectivity KDD – Knowledge Discovery in Databases KEEL – Knowledge Extraction based on Evolutionary Learning JAR – Java ARchive JEE – Java Enterprise Edition JSF – Java Server Faces JSP – Java Server Pages JVM – Java Virtual Machine MDR – Mining Data Records MVC – Model View Controller PPR – Processamento de Página Parcial SAS – Statistical Analysis System SPAD – Software Para Análise de Dados SPM – Salford Predictive Modeler UI – User Interface W3C – World Wide Web Consortium WEKA – Waikato Environment for Knowledge Analysis LISTA DE SÍMBOLOS % - Porcentagem ® - Registrado SUMÁRIO INTRODUÇÃO ...................................................................................................... 14 1 FUNDAMENTAÇÃO TEÓRICA ..................................................................... 17 1.1 CONSIDERAÇÕES INICIAIS .............................................................................. 17 1.2 KDD ..................................................................................................................... 17 1.3 MINERAÇÃO DE DADOS ................................................................................... 19 1.4 REGRAS DE ASSOCIAÇÃO ............................................................................... 22 1.5 REGRAS DE ASSOCIAÇÃO GENERALIZADAS ................................................ 23 1.6 ONTOLOGIAS ..................................................................................................... 25 1.7 ALGORITMO FOntGAR ...................................................................................... 27 1.8 CONSIDERAÇÕES ACERCA DO CAPÍTULO .................................................... 27 2 BASES TECNOLÓGICAS ............................................................................... 28 2.1 CONSIDERAÇÕES INICIAIS .............................................................................. 28 2.2 HTML................................................................................................................... 28 2.3 CSS .................................................................................................................... 29 2.4 JSF ...................................................................................................................... 30 2.5 PRIMEFACES ..................................................................................................... 32 2.6 APACHE TOMCAT.............................................................................................. 33 2.7 JAVA ................................................................................................................... 33 2.8 NETBEANS ......................................................................................................... 34 2.9 CONSIDERAÇÕES ACERCA DO CAPÍTULO .................................................... 35 3 DESENVOLVIMENTO DA FERRAMENTA WEB...................................... 36 3.1 CONSIDERAÇÕES INICIAIS .............................................................................. 36 3.2 DESENVOLVIMENTO......................................................................................... 36 3.3 COMPONENTES PRIMEFACES ........................................................................ 42 3.4 CONSIDERAÇÕES ACERCA DO CAPÍTULO .................................................... 42 4 ANÁLISES COMPARATIVAS ........................................................................ 43 4.1 CONSIDERAÇÕES INICIAIS .............................................................................. 43 4.2 FERRAMENTAS DE MINERAÇÃO DE DADOS ................................................. 43 4.3 ANÁLISE COMPARATIVA ENTRE A FERRAMENTA WEKA E FERRAMENTA RISINGMINER .......................................................................................................... 48 4.3.1 Weka ................................................................................................................ 48 4.3.2 Comparações entre as ferramentas RisingMiner e Weka ................................ 50 4.4 CONSIDERAÇÕES ACERCA DO CAPÍTULO .................................................... 56 5 CONCLUSÕES ..................................................................................... 57 5.1 RESULTADOS OBTIDOS ................................................................................... 57 5.2 LIMITAÇÕES ....................................................................................................... 58 5.3 CONTRIBUIÇÕES............................................................................................... 59 5.4 PUBLICAÇÕES ................................................................................................... 60 5.5 TRABALHOS FUTUROS .................................................................................... 60 REFERÊNCIAS BIBLIOGRÁFICAS ........................................................ 62 APÊNDICE A – FERRAMENTAS DE MINERAÇÃO DE DADOS........... 68 ANEXO A – ARQUIVO DE DADOS ........................................................ 73 14 INTRODUÇÃO Atualmente, a mineração de dados é uma área que vem sendo alvo de muitas pesquisas, dada sua vasta aplicabilidade em variadas formas de aplicações. Segundo Escovar (2004), o montante de dados a ser processado tende a tornar-se cada vez maior e com altos níveis de complexidade. Como consequência desse cenário, a descoberta de conhecimento em bases de dados é potencialmente importante, porém difícil, pois a enorme quantidade de informações contidas nos bancos de dados está escondida nos dados e são raramente vistas explicitamente. Para Braga (2005), a mineração de dados centrada no cliente fornece informações a respeito do comportamento e das características da clientela, outrossim, cumpre salientar que a compreensão do conhecimento visando clientes é a base para uma prospecção mais realista. Conforme Santos (2002), o surgimento de bases de dados cada vez mais desmesuradas deve-se ao limiar de uma nova era tecnológica com hardwares que armazenam e recuperam informações cada vez mais complexas e maiores, assim como ao crescimento predominante da Internet, cuja disseminação e versatilidade proporcionam às empresas guardar dados sobre suas transações e clientes. De acordo com Anciutti (2005), conhecimento adquirido é poder, partindo do princípio de que a massa de dados que é armazenada pela humanidade é algo inédito na história, ou seja, uma quantidade potencialmente avassaladora de dados que podem conter conhecimento de grande valia. Haja vista que a enorme quantidade de dados armazenados pode conter e prover informações essenciais para funcionalidades como o processo de tomada de decisões e previsões a respeito de dados futuros, se torna imprescindível a utilização de abordagens que visam pesquisar e extrair conhecimento a partir desses dados, tais como a classificação em forma de árvore de decisão e as regras de associação. Elmasri e Navathe (2005) afirmam que a descoberta de regras de associação embutidas na tarefa de associação é uma das tecnologias mais preponderantes em mineração de dados. Ademais, a mineração de regras de associação dá-se a partir de algoritmos que realizam a pesquisa e análise do banco de dados em busca de itens dos tipos textuais ou categóricos, e numéricos ou quantitativos, a priori é feita a verificação 15 das ocorrências dos mesmos na base de dados e como eles estão associados a outros itens ou subconjuntos de itens. (ESCOVAR, 2004) Logo, perante o exposto, o presente trabalho objetiva a criação de uma ferramenta web para mineração de regras de associação, através de Hyper Text Markup Language (HTML), Cascading Style Sheets (CSS), Java, Apache Tomcat, Java Server Faces (JSF), PrimeFaces, bem como a aplicação do algoritmo de mineração de regras de associação FOntGAR. Para tanto foram enfocados objetivos específicos tais como analisar e comparar a ferramenta Weka para mineração de regras de associação com a aplicação proposta neste trabalho, bem como pormenorizar a usabilidade das ferramentas de mineração de dados. Diante disso, este trabalho justifica-se em proporcionar uma nova ferramenta de extração de regras de associação web devido à escassez de aplicações desse tipo, o módulo apresentado neste trabalho visa à extração de regras de associação a partir do algoritmo FOntGAR, fornecendo também uma interface web a fim de que o usuário possa selecionar um arquivo de dados local para o algoritmo em questão realizar a associação. A metodologia adotada neste trabalho baseia-se em pesquisas, sendo que o levantamento bibliográfico concentra-se em obras consagradas de autores na área de mineração de dados, bem como a análise de fontes primárias como artigos científicos, dissertações e teses que contribuem para a suplementação teórica deste trabalho. Com relação à composição, este trabalho monográfico está subdividido em cinco capítulos, os quais formam a estruturação do mesmo e explanam a metodologia aplicada. O capítulo um contextualiza acerca dos principais conceitos teóricos de KDD, mineração de dados, regras de associação, regras de associação generalizadas, ontologia, bem como uma explanação sobre o algoritmo FOntGAR. Em suma, tal capítulo enfoca sobre os pilares conceituais utilizados neste trabalho. No capítulo dois são abordadas as bases tecnológicas aplicadas no desenvolvimento do trabalho. Há descrições detalhadas de todas as tecnologias, explanando suas funções. Na sequência o terceiro capítulo discorrerá acerca da aplicação desenvolvida neste trabalho, explanando suas funcionalidades através da apresentação das telas implementadas, com enfoque na tarefa de pré-processamento. 16 O quarto capítulo consiste de um estudo das principais ferramentas de código aberto da área de mineração de dados, assim como uma análise comparativa entre a ferramenta Weka com a ferramenta web proposta neste trabalho, enfatizando características em comum, vantagens e desvantagens entre ambas, por fim são analisados os resultados esperados e as contribuições para a área abordada nesta pesquisa. Por fim, no quinto capítulo são abordadas as conclusões finais. 17 1 FUNDAMENTAÇÃO TEÓRICA 1.1 CONSIDERAÇÕES INICIAIS Este primeiro capítulo tem como objetivo sintetizar acerca dos pilares conceituais abordados neste trabalho monográfico, com enfoque nas definições e características de cada processo e paradigma. Ademais, o capítulo ainda busca pormenorizar o processo de KDD, bem como seus derivados processuais como a mineração de dados, regras de associação e regras de associação generalizadas e como cada um participa das tarefas de mineração de dados que visam formar conhecimento a partir de conjuntos de dados. Por fim, é feita uma abordagem sintetizada dos conceitos do algoritmo de mineração de regras de associação FOntGAR. 1.2 KDD O advento de uma nova era tecnológica e a rápida automatização das organizações são fatores preponderantes para se concorrer no atual e crescente mercado globalizado, aliado ao massivo poder de armazenamento das bases de dados atuais, tornam os dados armazenados em uma espécie de histórico das empresas, que podem ser usados posteriormente para tomada de decisão. Segundo Brachman e Anand (1994), a ideia de descobrir conhecimento em quantidades consideráveis de dados torna-se atraente, porém desafiadora, em decorrência dos variados métodos, pois a informação implícita e previamente desconhecida passa a ser potencialmente útil depois de extraída e tratada, a esse conceito é dado o nome de KDD. Mannila (1997) salienta que a descoberta de conhecimento em bases de dados, que muitas vezes é tido como sinônimo de mineração de dados, objetiva descobrir informações úteis intrínsecas em grandes coleções de dados. Ademais, o conhecimento descoberto pode originar regras que descrevem propriedades dos dados, agrupamentos de objetos no banco de dados, além de padrões que ocorrem com frequência. 18 Vasconcelos e Carvalho (2004) explicam o processo de descoberta de conhecimento como uma sequencia de passos que começa com a seleção de uma coleção de dados com os quais o KDD será realizado, posteriormente, os dados podem passar por uma etapa de pré-processamento onde são identificados dados incompletos e ruídos, ou seja, informações julgadas desnecessárias são descartadas. O próximo passo no processo consiste na transformação dos dados onde se encontram representações dos dados que não variam e disponibiliza esses dados em formatos utilizáveis para enfim serem devidamente processados pela principal tarefa do processo, a mineração, onde são utilizados algoritmos para procurar regras e padrões implícitos nos dados. Por fim, as informações extraídas são interpretadas e avaliadas de diversas maneiras, por exemplo, em forma de relatórios e gráficos para segmentar conhecimento útil para tomada de decisões humanas. A Figura 1.1 demonstra todo o processo do KDD. Figura 1.1 – Etapas do processo de descoberta de conhecimento em bases de dados Fonte: Fayyad, Piatetsky-Shapiro e Smyth. (1996) 19 Segundo Fayyad, Piatetsky-Shapiro e Smyth (1996), o KDD já evoluiu e continua a evoluir consideravelmente partindo do princípio de que os sistemas de software KDD devem incorporar teorias de algoritmos e métodos de campos importantes como aprendizado de máquinas, reconhecimento de padrões e estatísticas, inteligência artificial, pesquisas em áreas como bancos de dados, visualização de dados, descoberta científica, bem como a computação de alto desempenho. Piatetsky-Shapiro (2000) ressalta que o termo KDD descreve todo o processo global de descoberta de conhecimento, o qual inclui toda a preparação dos dados e processamento posterior. Portanto, ainda conforme o autor, o termo KDD é visto para muitos como sinônimo de data mining, porém são conceitos distintos, sendo que mineração de dados está incorporada ao KDD como um passo de aplicação na descoberta de conhecimento, ou seja, está implícita no KDD como parte do processo de descoberta de conhecimento em bases de dados. Conforme Brachman e Anand (1994), um sistema de descoberta de conhecimento é um ambiente integrado que auxilia o usuário de alguma forma na realização e execução do processo de descoberta de conhecimentos complexos. Para Brachman e Anand (1994) é necessário mais ênfase em um KDD centrado no ser humano, bem como o entendimento da melhor maneira de se fazer a descoberta de conhecimento, para direcionar o suporte aos analistas humanos que são os responsáveis pelo KDD como um todo, contrariando alguns estudiosos deste conceito que defendem a vertente de que um sistema para fazer descoberta de conhecimento em bases de dados deve ser autônomo. O que embora seja desejável em longo prazo, é um princípio que tende a não enfatizar o papel impreterivelmente chave realizado pelos humanos nos processos e tarefas presentes em todo conhecimento descoberto cotidianamente. 1.3 MINERAÇÃO DE DADOS A evolução da computação alavancada pelo crescente poder de processamento dos computadores aliada aos baixos custos de armazenamento contínuo, vêm propiciando ás organizações a capacidade de armazenar informações detalhadas condizentes a transações efetuadas, acarretando assim na geração de grandes bancos de dados. 20 Segundo o site O Globo (2011), o mundo vive a era da informação, em uma analogia pode-se afirmar que em uma simples edição de um dia de semana comum do jornal norte-americano “The New York Times” há mais conteúdo do que um homem inglês de classe média teria acesso em toda sua vida em meados do século XVII. Partindo desse princípio, os pesquisadores Martin Hilbert e Priscila López, da Universidade da Califórnia, estudaram até achar uma resposta para estimar quanta informação a humanidade acumula atualmente, e chegaram a conclusão que se fosse armazenada de maneira otimizada, o volume de informação mundial nos mais variados suportes analógicos e digitais ocuparia o equivalente a 295 trilhões de megabytes, ou 295 exabytes. Para mais, o site O Globo (2011) ainda ressalta que se toda quantidade de dados gerados pela humanidade fosse gravada em CD-Roms de 730 megabytes cada e fosse empilhada, a pilha iria da Terra para além da órbita da Lua, o que daria em dados mais precisos um total de 404 bilhões de discos com 1,2 milímetros de espessura cada conforme artigo publicado na revista Science, daí a importância de técnicas de mineração de dados, para que esses dados gerados sejam transformados em conhecimento e sirvam de grande valia para diversos aspectos, entre os principais estão o conhecimento do comportamento e preferências dos clientes e a tomada de decisões. A mineração de dados eclodiu da imprescindibilidade do desenvolvimento de processos de análise computacional, contrapondo os métodos predominantemente manuais que foram usados durante anos para transformar dados brutos em conhecimento. (AYRES, 2012) Mineração de dados (data mining) é uma área que surgiu no fim dos anos 1980, e segundo Braga (2005), está intrínseca em um conceito maior denominado descoberta de conhecimento em banco de dados. Conforme Fayyad, Piatetsky-Shapiro e Smyth (1996), a mineração de dados é uma etapa especial incorporada ao processo global de descoberta de conhecimento útil a partir de dados, conhecido pelo termo KDD. Para Piatetsky-Shapiro (2000), o termo “mineração de dados” tornou-se mais popular no ramo da imprensa e dos negócios, enquanto “Knowledge Discovery in Databases” popularizou-se nas comunidades de Artificial Intelligence (AI) e aprendizado de máquina. Conforme pesquisa realizada no site altavista.com em novembro de 1999, cerca de 100.000 páginas pertenciam á mineração de dados, em 21 contrapartida 18.000 para KDD, o que evidencia a popularização do termo “Data Mining”. De acordo com Mitra e Acharya (2003), a taxa de dados armazenados está crescendo fenomenalmente dado os avanços significativos na computação e as tecnologias relacionadas a seu uso que estão cada vez mais presentes em diversas esferas da vida. Com isso, a informação digitalizada torna-se fácil de capturar, processar, armazenar, distribuir e transmitir. Portanto, ainda conforme os autores, mineração de dados é uma tentativa que visa dar sentido a explosão de informações intrínsecas neste enorme volume de dados. Segundo Mitra e Acharya (2003), a atual tecnologia de Internet e sua crescente demanda exige o desenvolvimento de aplicações mais avançadas de mineração de dados para interpretar as informações e gerar conhecimento a partir dos dados distribuídos por todo o mundo. Além disso, os autores ainda ressaltam que a demanda de dados no século 21 tende a crescer e o acesso de grandes volumes de dados multimídia como imagens, vídeos, textos, bem como dados não numéricos vão se tornar um dos principais temas de transformação na sociedade global. Witten e Frank (2005) afirmam que a mineração de dados é um tema prático e engloba o aprendizado de maneira prática, e não teórico. Assim, segundo os autores o foco das técnicas de data mining devem ser encontrar e descrever padrões estruturais em dados com uma ferramenta para extrair e fazer previsões com um conjunto de dados. Escovar (2004) salienta que a finalidade da descoberta de conhecimento é determinada pelo uso pretendido do sistema, ou seja, o tipo de informação que se intenciona obter depende dos dados que serão analisados. Conforme Fayyad, Piatetsky-Shapiro e Smyth (1997) existem dois tipos de objetivos, a descoberta e a verificação. A verificação consiste em verificar o cenário elaborado pelo usuário, já na descoberta, o sistema descobre novos padrões de forma independente, esses padrões são classificados como sendo preditivos e descritivos. (HAN; KAMBER, 2006) Escovar (2004) ressalta que as tarefas preditivas fazem predições sobre dados futuros a partir de uma intervenção dos dados presentes, enquanto que tarefas descritivas descrevem as particularidades gerais dos dados nos bancos de dados. Ainda segundo o autor, existem variadas tarefas de mineração de dados que 22 são caracterizadas de acordo com a natureza dos dados e os objetivos da aplicação, entre as tarefas estão associação, agrupamento (clustering), regressão e classificação, sendo estas as tarefas de mineração de dados mais utilizadas, entretanto uma das mais conhecidas é a associação, que se fundamenta na descoberta de regras de associação. 1.4 REGRAS DE ASSOCIAÇÃO De acordo com Pasquier et al. (1999), a descoberta de regras de associação é uma das tarefas mais importantes e significativas em mineração de dados, e tenciona identificar as relações entre os itens em grandes bases de dados, por exemplo, em um banco de dados de cestas básicas, pode ser interessante conhecer o fato de que os clientes que compraram o açúcar e os cereais, também levaram o leite. Para Agrawal e Shafer (1996), a descoberta de regras de associação é uma etapa importante de mineração de dados, e recentemente tem havido pesquisas relevantes na concepção de algoritmos rápidos para esta tarefa, uma vez que os bancos de dados a serem extraídos são trivialmente grandes, medidos em gigabytes ou até mesmo em terabytes. Domingues (2004) ressalta que o principal objetivo das regras de associação é o de encontrar tendências a serem utilizadas para compreender e explorar padrões comportamentais dos dados, cujo conjunto dará origem às informações. Ademais o autor exemplifica que ao observar os dados das vendas de um supermercado, conhece-se que 80% da clientela que adquirem o produto Q também compram, na mesma oportunidade, o produto W. Nesse caso, 80% equivalem à sua confiabilidade. Conforme Escovar (2004), uma expressão da forma X Y corresponde a uma regra de associação, na qual X e Y são conjuntos de itens, ademais, o conceito de tal regra é que as transações do banco de dados que contém X propendem a conter Y também. A coleção de itens que se encontram do lado esquerdo da seta (representado por X) é denominada como antecedente da regra, por outro lado, a coleção de itens que aparecem à direita da seta (representado por Y) é chamada consequente da regra, portanto uma regra de associação tem o formato Antecedente Consequente. 23 Logo, baseando-se neste contexto, para cada regra de associação são associados dois fatores denominados suporte e confiança. Em uma regra de associação X Y, a porcentagem de registros em que X e Y aparecem simultaneamente é indicada pelo suporte, ao passo que a confiança aponta a porcentagem de registros que englobam X e Y, sobre a totalidade de registros que possuem X. (ESCOVAR, 2004) Segundo Escovar (2004), a tarefa de mineração de regras de associação divide-se em duas etapas, na qual a primeira consiste em achar todos os itemsets constantes, enquanto que a segunda etapa visa à geração de regras de associação embasando-se nos itemsets frequentes. Ainda conforme o autor, os itemsets são as coleções de itens e seu suporte resume-se na porcentagem de transações que comporta a totalidade dos itens do itemset. O autor ainda ressalta que um itemset só é considerado frequente quando seu suporte é igual ou maior a um valor mínimo de suporte que é determinado pelo usuário. 1.5 REGRAS DE ASSOCIAÇÃO GENERALIZADAS Conforme Campos e Gomes (2008), a taxonomia ou taxionomia originou-se como ciência das leis da classificação de formas vivas e, por adendo, ciência das leis da classificação, ademais, tradicionalmente as taxonomias surgiram com a função de classificar espécies em zoologia e botânica com uma nomenclatura binária. Campos e Gomes (2008) salientam que as taxonomias são estruturas classificatórias com fins de recuperar e organizar informações em instituições e empresas, ademais o resgate de taxonomias nos sistemas de informação leva em consideração a unidade sistemática (taxon), e não mais família, espécie e gênero, mas sim conceitos. Segundo Domingues (2004), as taxonomias são utilizadas na generalização de regras de associação com o objetivo de reduzir o volume de um determinado conjunto de regras, portanto, pode-se dizer que ao generalizar regras de associação com base nos conceitos de taxonomias, são eliminadas regras de associação redundantes ou não importantes do conjunto final de regras de associação que serão geradas. 24 Segundo Domingues (2004), a introdução de taxonomias é fundamental para aumentar e complementar a capacidade descritiva das regras de associação na etapa de pós-processamento, por exemplo, pode-se notar na Figura 1.2 uma pequena demonstração de uma taxonomia em que bermuda é uma roupa leve, camiseta é uma roupa leve, roupa leve é um tipo de roupa, tênis é um tipo de calçado, calçado é um tipo de vestuário, entre outros, ou seja, itens organizados hierarquicamente. Figura 1.2 – Exemplo de taxonomia para vestuário Fonte: Domingues, 2004. (Modificado pelo autor) De acordo com Agrawal e Srikant (1995), a mineração de regras de associação generalizadas é composta por itens presentes em um nível qualquer de uma determinada estrutura taxonômica, assim pode-se dizer que algoritmos que utilizam transações estendidas apresentam um volume maior do conjunto de regras de associação ao usuário respectivo e acarreta problemas de redundância, nesse sentido, faz-se necessária a aplicação de medidas de interesse a fim de podar o conjunto extraído. Para Ayres (2012), o conceito de taxonomia aplicado às regras de associação permite a obtenção de um conhecimento generalizado, bem como a exclusão de regras consideradas redundantes ou inúteis. O autor também exemplifica que ao considerar uma regra agasalhos camisas com suporte de 8% e confiança de 70%, 25 sabe-se que agasalhos é pai de jaqueta, e que um quarto das vendas de agasalhos é de jaquetas, portanto, espera-se a presença da regra jaquetas camisas com suporte 2% e confiança 70%. Para Domingues (2004), existem diversas taxonomias em que os itens caracterizados hierarquicamente não podem ser devidamente classificados, por exemplo, a Figura 1.3 ilustra uma taxonomia onde PRODUTOS1 e PRODUTOS2 não estão classificados. Figura 1.3 – Exemplo de Taxonomia sem classificação para vestuário Fonte: Domingues, 2004. (Modificado pelo autor) 1.6 ONTOLOGIAS Segundo Almeida e Bax (2003), historicamente o termo ontologia deriva do grego “ontos”, ser, e “logos”, palavra, porém o termo original vem da palavra aristotélica “categoria”, que pode ser utilizada para classificação de alguma coisa, ademais, Aristóteles introduz categorias que servem de embasamento para classificar qualquer entidade e apresenta o termo “differentia” para propriedades que distinguem espécies heterogêneas do mesmo gênero. Figura 1.4 – Ontologia no sentido filosófico Fonte: Morais e Ambrósio, 2003 26 De forma simples, para elaborar ontologias, são definidas categorias para as coisas existentes em um domínio específico, assim, pode-se dizer que ontologia é um “catálogo de tipos de coisas” para organização da informação. (ALMEIDA; BAX, 2003) Para Ayres (2012), as ontologias estão fortemente relacionadas ao termo conceitualização, que é uma abstração de uma visão simplificada de algum domínio em particular, por adendo, conceitualização refere-se a um modelo que representa como as pessoas pensam sobre as coisas do mundo, normalmente restrito a uma determinada área. De acordo com Almeida e Bax (2003), a contextualização corresponde a um conjunto de conceitos, objetos e outras entidades que se assume estarem presentes em um determinado domínio e o relacionamento que existe entre eles, como também é um grupo de relações extensionais que descrevem um determinado “estado das coisas” particular, contudo a noção que temos em mente é uma relação intensional. Uma definição intensional é representada por uma lista de características do conceito, por exemplo, uma lâmpada incandescente nada mais é do que uma lâmpada elétrica que emite luz por meio do aquecimento de um filamento pela corrente elétrica, ou seja, a lâmpada incandescente é tida como o auxílio do gênero mais próximo, lâmpada elétrica e de suas características. Uma definição extensional refere-se a aspectos enumerados de todas as espécies que pertencem ao mesmo nível de abstração, como por exemplo, os planetas do sistema solar são Vênus, Terra, Mercúrio, Júpiter, Urano, Netuno, Saturno, Marte e Plutão. (ALMEIDA; BAX, 2003) Conforme Leite (2009), uma ontologia no contexto da computação compreende um aglomerado de definições de conceitos, relações, restrições, axiomas, propriedades e eventos que descrevem um determinado domínio ou universo de discurso, além de que, uma ontologia capacita os agentes de softwares e aplicações a utilizar uma semântica precisa, formal e clara para executar o processamento da informação descrita e posteriormente usar esta informação em aplicações inteligentes. A autora ainda salienta que, para que se possam utilizar ontologias, faz-se necessário definir a forma como o conhecimento será representado, bem como especificar os tipos de conceitos e as relações entre os conceitos. 27 1.7 ALGORITMO FOntGAR Para Ayres (2012), o algoritmo FOntGAR foi desenvolvido para minerar regras de associação, e objetiva a generalização de regras de associação a fim de reduzir o conjunto final de regras geradas, com o intuito de reduzir e eliminar redundâncias, bem como maior semântica. O processo de geração de regras tradicionais é embasado no algoritmo Apriori, portanto, o FOntGAR requer parâmetros de suporte mínimo (minsup), confiança mínima (minconf), generalização mínima (mingen), similaridade mínima (minsim), contexto explorado (context) e o parâmetro side que visa indicar em qual lado ocorrerá a generalização. De acordo com Ayres (2012), os parâmetros acima citados são fornecidos pelo usuário, ademais, os parâmetros minconf, minsup, minsim e mingen são representados por um valor real que pode oscilar no intervalo [0,1]. O parâmetro side é expresso por uma string right, left ou lr, que indicam respectivamente se a generalização acontecerá no lado direito, esquerdo ou em ambos os lados. Conforme Ayres (2012), quando o usuário define o antecedente ou o consequente (left ou right), no algoritmo FOntGAR, compara-se em primeiro lugar o total de regras extraídas e verifica-se quais delas possuem o mesmo ancestral no lado da generalização e que tenham respectivamente itens idênticos no lado oposto ao que será alvo da generalização. O autor ainda explica que podem ocorrer diversas variações e muitos grupos de regras podem ser formados, entretanto, um grupo deve possuir mais de uma regra, pois o resultado do agrupamento é a generalização, ou seja, os padrões gerados devem ser podados de forma a eliminar redundância, sendo assim, não pode haver grupos com apenas um padrão, pois neles não existiria redução de quantidade. 1.8 CONSIDERAÇÕES ACERCA DO CAPÍTULO À guisa de conclusão foram apresentados neste primeiro capítulo os principais conceitos que dão fundamentação às tecnologias aplicadas nesta monografia, como o KDD, a mineração de dados, regras de associação, regras de associação generalizadas, ontologia, assim como o algoritmo de mineração de regras de associação FOntGAR. 28 2 BASES TECNOLÓGICAS 2.1 CONSIDERAÇÕES INICIAIS Atualmente, há um grande interesse em torno de questões como a mineração de dados, que enfocam a descoberta de conhecimento em bases de dados com fins de se obter conhecimento a partir de dados, assim, regras para minerar conjuntos de dados estão entre as soluções para se chegar a informações relevantes e de extrema importância, que podem auxiliar, por exemplo, na tomada de decisões, conhecimento a respeito das preferências de clientes em determinadas compras, histórico de vendas de uma organização, enfim, transformar a complexidade dos dados em algo informativo e proveitoso. Com base neste princípio, no segundo capítulo será realizada uma síntese de cada base tecnológica aplicada no desenvolvimento da ferramenta RisingMiner, ademais, o capítulo sintetiza mais especificamente sobre JSF, HTML, CSS, PrimeFaces, Apache Tomcat, Java e NetBeans. 2.2 HTML Segundo Cook (2014), o HTML, foi criado por Tim Bernes-Lee por volta do ano 1990, e com o decorrer do tempo, a linguagem se consolidou como um padrão para o desenvolvimento web, além de que, sua versão mais atualizada, chamada de HTML 5, traz características de fundamental importância para a criação de sites como por exemplo o suporte direto para áudio, vídeo e desenho bitmap, novos controles de formulários, bem como um conjunto de novos elementos que em conjunto com o CSS, otimizam a renderização das aplicações web. Para Grannell (2007), os documentos HTML são arquivos textuais que contêm marcas e são utilizadas pelos navegadores para a exibição das páginas que devem seguir um padrão de renderização imposto pelo World Wide Web Consortium (W3C), uma organização que estabelece especificações e diretrizes para diversas tecnologias web, ademais, cumpre ressaltar que os documentos de marcação de hipertexto são normalmente salvos com a extensão de arquivo html, que é um resquício das limitações do Disk Operating System (DOS), que tinha como uma 29 característica a restrição de oito caracteres para nomes de arquivos e três para as extensões. MacDonald (2011) afirma que nas últimas duas décadas, os sites mudaram drasticamente, mas o que mais surpreende não é o quanto a Internet tem mudado, e sim o quão bem os elementos antigos de HTML foram devidamente mantidos, fato este que chama a atenção, pois nota-se com peculiar surpresa que desenvolvedores de aplicações web atuais usam praticamente o mesmo conjunto de elementos para a construção de seus sites que seus antecessores usaram há 10 anos, como exemplo, pode-se citar em particular o elemento <div> (ou divisão), que é a pedra angular de quase todas as páginas web moderna, além disso, é importante salientar que usando o elemento de divisão já citado, é possível esculpir um HTML com cabeçalhos, painéis laterais, bem como barras de navegação e muito mais. 2.3 CSS De acordo com Keller e Nussbaumer (2010), o CSS tornou-se um dos pilares da web atual, devido a seus inúmeros benefícios de publicação de sites que vão desde a remoção de informações relativas à apresentação dos documentos HTML à criação de um conteúdo mais eficiente e partilhado, e, baseado nestas informações pode-se afirmar que o CSS abre uma gama de novas possibilidades de controle estilístico, bem como proporciona a implantação de layouts de maneira descomplicada. Segundo Lie (2005) as folhas de estilo foram concebidas a fim de ser uma alternativa para a evolução do código HTML, que em conjunto com o CSS constituem uma linguagem de apresentação. O autor ainda destaca que a folha de estilo pode ser vista como uma forma de garantir a consistência em documentos. Lie (2005) explana que o CSS corresponde a um aglomerado de regras que são associadas às características estilísticas e valores com elementos estruturais em um documento, expressando assim como exibir um determinado documento. Além disto, o autor explica que as folhas de estilo não possuem conteúdo, contudo elas contêm seletores de diversas categorias que referenciam o documento HTML, o que resulta no vínculo entre conteúdo e apresentação. Para Keller e Nussbaumer (2009) o CSS está intimamente ligado ao documento de conteúdo, este último por sua vez é devidamente associado com 30 determinadas regras de estilo que ligam elementos de conteúdo com certas propriedades estilísticas. Conforme Keller e Nussbaumer (2010), questões que envolvem a manipulação de estilos do CSS são amplamente discutidas em inúmeros livros, contudo, a falta de atenção na criação da apresentação ainda é atestada, o que resulta em um contraste com a situação na prática, onde todas as dicas, truques e regras de ouro que visam as melhores práticas de fazer CSS, indicam uma busca contínua por personalizar a produtividade e qualidade de código de estilo. Keller e Nussbaumer (2010) acentuam que a criação de um projeto complexo na web requer um conhecimento aprofundado do CSS a fim de qualificar os aspectos estilísticos da aplicação, como também, é de suma importância conhecer algumas ferramentas web populares que possuem recursos sofisticados com o objetivo de apoiar o processo de criação CSS, como por exemplo, o Adobe Dreamweaver CS4 e versões posteriores, o Microsoft Expression Web 3 e atualizações posteriores, o Newsgator TopStyle 4 e respectivos upgrades e o Amaya, entre outros. 2.4 JSF A Internet evoluiu e atualmente mantém aplicações web cada vez mais atrativas e complexas ao usuário final, o que ocasionou no crescimento voraz das tecnologias de desenvolvimento web para fins de facilitar o processo de criação e produção de aplicativos, bem como a obtenção de resultados mais rápidos no desenvolvimento. (FILHO; FOSCHINI, 2013) De acordo com Filho e Foschini (2013), um framework é a representatividade de uma coleção de classes que constituem um abstrato design com fins de solucionar uma família de problemas, e partindo deste princípio desenvolveu-se o JSF, cujo projeto deu-se através do Java Community Process, que é um processo devidamente formalizado que permite que as partes interessadas na produção dos projetos Java se envolvam nas formulações de versões futuras ou funcionalidades da plataforma Java. Segundo Silva e Foschini (2012), o JSF é um framework para desenvolvimento web que agrega características do paradigma de projetos Model View Controller (MVC) e emprega um modelo de interfaces gráficas embasado em 31 eventos. Além disso, os autores salientam que a tecnologia JSF determina uma especificação para o desenvolvimento de projetos. Smart (2007) afirma que o JSF surgiu com o intuito de simplificar e aperfeiçoar o desenvolvimento web em Java através de poderosos componentes visuais pré-prontos como calendários, tabelas, botões e formulários, bem como excelentes ferramentas, ambientes de desenvolvimento de alta produtividade, como também bibliotecas ricas de componentes de terceiros como, por exemplo, o RichFaces, MyFaces, Bootstrap entre outros. Conforme Wang e Murray (2009), o JSF é um padrão que representa a estruturação de um aplicativo cuja função é a componentização do lado servidor, para tal faz-se necessário à conversão de conteiners existentes JSP. Ademais, os autores ainda afirmam que a principal finalidade do JSF é fazer com que o desenvolvedor não programe páginas JSP como se fossem páginas HTML, mas sim como se fossem telas de um programa, ou seja, os componentes utilizados para a criação das telas de um sistema são renderizados e exibidos em formato html. Geary e Horstmann (2012) salientam que o JSF é visto por muitos desenvolvedores como um balanço para aplicações do lado servidor devido à utilização e componentes, que permitem produzir uma interface de usuário a um nível superior do HTML puro. Além disso, os autores ainda acentuam que o JSF permite reutilizar seus próprios componentes, usar as coleções de componentes de terceiros, haja vista o PrimeFaces, Ice Faces entre outros, bem como a opção de utilizar um ambiente de desenvolvimento visual no qual é permitido soltar e arrastar componentes para um formulário, além do mais, o JSF possui componentes padrões equivalentes a quase todas as tags HTML e diversos componentes auxiliares que formam a base para a construção da interface com o usuário. Geary e Horstmann (2012) ressaltam que o JSF não é o único framework web baseado em componentes, contudo representa a camada de visão no padrão de desenvolvimento Java Enterprise Edition (JEE). Os autores ainda destacam que o JSF pode ser facilmente agregado a um contêiner independente da web, que é um componente fundamental que contém e controla outros componentes, como por exemplo, o Tomcat, além disso, o JSF dá aos desenvolvedores uma vasta gama de escolhas devido ao fato de ser um padrão com diversas implementações, como também às constantes evoluções e atualizações realizadas pelo comitê de padrões Java. 32 2.5 PRIMEFACES Conforme Caliskan e Varaksin (2013), o PrimeFaces é uma biblioteca de componentes do JSF e possui a característica de ser leve e não precisar de configuração ou quaisquer dependências externas. O PrimeFaces disponibiliza um Processamento de Página Parcial (PPR) que executa ciclos de vida de processos de validação e demais processos por meio de componentes, como também disponibiliza funcionalidades de processamento de visão embasada no framework JSF. Caliskan e Varaksin (2013) afirmam que o PrimeFaces é acoplado ao JSF a partir de um arquivo Java ARchive (JAR), o qual proporciona ao desenvolvedor web uma vasta gama de componentes com o objetivo de executar parcialmente uma determinada ação sem que seja necessário processar a visão como um todo, como por exemplo, em casos de validação onde valores diferentes necessitam ser validados da mesma forma de acordo com ações que são disparadas em momentos distintos, o que pode resultar em erros de consistência na aplicação, por adendo, tais erros podem ser sanados simplesmente com componentes do PrimeFaces como o commandButton, o commandLink, autoComplete e vários outros que permitem que o processamento do projeto seja parcial em vez de total. Carmisini e Vahldick (2012) ressaltam que o PrimeFaces dispõe de uma coleção de componentes com versões estáveis e de código aberto organizados em três módulos: a) User Interface (UI) Componentes – representa os componentes que abarcam as funcionalidades encapsuladas do JavaScript, Ajax e gráficos animados; b) Optimus – módulo responsável por facilitar o desenvolvimento com JSF e oferece componentes de extensões de segurança; c) FacesTrace – representa as funções que estão relacionadas às aplicações baseadas em JSF. Segundo Carmisini e Vahldick (2012), o PrimeFaces se destaca entre os frameworks de JSF por ser mais completo, além de poder ser executado em qualquer servidor que suporta o JSF, bem como permiti que aplicações possam ser renderizadas em diversos navegadores atuais e também possui funcionalidades voltadas para aplicações de dispositivos móveis. 33 2.6 APACHE TOMCAT Brittain e Darwin (2008) explanam que um servidor web é uma máquina que roda um determinado programa, assim como é responsável por receber uma solicitação do usuário via página web, e enviar uma resposta, além de que, um servidor web não se limita apenas em servir páginas estáticas, mas também podem executar programas em resposta às solicitações dos usuários de um navegador. Para Brittain e Darwin (2008), o Tomcat é um servidor web Java criado pela organização Apache Software Foundation (ASF), e possui características que permitem o alto desempenho para ambientes web mais complexos, bem como a possibilidade de ser um servidor web para muitas aplicações, outrossim, cabe salientar que o Tomcat é open-source, ou seja, um programa de distribuição livre e código-fonte aberto. Segundo Moodie (2007), o Tomcat teve sua origem após a fusão do projeto Java Server Web da Sun Microsystems, como o JServ da ASF, união esta que ocorreu no ano 1999 quando na ocasião, a empresa detentora do Java Web Server doou o código para a ASF, o que resultou na primeira versão do Tomcat. 2.7 JAVA Conforme Claro e Sobral (2008), as inovações tecnológicas surgidas na área de Informática têm criado um cenário em que as informações que antigamente não eram utilizadas passam a ser relevantes, portanto, tipos de dados complexos como os objetos, passaram a ser manipulados por meio das linguagens de programação, as quais passaram a receber a conotação de Linguagem de Programação Orientada a Objetos. Claro e Sobral (2008) explanam que a orientação a objetos surgiu na década de 60, e teve embasamento na Teoria dos Tipos da Álgebra, porém disseminou-se apenas na década de 90, devido a sua ampla utilização computacional, além do mais, tem como principal objetivo abstrair e modelar o mundo real, e a maneira de se interagir com os objetos. Partindo deste princípio, surgiu a linguagem de programação orientada a objetos Java, que foi desenvolvida pela Sun Microsystems na década de 90 por um grupo de programadores incluindo James Gosling, por adendo, o desenvolvedor 34 Java consegue criar através da linguagem de programação, aplicativos para desktop, aplicativos para a web, aplicações comerciais, softwares robustos, entre outros. (CLARO; SOBRAL, 2008) De acordo com Arnold, Gosling e Holmes (2007), os programas na linguagem Java são construídos por meio de classes, cuja definição permite a criação de qualquer quantidade de objetos, que podem ser definidos como instâncias de uma classe, outrossim, uma classe é composta por membros, onde os campos e métodos são as principais espécies. Além disso, os autores ainda explicam que os campos representam variáveis de dados pertencentes a objetos de uma classe ou à própria classe, e constituem o estado da classe ou objeto, além do mais, os métodos representam um conjunto de comandos que agem sobre os campos para manipular o estado, por fim, os comandos, que representam o comportamento das classes, e possuem como principal característica a capacidade de poder invocar métodos, avaliar expressões aritméticas, atribuir valores a campos e outras variáveis, entre outros. Para Claro e Sobral (2008), o Java disponibiliza uma vasta gama de mecanismos para garantir a segurança das aplicações, ou seja, um programa em Java não tem contato com o computador real, mas sim, apenas com a Java Virtual Machine (JVM), que consiste em um interpretador que lê o bytecode, um código binário que é o resultado do programa Java compilado, e representa um conjunto de instruções similares ao código de máquina. Ainda conforme os autores, o interpretador JVM decide o que pode ou não ser feito, assim, um programa Java jamais têm acesso aos dispositivos de entrada e saída, memória e sistema de arquivos de um computador, ao invés disso, ele solicita a máquina virtual que os acesse. 2.8 NETBEANS De acordo com o site NetBeans (2014), o NetBeans originou-se de um projeto estudantil inicialmente denominado Xelfi, na República Tcheca em 1996, com o intuito de escrever um Java IDE semelhante ao Delphi no Java, assim, o Xelfi foi o primeiro Java Integrated Development Environment (IDE) escrito em Java, além do mais, o nome NetBeans foi dado por Jarda Tulach, o projetista da arquitetura básica dessa IDE. 35 Segundo Gonçalves (2006), o NetBeans é um ambiente escrito completamente em Java e possui a característica de ser open-source, para mais, o NetBeans evolui constantemente, o que por sua vez resulta na competitividade junto as melhores ferramentas de desenvolvimento da atualidade. Ainda conforme Gonçalves (2006), o NetBeans proporciona ao desenvolvedor escrever, debugar e compilar e sua utilização em empresas é fator preponderante devido as exigências de alta produtividade e economia, além do mais, a IDE NetBeans disponibiliza diversas funcionalidades que atraem cada vez mais desenvolvedores pelo mundo, como por exemplo, integração com a base de dados, suporte completo ao JEE, entre outros. 2.9 CONSIDERAÇÕES ACERCA DO CAPÍTULO Em resumo, no segundo capítulo foram abordadas as principais características de cada base tecnológica a ser utilizada no desenvolvimento da interface web, bem como buscou sintetizar os principais aspectos de funcionalidade e teóricos. Sendo assim pode-se concluir que a junção dessas tecnologias é a base desta monografia, que embora seja um trabalho que envolve pesquisas e levantamentos bibliográficos, traz um enfoque importante condizente a aplicação web proposta. 36 3 DESENVOLVIMENTO DA FERRAMENTA WEB 3.1 CONSIDERAÇÕES INICIAIS Para o desenvolvimento desse projeto foram utilizados os conceitos e tecnologias já abordados respectivamente nos capítulos um e dois. Este capítulo tem por finalidade introduzir as funcionalidades da ferramenta web. Por adendo, serão apresentadas as telas com as funcionalidades desenvolvidas no sistema. 3.2 DESENVOLVIMENTO A ferramenta web foi implementada utilizando-se de frameworks como JSF e PrimeFaces, bem como da linguagem de marcação de texto HTML, linguagem de programação Java, servidor Apache TomCat, CSS e a IDE NetBeans. Todas as páginas de interface com o usuário foram implementadas utilizando o framework JSF juntamente com o PrimeFaces. O manual do PrimeFaces, assim como sua página na Internet apresentam uma vasta documentação, na qual é possível observar variados modelos de componentes para construção de páginas de interface. Com o objetivo de ilustrar um exemplo das facilidades obtidas com o uso dos componentes do PrimeFaces, a Figura 3.1 mostra a criação da tela botoes.xhtml que foi utilizada no desenvolvimento da aplicação. Figura 3.1 – Implementação do componente CommandButton Fonte: Elaborado pelo autor, 2014 37 Ao iniciar pela primeira vez a ferramenta, é exibida a tela inicial contendo um cabeçalho, o componente fileUpload do PrimeFaces, rodapé, centro, e dois botões denominados “Limpar” e “Exibir regras” criados por meio do componente CommandButton do Primefaces, enfim a tela inicial, bem como a tela “Parâmetros de configuração” são devidamente estruturadas pelo uso de tags html, estilos css, assim como pelo uso do tema delta do PrimeFaces. A Figura 3.2 apresenta a tela inicial da ferramenta. Figura 3.2 – Página inicial da ferramenta Fonte: Elaborado pelo autor, 2014 A primeira ação do usuário na ferramenta RisingMiner será realizada através do componente fileUpload, localizado logo abaixo do cabeçalho da página inicial, esse componente é responsável pelo carregamento de arquivos de diversas extensões como por exemplo, txt, arff, csv entre outros, no caso específico da ferramenta desenvolvida, o tipo de arquivo escolhido foi o Comma Separated Values (CSV). O fileUpload disponibiliza três botões, denominados “Escolher”, que é responsável pela escolha do arquivo pretendido, o botão “Carregar” que faz o carregamento do arquivo selecionado para o projeto da aplicação, e por fim o botão “Cancelar” que cancela o arquivo selecionado pelo usuário. A Figura 3.3 representa o componente fileUpload. 38 Figura 3.3 – Componente fileUpload do PrimeFaces Fonte: Elaborado pelo autor, 2014 A Figura 3.4 expõe a primeira ação do usuário na ferramenta, a escolha do arquivo csv para importação, nota-se que ao selecionar o arquivo csv, os botões “Carregar” e “Cancelar” do fileUpload são habilitados. Figura 3.4 – Opção “Escolher” do fileUpload Fonte: Elaborado pelo autor, 2014 Contudo, se o arquivo selecionado for de uma extensão diferente da préconfigurada no componente, como já citado, o csv, o fileUpload exibi uma mensagem de erro exposta pela Figura 3.5. Figura 3.5 – Mensagem de erro ao selecionar tipo de arquivo inválido Fonte: Elaborado pelo autor, 2014 Na sequência, após selecionar o arquivo, o usuário deve acionar o botão “Carregar” do fileUpload para que o arquivo seja importado para o projeto da aplicação. A Figura 3.6 apresenta a operação de carregar. Figura 3.6 – Opção “Carregar” do fileUpload Fonte: Elaborado pelo autor, 2014 Após a operação de “Carregar” o arquivo do fileUpload, automaticamente será exibida uma tela denominada “Parâmetros de configuração”, que permitirá ao usuário entrar com parâmetros de confiança mínima, suporte mínimo, generalização mínima e similaridade mínima como já explanado no capítulo um, ademais, os valores a serem digitados pelo usuário deverão estar no intervalo de 0 e 1, caso 39 contrário serão exibidas mensagens de erro, bem como se o usuário deixar algum dos campos vazios ou digitar em algum deles letras, também serão exibidas mensagens de erro. Cabe ressaltar que a tela “Parâmetros de configuração” ainda contém três botões: o botão “Extrair regras”, que é responsável por passar os parâmetros digitados pelo usuário ao algoritmo FOntGAR, o botão “Limpar” que é responsável por limpar os campos, e por fim o botão “Cancelar”, o qual é responsável por cancelar a janela de configurações, ademais, cumpre salientar que os botões pertencentes a esta tela foram criados a partir do componente CommandButton do PrimeFaces. A Figura 3.7 apresenta a tela “Parâmetros de configuração”. Figura 3.7 – Tela “Parâmetros de configuração” Fonte: Elaborado pelo autor, 2014 Complementando o que foi citado acima, a tela “Parâmetros de configuração” contém o botão “Extrair regras”, que ao ser acionado, faz uma verificação dos campos obrigatórios, bem como a validação dos campos, por exemplo, se são do tipo especificado na aplicação, o tipo de dado float, e se estão presentes no intervalo entre 0 e 1. A Figura 3.8 expõe a ação no botão “Extrair regras” com todas as mensagens de erro. 40 Figura 3.8 – Erros nos campos da tela “Parâmetros de configuração” Fonte: Elaborado pelo autor, 2014 Sequencialmente, ao clicar no botão “Extrair regras” e os campos estiverem corretos, os parâmetros digitados são devidamente passados ao algoritmo FOntGAR, consequentemente a tela de configuração é fechada, como também um método chamado fontgar é acionado no GerenciadorBean, que é responsável por acionar o algoritmo FOntGAR e passar como parâmetros a pasta do arquivo que foi carregado, bem como o próprio arquivo, sendo assim, o arquivo começa a ser processado pelo algoritmo e o progresso é exibido através de uma ProgressBar do PrimeFaces. As Figuras 3.9 e 3.10 mostram respectivamente o método fontgar e o progresso do algoritmo. Figura 3.9 – Método fontgar Fonte: Elaborado pelo autor, 2014 41 Figura 3.10 – Tela Inicial com a barra de progresso Fonte: Elaborado pelo autor, 2014 Após o término da barra de progresso, o botão “Exibir regras” que fica localizado no canto direito abaixo do componente fileUpload é habilitado, para que o usuário possa observar as regras de associação geradas pelo algoritmo FOntGAR. A Figura 3.11 representa a tela inicial com as regras de associação. Figura 3.11 – Tela Inicial com os resultados gerados pelo algoritmo FOntGAR Fonte: Elaborado pelo autor, 2014 42 3.3 COMPONENTES PRIMEFACES Este tópico sintetizará acerca de todos os componentes do framework PrimeFaces utilizados para o desenvolvimento da ferramenta RisingMiner. Abaixo seguem as explicações de todos os componentes de acordo com o manual do PrimeFaces: CommandButton: versão estendida do CommandButton padrão, representa um botão de comando; Dialog: componente que sobrepõe outros elementos na página; Fieldset: componente de agrupamento; FileUpload: componente para carregar arquivos, além de uma solução rica para navegadores antigos; GraphicImage: extensão do componente GraphicImage padrão do JSF, permite exibição e manipulação de imagens; Growl: componente de notificação utilizado para exibir mensagens em sobreposição; Inputtext: componente para criação de campos texto, baseado no inputtext padrão; Menubar: componente para navegação horizontal; OutputLabel: extensão do componente OutputLabel padrão do JSF, serve como marcador associado a outro componente através do atributo “for”; Panel: componente de agrupamento com alternância de conteúdo e menu. ProgressBar: componente indicador de status de processo; RemoteCommand: fornece uma forma para executar métodos JSF diretamente do javascript; Separator: componente que exibe uma linha horizontal para separação de conteúdo. (ÇIVICI, 2014) 3.4 CONSIDERAÇÕES ACERCA DO CAPÍTULO Como visto, este capítulo teve o propósito de apresentar e esclarecer as funcionalidades do sistema por meio de ilustrações das telas. Insta salientar que todos os objetivos propostos foram implementados. 43 4 ANÁLISES COMPARATIVAS 4.1 CONSIDERAÇÕES INICIAIS Este capítulo tem como principais objetivos fazer uma analogia entre a ferramenta proposta e criada neste trabalho monográfico com a ferramenta Weka, a fim de encontrar pontos em comum e possíveis vantagens e desvantagens levando em consideração apenas a mineração de regras de associação, já que este foi o cerne desta monografia. Ademais, o capítulo apresentará um estudo das ferramentas de mineração de dados com quadros comparativos entre as seis melhores ferramentas de código aberto, com foco na ferramenta Weka e irá sintetizar sobre os resultados obtidos com este trabalho, bem como fará um comparativo das regras de associação apresentadas na saída do console da IDE NetBeans com as regras geradas no navegador web. Por fim, o capítulo discorrerá sobre as limitações e contribuições do trabalho para a área de descoberta de conhecimento em bases de dados e possíveis melhorias para projetos futuros. 4.2 FERRAMENTAS DE MINERAÇÃO DE DADOS Segundo Goebel e Gruenwald (1999), as ferramentas de mineração de dados são caracterizadas por critérios como a conectividade a bases de dados, características gerais, objetivos de data mining e técnicas de data mining. Quanto à conectividade a base de dados, as ferramentas caracterizam-se por utilizarem dados em formato ASCII, além de levar em consideração o modelo de dados a ser devidamente analisado, relacional ou orientado a objetos, o número máximo de registros que o software pode segurar de maneira confortável. Quanto às características gerais, as ferramentas caracterizam-se pela forma como estão disponíveis para uso, por exemplo, como um protótipo de pesquisas ou um produto comercial, assim como leva-se em consideração a arquitetura do computador no qual o software pode ser instalado, o estado de desenvolvimento, ou seja, se a versão disponível é de testes, de domínio público, se está disponível para download, enfim o ambiente onde são essencialmente empregadas. No que diz respeito aos 44 objetivos de data mining, as ferramentas são caracterizadas pelo tipo de tarefa que implementam, como por exemplo, classificação, agrupamento, regressão e associação. Finalmente, quanto às técnicas de data mining pode-se dizer que especificam a metodologia aplicada para se chegar aos objetivos requeridos, como por exemplo, métodos estatísticos, árvores de decisão, clusterização, redes neurais artificiais, ontologias fuzzy, entre outros. (GOEBEL; GRUENWALD, 1999) Conforme Rangra e Bansal (2014), um grande número de ferramentas para mineração de dados foi desenvolvido nos últimos anos com o intuito de fornecer variadas técnicas de mineração para extrair dados de bases de dados, contudo, à medida que a quantidade de ferramentas disponíveis continua a se expandir, tornase deveras difícil escolher a ferramenta adequada à necessidade do negócio ou pesquisa. O Quadro 4.1 apresenta as seis principais ferramentas de código aberto disponíveis e seus respectivos domínios, e o Quadro 4.2 irá apresentar uma visão técnica geral sobre as ferramentas, com dados a respeito da plataforma, linguagens de programação, bem como o tipo de licença e as respectivas datas de lançamento. Quadro 4.1 – As seis melhores ferramentas de mineração de dados de código aberto Ferramenta URL RAPIDMINER http://rapidminer.com/products/studio/ ORANGE http://orange.biolab.si/ KNIME http://www.knime.org/ WEKA http://www.cs.waikato.ac.nz/ml/weka/ KEEL http://www.keel.es/ R http://www.r-project.org Fonte: Rangra e Bansal, 2014. (Modificado pelo autor) Cruz (2007) ressalta que a falta de estudos com rigor científico das ferramentas de mineração de dados resulta em análises exaustivas de todas as ferramentas para poder segmentar cada uma de acordo com suas características e funcionalidades, convém referir que o número de softwares de data mining apresenta um número bastante elevado devido à importância atribuída atualmente para a área de KDD e mineração de dados. O apêndice A expõe uma lista com 45 todas as ferramentas encontradas por meio de pesquisas, contudo não é possível afirmar o número exato por falta de estatísticas e listas atualizadas das ferramentas, assim como pela perspectiva de crescimento da área que ocasiona na criação de novas ferramentas de data mining acadêmicas e de mercado. Ademais, o critério abordado nesta monografia foi a seleção das ferramentas de código aberto mais utilizadas, o que reduz a lista do apêndice A para apenas seis ferramentas. O Quadro 4.2 apresenta uma visão técnica geral das ferramentas. Quadro 4.2 – Visão técnica geral das seis melhores ferramentas de mineração de dados de código aberto Lançamento Licença Sistema Linguagem Ferramenta Operacional RAPIDMINER 2006 AGPL Multiplataforma Independente Proprietary ORANGE 2009 de linguagem GNU General Multiplataforma Public Licence KNIME WEKA 2004 C GNU General Linux, OS X, Public Licence Windows 1993 GNU General Python C++, Java Multiplataforma Java Public Licence KEEL 2004 GNU GPL v3 Multiplataforma Java R 1997 GNU General Multiplataforma C, Fortran e Public Licence R Fonte: Rangra e Bansal, 2014. (Modificado pelo autor) Nota-se que no Quadro 4.2 as licenças da maioria das ferramentas são GNU General Public License, que segundo o site GNU (2014) é uma licença para software livre cujo principal objetivo é o de prover liberdade para o usuário executar, estudar e adaptar um programa para qualquer propósito, para tanto é necessário o acesso ao código-fonte. Ademais, a licença pública geral permite que o software livre seja copiado, distribuído, estudado, modificado comunidade de usuários se beneficie. e aperfeiçoado para que toda 46 Quadro 4.3 – Vantagens e desvantagens das ferramentas Ferramenta Vantagens RAPIDMINER Limitações Visualização, Estatística, Seleção Requer conhecimento de atributos, detecção de ruídos e proeminente de otimização de parâmetros. manipulação de banco de dados. ORANGE KNIME Melhor depurador, scripts mais Instalação pesada, curtos, estatísticas pobres, recursos de relatórios adequado para usuários novatos. limitados. Análise molecular, espectrometria Medidas de erro de massa, kit de desenvolvimento limitadas, sem métodos de Química. wrapper, fraca otimização de parâmetros. WEKA Facilidade de uso e pode ser Documentação fraca, estendido em RM. estatísticas clássicas fracas, má otimização de parâmetros, leitor de csv ruim. KEEL Algoritmos evolutivos, sistemas Algoritmos limitados. fuzzy. R Puramente estatística. Menos especializado para mineração de dados, requer conhecimento da língua matriz. Fonte: Rangra e Bansal, 2014. (Modificado pelo autor) Rangra e Bansal (2014) destacam que cada algoritmo analisado possui suas próprias características, cada qual oferece interfaces gráficas agradáveis com foco na usabilidade e interatividade com o usuário. O Quadro 4.3 apresentou as vantagens e desvantagens das ferramentas estudadas neste tópico, porém vale salientar que a principal vantagem implícita nos seis softwares é o fato de serem open-source, o que permite que vários colaboradores possam fazer melhorias técnicas. 47 Quadro 4.4 – Análise dos recursos das melhores ferramentas de mineração de dados de código aberto Ferramenta Tipo Recursos RAPIDMINER Análise estatística, mineração de dados e análise preditiva. ORANGE KNIME WEKA Mais de 20 funções para análise e tratamento de dados, incluindo funções de agregação; Operadores de arquivos para operar diretamente do RapidMiner; GUI intuitivos. Aprendizagem de Programação visual, visualização; máquina, mineração de Interação e dados analíticos; dados e visualização de Large toolbox e interface Scripting; dados. Documentação extensível. Mineração de dados, Escalabilidade, interface intuitiva; Business intelligence e API bem definida para extensões de plugin; relatórios empresariais. Manipulação de dados, visualização de dados. Aprendizagem de máquina 49 ferramentas de pré-processamento de dados, 66 algoritmos de classificação e regressão, 8 algoritmos de agrupamento, 3 algoritmos de regras de associação. KEEL Aprendizagem de máquina Visualização de dados, interface gráfica amigável, aprendizagem evolutiva. R Computação estatística Exploração de dados, detecção de ruídos, análise de redes sociais, computação paralela e visualização de dados geo espaciais. Fonte: Rangra e Bansal, 2014. (Modificado pelo autor) 48 Para Rangra e Bansal (2014), a conclusão da análise das seis melhores ferramentas de mineração de dados de código aberto com base nos Quadros 4.3 e 4.4 é que o KNIME seria o software mais adequado para especialistas considerados novatos na realização de tarefas de data mining, pois oferece robustez de funcionalidades internas e a possibilidade de trabalhar com funcionalidades adicionais obtidas a partir de bibliotecas de terceiros, ademais, a análise mostrou que a ferramenta Weka seria uma segunda opção em relação ao KNIME dado que seus recursos internos também não requerem do usuário grande conhecimento de programação. Em contrapartida, concluí-se que as ferramentas RapidMiner e Orange são consideradas mais adequadas para especialistas mais avançados, pois requerem certo nível de habilidade de programação e de ciências exatas, porém o RapidMiner mostra-se mais vantajoso exatamente pelo fato de ser independente de linguagem de programação e possuir capacidades de análise estatística e previsão, o que torna sua utilização mais fácil por poder ser implementado em qualquer sistema e por integrar algoritmos de outras ferramentas que foram base para este estudo. Com base nas análises realizadas neste tópico, será realizada no tópico 4.3 a descrição da ferramenta de mineração de dados Weka com o objetivo de introduzir os principais conceitos para posterior comparação com a ferramenta RisingMiner criada nesta monografia, ademais, insta salientar que a opção pela análise comparativa ser com a ferramenta Weka, deve-se ao fato de ser uma aplicação bastante complexa e com funções que permitem trabalhar tanto no âmbito comercial como no acadêmico. 4.3 ANÁLISE COMPARATIVA ENTRE A FERRAMENTA WEKA E FERRAMENTA RISINGMINER 4.3.1 Weka Segundo o site Waikato (2014), a origem do nome Weka refere-se a uma ave que não voa e com uma natureza inquisitiva, encontrada apenas nas ilhas da Nova Zelândia, ademais, o nome foi utilizado para denominar uma ferramenta aplicada à área de ciência da computação, mais especificamente com aprendizagem de máquinas desenvolvida na Universidade de Waikato, Nova Zelândia. 49 O site Waikato (2014) explica que aprendizagem de máquina refere-se a métodos que permitem que um programa de computador possa analisar uma massa volumosa de dados e decidir quais informações são mais relevantes, a partir deste ponto é possível cristalizar a informação para ser usada posteriormente em previsões ou em tomadas de decisões. De acordo com Rangra e Bansal (2014) a Weka trata-se de um conjunto de algoritmos de aprendizado de máquina a fim de prover tarefas de mineração de dados, tais algoritmos podem ser aplicados de forma direta a uma coleção de dados, por adendo, a Weka possui uma coleção de diversas ferramentas para visualização e algoritmos para análise de dados, assim como, é uma ferramenta open-source baseada em Java. Abaixo uma ilustração da tela inicial da Weka para a seleção da interface gráfica. Figura 4.1 – Tela inicial para escolha de interfaces gráficas da Weka Fonte: Waikato, 2014 Conforme Rangra e Bansal (2014), a Weka dispõe de três interfaces gráficas, a primeira é denominada Explorer, cujo objetivo é oferecer mecanismos de análise exploratória dos dados, a segunda é o Experimenter, que fornece um ambiente experimental e a última trata-se do KnowledgeFlow que é um modelo de interface inspirado em design visual de KDD. Além das interfaces gráficas, a Weka também oferece uma interface simples chamada de Simple CLI, que permite ao explorador da ferramenta digitar comandos em linha de comandos simples. 50 Para Pimenta et al. (2009), a Weka foi desenvolvida utilizando a abordagem de framework, ou seja, permite que novos algoritmos e funcionalidades sejam agregadas de maneira confortável, além de que, a aplicação Weka pode acessar dados em bases de dados através de conexão via JDBC. Finalmente, devido às funcionalidades que a Weka dispõe como algoritmos de classificação, préprocessamento, regressão, regras de associação, clustering e o fato de ser extensível fazem desta ferramenta uma das mais populares entre a comunidade de mineração de dados. 4.3.2 Comparações entre as ferramentas RisingMiner e Weka De acordo com Gonçalves (2011), a ferramenta Weka possui como ponto forte a mineração de classificadores em base de dados, porém também pode ser utilizada para executar outras tarefas, como por exemplo, a mineração de regras de associação, por adendo, a Weka trabalha apenas com arquivos de entrada no formato ARFF, que corresponde a um arquivo texto formado por um grupo de observações, precedido por um pequeno cabeçalho. O autor ainda explica que o cabeçalho é utilizado para disponibilizar informações referentes aos campos que compõem o conjunto de observações. A Figura 4.2 ilustra um exemplo de como é composto o arquivo de entrada ARFF. Figura 4.2 – Estrutura do arquivo ARFF Fonte: Gonçalves, 2011 É importante observar que o formato de arquivo ARFF foi inicialmente proposto para a mineração de classificadores, contudo, ele foi adaptado para a mineração de regras de associação, o que por sua vez, resulta em uma base de 51 dados estruturada de forma complexa, porém capaz de ser manipulada pela ferramenta, ademais, todos os itens que compõem a base devem ser especificados no cabeçalho do arquivo ARFF e ser do tipo categórico, ou seja, suportando apenas dois valores {y, n} ou {yes, no}. (GONÇALVES, 2011) No exemplo ilustrado pela Figura 4.2, nota-se que a base possui seis itens distintos, I1, I2, I3, I4, I5 e I6, no entanto, é visto o uso do caracter ‘?’, que no arquivo ARFF, tem a incumbência de representar os itens ausentes, por exemplo, na primeira transação têm-se os itens I1, I2 e I5 representados por ‘y’, exceto os itens I3, I4 e I6, que são representados por ‘?’. (GONÇALVES, 2011) A Figura 4.3 ilustra a interface Explorer da ferramenta Weka, onde será realizada a importação do ARFF. Figura 4.3 – Interface Explorer da ferramenta Weka Fonte: Waikato, 2014 O processo de importação da base na ferramenta Weka é similar ao processo realizado pela ferramenta RisingMiner desenvolvida neste trabalho, aqui, a única diferença notada são os tipos dos arquivos de entrada, no caso da Weka, os 52 arquivos devem ser do tipo ARFF, já na ferramenta RisingMiner, os tipos de arquivos deverão ser obrigatoriamente do tipo CSV como já explanado no tópico 3.1. Segundo o site inetweb (2014), arquivo CSV é um formato de arquivo que utiliza a quebra de linha e as vírgulas para fazer a separação dos valores, além de que, o formato também permite a utilização de aspas em campos no qual são usados os caracteres reservados como a vírgula e quebra de linha. As Figuras 4.4 e 4.5 ilustram respectivamente um exemplo de uma tabela qualquer e como essa tabela pode ser representada em CSV. Figura 4.4 – Exemplo de tabela de carros Fonte: inetweb, 2014 Figura 4.5 – Representação da tabela de carros em CSV Fonte: inetweb, 2014 Por adendo, o site inetweb (2014) ainda explana que os arquivos CSV são bastante simples, o que torna seu uso comum em todas as plataformas de computador, além disso, a robustez no formato CSV o torna mais amplo que outros formatos digitais do mesmo segmento. Com base nestas informações, pode-se concluir que a ferramenta RisingMiner se sobressai sobre a Weka no que concerne ao tipo de arquivo de entrada, dado que o formato CSV é muito mais simples e robusto do que outros formatos semelhantes, bem como foi constatado que o arquivo ARFF possui uma estrutura confusa, além de ser uma adaptação de outra funcionalidade. Após a importação do arquivo para a ferramenta Weka, o usuário deve clicar na aba Associate, que é responsável por exibir uma tela para que as regras de associação sejam geradas, cabe ressaltar, que nesta parte do processamento a ferramenta Weka apresenta uma funcionalidade deveras importante, que é a escolha de um determinado algoritmo por meio do botão Choose presente na aba 53 Associator, portanto, a característica da Weka de disponibilizar vários algoritmos para associar as regras é a principal vantagem sobre a ferramenta RisingMiner, que por sua vez, apenas extrai as regras de associação através do algoritmo FOntGAR. A Figura 4.6 apresenta a tela Associate da Weka com a simulação da escolha de um algoritmo por meio do botão Choose. Figura 4.6 – Escolha de um algoritmo na ferramenta Weka Fonte: Waikato, 2014 Na sequência, ainda na aba Associate, o algoritmo que vem pré-selecionado pela ferramenta é o Apriori, que segundo Ayres (2012), é um algoritmo tradicional na mineração de regras de associação, e tem como objetivo identificar conjuntos de itemsets frequentes e gerar as regras de associação a partir deles. Ademais, ao clicar duas vezes onde está escrito o nome do algoritmo Apriori, é exibida uma tela para que o usuário possa configurar os parâmetros do algoritmo. Nas Figuras 4.7 e 4.8 será exibida respectivamente a linha onde contém o nome do algoritmo e a tela para configuração dos parâmetros. Figura 4.7 - Algoritmo Apriori pré-selecionado Fonte: Waikato, 2014 54 Figura 4.8 – Tela de parâmetros da ferramenta Weka Fonte: Waikato, 2014 A tela de parâmetros ilustrada na Figura 4.8 é semelhante à tela de parâmetros da ferramenta RisingMiner explanada no tópico 3.1, porém a tela da Weka apresenta maior quantidade de campos em relação à RisingMiner, como também contém um botão específico denominado More, que é responsável por exibir uma janela de ajuda com informações referentes aos parâmetros. Ademais, conforme Gonçalves (2011), os principais parâmetros relativos ao Apriori são o lowerBoundMinSupport, que representa o suporte mínimo, e o upperBoundMinSupport, que representa o limite superior para o suporte, o numRules que é o número máximo de regras que serão exibidas na tela de resultados, além do parâmetro metricType, cuja função é o de disponibilizar medidas de interesse que determinará a validade da regra, a Weka oferece as medidas de lift, conviction e leverage, assim como a medida confidence utilizada na Figura 4.8, que representa a confiança da regra. 55 Sequencialmente, após configurar os parâmetros e clicar em OK, o usuário deverá clicar em um botão nomeado Start, que é responsável por minerar as regras de associação e exibir os resultados na tela. Sendo assim, ao analisar este processo em particular, pode-se dizer que a ferramenta RisingMiner executa o processo de extração das regras de maneira mais intuitiva, pois como fora explicado no tópico 3.1, ao clicar no botão Extrair regras que corresponde ao OK da Weka, as regras já começam a ser geradas automaticamente, o que não acontece com a Weka, já que ao clicar em OK, a ferramenta ainda espera uma nova ação do usuário para iniciar seu processamento de extração das regras de associação. A Figura 4.9 ilustra a tela de resultados da Weka com as regras de associação geradas. Figura 4.9 – Tela de resultados da Weka com as regras geradas Fonte: Waikato, 2014 Em suma, cabe ressaltar, que nessa etapa em particular, a aplicação RisingMiner exibi o progresso do algoritmo na geração dos resultados através de uma barra de progresso, enquanto que a Weka não exibi nada, apenas espera até que os resultados apareçam na tela, para mais, pode-se concluir que a ferramenta RisingMiner é mais intuitiva e dinâmica do que a ferramenta Weka no que diz respeito à tarefa de associação. 56 4.4 CONSIDERAÇÕES ACERCA DO CAPÍTULO Esse capítulo apresentou um estudo sobre as seis melhores ferramentas de código aberto da atualidade, bem como uma comparação da ferramenta desenvolvida neste trabalho com a ferramenta Weka com o objetivo de validar a abordagem proposta. 57 5 CONCLUSÕES 5.1 RESULTADOS OBTIDOS Conforme exposto na Introdução e no capítulo um, o principal objetivo deste trabalho foi desenvolver uma ferramenta para mineração de regras de associação generalizadas que juntamente com o algoritmo FOntGAR proporcionasse um conjunto final de regras mais reduzido, semântico e não redundante, a fim de facilitar o entendimento do usuário. Haja vista que o algoritmo FOntGAR não tinha uma ferramenta para manipular seu processamento, as regras de associação geradas eram apresentadas no console da IDE NetBeans sem nenhum tratamento em HTML, assim como os parâmetros de confiança mínima, suporte mínimo, generalização mínima e similaridade mínima teriam que ser digitados no próprio método do algoritmo caso o usuário respectivo quisesse obter regras de associação customizadas, ou seja, não havia nenhuma ação do usuário via interface, fato que motivou a criação da ferramenta RisingMiner. A Figura 5.1 ilustra o console do NetBeans com as regras geradas. Figura 5.1 – Console do NetBeans com as regras geradas Fonte: Elaborado pelo autor, 2014 58 Sendo assim, o desenvolvimento da ferramenta RisingMiner trouxe uma nova perspectiva para o processo do algoritmo FOntGAR através de uma interface web intuitiva e de fácil entendimento, que proporciona ao usuário carregar qualquer arquivo de dados no formato CSV para análise, além de fornecer uma tela para entrada de parâmetros, a fim de que as regras que serão posteriormente geradas estejam de acordo com a preferência do usuário. A Figura 5.2 apresenta regras generalizadas do algoritmo FOntGAR na ferramenta RisingMiner. Figura 5.2 - Tela da ferramenta RisingMiner com as regras geradas Fonte: Elaborado pelo autor, 2014 5.2 LIMITAÇÕES É de extrema importância referir que houve diversas limitações nesta monografia como, por exemplo, a escassez de material para pesquisa no que concerne a ferramentas de mineração de dados, pois existem muitas pesquisas relativas a algoritmos existentes, comparativos entre diversos algoritmos e ferramentas, porém não foi possível encontrar pesquisas relevantes sobre a implementação de um software para mineração de regras de associação. Ademais, foram encontradas dificuldades no desenvolvimento da ferramenta web RisingMiner para mineração de regras de associação, pois apesar de exaustiva 59 pesquisa sobre mineração de dados e suas principais ferramentas, não houve resultado favorável quanto à pesquisas de ferramentas web desenvolvidas com JSF e PrimeFaces a fim de dar uma panorâmica que auxiliasse na criação da ferramenta RisingMiner, fato este que dificultou em muitos momentos a implementação do préprocessamento em conjunto com o algoritmo FOntGAR, que se mostrou deveras complexo, cabe lembrar que a aplicação RisingMiner englobou apenas a tarefa de associação, portanto não foram analisadas outras tarefas, nem tampouco outras dimensões do processo de descoberta de conhecimento em bases de dados como, por exemplo, a utilização do conhecimento adquirido e o pós-processamento por meio de análise de resultados. Por fim, uma última limitação encontrada no trabalho foi em relação à responsividade, pois a ferramenta pode ser visualizada em diversos tipos de navegadores, e isso pode acarretar em desconfiguração do tamanho de componentes, temas que possam eventualmente não ser reconhecidos, entre outros. 5.3 CONTRIBUIÇÕES Entre as contribuições deste trabalho, cabe enfatizar o fato de ter sido criada uma nova ferramenta de mineração de regras de associação no ambiente web, o que contribui para a área de mineração de dados no sentido de que tal aplicação objetivou em prover uma interface intuitiva e dinâmica para as regras geradas pelo algoritmo FOntGAR, que é devidamente reconhecido pela comunidade científica e foi resultado de uma pesquisa a nível de mestrado. Para mais, a ferramenta criada possibilita que o usuário determine os valores dos parâmetros de configuração minconf, minsup, mingen e minsim em tela, o que dinamiza o processo e customiza a forma como as regras serão extraídas e exibidas no browser. Sendo assim, ao considerar as análises comparativas entre as seis principais ferramentas de mineração de dados de código aberto e as comparações entre a ferramenta web RisingMiner criada neste trabalho com a ferramenta Weka, pode-se dizer que este trabalho monográfico é um auxílio para fornecer uma visão de futuro para o desenvolvimento de aplicativos com mais disponibilidade e eficiência que podem apoiar diversas áreas tanto de negócios como acadêmicas. 60 5.4 PUBLICAÇÕES As contribuições apresentadas anteriormente proporcionaram a oportunidade de publicações dos resultados parciais em evento importante de iniciação científica, o 14º Congresso Nacional de Iniciação Científica (CONIC – SEMESP) que visa identificar talentos e estimular a produção de conteúdo científico e contribuir com o desenvolvimento intelectual de alunos do Ensino Superior. O artigo submetido de nome “Ferramenta web para mineração de regras de associação” foi enviado na categoria de trabalhos em andamento, pois na data da submissão a ferramenta não apresentava resultados conclusivos, ademais, o artigo descreve resumidamente os objetivos da criação de uma ferramenta web para regras de associação e sua devida importância para a área de mineração de dados. Enfim, seguindo os critérios do congresso acima citado, o artigo foi devidamente aprovado na categoria Ciências Exatas e da Terra, na área de Computação e Informática. 5.5 TRABALHOS FUTUROS Esta monografia proporciona por fim, diversas perspectivas para trabalhos futuros como, por exemplo, agregar novos algoritmos de mineração de regras de associação na ferramenta RisingMiner e comparar o desempenho em tempo de cada um, assim como também, agregar algoritmos que executam outras tarefas de mineração de dados como regressão, agrupamento e classificação. O uso da abordagem de desenvolvimento web proporciona diversos caminhos para complementar a ferramenta RisingMiner, como por exemplo, a questão da responsividade, uma tendência que vem crescendo por ocasião da mobilidade, mas que também sana problemas de tamanhos de componentes que ficam menores ou maiores em determinados navegadores, portanto, a responsividade pode vir a ser, em trabalhos futuros, um tema importante a ser considerado. Por fim, a ferramenta pode ser otimizada a fim de dinamizar ainda mais o processo de extração de regras de associação como agregar alguma API para geração de relatórios dos resultados, estatísticas, gráficos, entre outros, por adendo, pode-se alargar a avaliação experimental a mais ferramentas que implementam 61 regras de associação para que o estudo realizado neste trabalho seja complementado. 62 REFERÊNCIAS BIBLIOGRÁFICAS AGRAWAL, R.; SHAFER, J. C. Parallel Mining of Association Rules. 1996. Disponível em: <http://rakesh.agrawal-family.com/papers/tkde96passoc.pdf> Acesso em: 19 mai. 2014. AGRAWAL, R.; SRIKANT, R. Mining generalized association rules. 1995. Disponível em: <http://www.vldb.org/conf/1995/P407.PDF> Acesso em: 10 nov. 2014. ALMEIDA, M. B.; BAX, M. P; Uma visão geral sobre ontologias: pesquisa sobre definições, tipos, aplicações, métodos de avaliação e de construção. 2003. Disponível em: <http://mba.eci.ufmg.br/downloads/19019.pdf> Acesso em: 03 nov. 2014. ANCIUTTI, I. Mineração de Dados em Redes de Baixa Tensão Usando Algoritmos Genéticos. 2005. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Santa Catarina, Florianópolis. ARNOLD, K; GOSLING, J; HOLMES, D. A linguagem de programação Java. Tradução Maria Lúcia Blank Lisbôa. 4. ed. Porto Alegre: Bookman, 2007. AYRES, R. M. J. Mineração de Regras de Associação Generalizadas Utilizando Ontologias Fuzzy e Similaridade Baseada em Contexto. 2012. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos. BERGSTEIN, H. JavaServer Pages. 2. ed. Sebastopol: O’Reilly & Associates, Inc., 2002. BRACHMAN, R. J.; ANAND, T. The Process of Knowledge Discovery in Databases: A First Sketch. 1994. Disponível em: <http://migre.me/mSqz5> Acesso em: 16 mai. 2014. 63 BRAGA, Luis P. V. Introdução à Mineração de Dados. 2. ed. Rio de Janeiro: Epapers Serviços Editoriais Ltda., 2005. BRITTAIN, J.; DARWIN, I. F. Tomcat: The Definitive Guide. 2. ed. Sebastopol: O’ Reilly Media, Inc., 2008. CALISKAN, M.; VARAKSIN, O. PrimeFaces Cookbook. Birmingham: Packt Publishing Ltd., 2013. CAMPOS, MARIA L. A.; GOMES, HAGAR E. Taxonomia e Classificação: o princípio de categorização. Disponível em: <http://migre.me/lYAKe> Acesso em: 29 set. 2014. CARMISINI, A.; VAHLDICK, A. Comparativo entre Frameworks de JavaServer Faces: Apache Tobago, Primefaces e Richfaces. 2012. Disponível em: < http://migre.me/mRefU> Acesso em: 09 mai. 2014. ÇIVICI, C. PrimeFaces User’s Guide 4.0. Disponível em: < http://www.primefaces.org/documentation> Acesso em: 03 nov. 2014. CLARO, D. B.; SOBRAL, J. B. M. Programação em JAVA. Florianópolis: Copyleft Pearson Education, 2008. COOK, D. Data Push Apps with HTML5 SSE. Sebastopol: O’Reilly Media, Inc., 2014. DOMINGUES, M. A. Generalização de regras de associação. 2004. Dissertação (Mestrado em Ciência da Computação e Matemática Computacional) – Instituto de Ciências Matemáticas e de Computação, São Carlos. ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. Tradução Marília Guimarães Pinheiro et al. 4. ed. São Paulo: Pearson Addison Wesley, 2005. 64 ESCOVAR, L. S. Semanticamente G. Algoritmo Similares. 2004. SSDM para a Mineração Dissertação (Mestrado de Dados em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos. FAYYAD, U.; PIATETSKY-SHAPIRO, G.; SMYTH, P. From Data Mining to Knowledge Discovery in Databases. 1996. Disponível em: < http://migre.me/mRecY> Acesso em: 16 mai. 2014. FILHO, C. J. S.; FOSCHINI, I. J. JavaServer Faces 2.0: Melhorias em relação à versão 1.2 para o Desenvolvimento Web. 2013. Disponível em:<http://revistatis.dc.ufscar.br/index.php/revista/article/view/36/39> Acesso em: 30 abr. 2014. GEARY, D.; HORSTMANN, C. Core JavaServer Faces. 3. ed. Boston: Prentice Hall (Pearson), 2010. GNU. What is GNU? Disponível em: <https://www.gnu.org/> Acesso em: 01 nov. 2014. GOEBEL, M.; GRUENWALD L. A Survey of Data Mining and Knowledge Discovery Software Tools. 1999. Disponível em: <http://migre.me/m6LrP> Acesso em: 04 out. 2014. GONÇALVES, E. C. Mineração de Regras de Associação com a Ferramenta de Data Mining Weka. 2011. Disponível em: <http://www.devmedia.com.br/mineracaode-regras-de-associacao-com-a-ferramenta-de-data-mining-weka/20478#> Acesso em: 12 nov. 2014. GOODWILL, J. Pure JSP – Java Server Pages: A Code- Intensive. Indianapolis: Sams Publishing, 2000. GRANNEL, C. The Essential Guide to CSS and HTML Web Design. New York: Springer-Verlag, 2007. 65 HAN, J.; KAMBER, M. Data Mining: Concepts and Techniques. 2.ed. San Francisco: Elsevier Inc., 2006. INETWEB. O que é formato CSV? Disponível em: < http://wiki.inetweb.com.br/index.php?title=O_que_%C3%A9_formato_CSV_%3F> Acesso em: 02 nov. 2014. KDNUGGETS. Mikut Data Mining Tools Big List – Update. Disponível em: < http://www.kdnuggets.com/2013/09/mikut-data-mining-tools-big-list-update.html> Acesso em: 27 out. 2014. KELLER, M.; NUSSBAUMER, M. Cascading Style Sheets: A Novel Approach Towards Productive Styling with Today’s Standards. 2009. Disponível em: <http://www2009.eprints.org/161/1/p1161.pdf> Acesso em: 07 mai. 2014. KELLER, M.; NUSSBAUMER, M. CSS Code Quality: A Metric for Abstractness; Or Why Humans Beat Machines in CSS Coding. 2010. Disponível em: < http://migre.me/mMSKk> Acesso em: 08 mai. 2014. LEITE, M. A. Modelo Fuzzy para Recuperação de Informação Utilizando Múltiplas Ontologias Relacionadas. 2009. Tese (Doutorado em Engenharia Elétrica) – Faculdade de Engenharia Elétrica e de Computação, Campinas. LIE, H. W. Cascading Style Sheets. 2005. Tese (Doutorado em Matemática e Ciências Naturais) – Faculty of Mathematics and Natural Sciences, Oslo. MACDONALD, M. HTML5: The missing manual. 1. ed. Sebastopol: O’Reilly Media, Inc., 2011. MANILLA, H. Methods and problems in data mining. 1997. Disponível em: < http://migre.me/noGz4 > Acesso em: 16 mai. 2014. MCLAUGHLIN, B. PHP e MySQL: The Missing Manual. 2. ed. Sebastopol: O’Reilly Media, Inc., 2013. 66 MITRA, S; ACHARYA, T. Data Mining: Multimedia, Soft Computing, and Bioinformatics. New Jersey: John Wiley & Sons, Inc., 2003. MOODIE, M. Pro Apache Tomcat 6. New York: Apress, 2007. MORAIS, E. A. M.; AMBRÓSIO, A. P. L. Ontologias: conceitos, usos, tipos, metodologias, ferramentas e linguagens. 2007. Disponível em: < http://migre.me/mSpcd> Acesso em 11 nov. 2014. O GLOBO. Total de informação armazenada pela humanidade formaria pilha de CDs até depois da Lua. Disponível em: <http://migre.me/mMSeP> Acesso em: 05 nov. 2014. PASQUIER, N.; BASTIDE, Y.; TAOUIL, R.; LAKHAL, L. Efficient Mining of Association Rules Using Closed Itemset Lattices. 1999. Disponível em: < http://migre.me/mReoz > Acesso em: 19 mai. 2014. PIATETSKY-SHAPIRO, G. Knowledge Discovery in Databases: 10 years after. 2000. Disponível em: <http://migre.me/ls9l7> Acesso em: 19 mai. 2014. PIMENTA, A.; VALENTIM, P.; SANTOS, D.; NETO, M. WEKA-G: mineração de dados paralela em grades computacionais. 2009. Disponível em: < http://migre.me/mSprS > Acesso em: 06 out. 2014. RANGRA, K.; BANSAL, K. L. International Journal of Advanced Research in Computer Science and Software Engineering. Comparative Study of Data Mining Tools. 2014. Disponível em: <http://migre.me/maKxK> Acesso em: 05 out. 2014. SANTOS, M. F. A. Integração Mineração de Dados – SGBD não é uma panaceia: Estudo da Integração do Algoritmo Apriori Quantitativo ao Oracle 9I. 2002. Dissertação (Mestrado em Informática) – Universidade Federal de Campina Grande, Campina Grande. 67 SILVA, M. A. C.; FOSCHINI, I. J. Implementação do padrão façade utilizando o Framework JavaServer Faces: um estudo de caso. 2012. Disponível em: < http://migre.me/mSpCo> Acesso em: 10 mai. 2014. SMART, J. F. JSF Jumpstart. Wellington: Wakaleo Consulting Limited, 2007. THE DATA MINE. Data Mining Software, Tools and Applications. Disponível em: < http://www.the-data-mine.com/Software/DataMiningSoftware> Acesso em: 08 nov. 2014. VASCONCELOS, L. M. R.; CARVALHO, C. L. Aplicação de Regras de Associação para Mineração de Dados na Web. 2004. Disponível em: < http://migre.me/mSpI8 > Acesso em: 16 mai. 2014. WAIKATO. Weka 3: Data Mining Software in Java. Disponível em: <www.cs.waikato.ac.nz> Acesso em: 05 nov. 2014. WANG, S.; MURRAY, B. Method, System and Program Product for Implementing Java Server Page (JSP) Containers as Java Server Faces (JSF) Components. 2009. Disponível em: <http://migre.me/ls9iI> Acesso em: 30 abr. 2014. WELLING, L.; THOMPSON, L. PHP and MySQL Web Development. 2. ed. Indianapolis: Sams Publishing, 2003. WITTEN, I. H.; FRANK, E. Data Mining: Practical Machine Learning Tools and Techniques. 2. ed. San Francisco: Elsevier Inc. 2005. 68 APÊNDICE A – FERRAMENTAS DE MINERAÇÃO DE DADOS Quadro A.1 – Ferramentas de mineração de dados Nome do Tipo da licença URL Comercial http://www.11antsanalytics.com/ Comercial http://zementis.com/ Comercial http://zementis.com/ Comercial http://www.appricon.com/ Comercial http://www.angoss.com/predictive- Software 11Ants Model Builder ADAPA Enterprise Edition ADAPA Predictive Analytics Analysis Studio Angoss KnowledgeSE analytics- EKER software/software/knowledgeseeker/ ANGOSS Comercial http://www.angoss.com/predictive- KnowledgeST analytics- UDIO software/software/knowledgestudio/ ARMiner Grátis e open- http://www.cs.umb.edu/~laur/ARMiner/ source ARTool Grátis e open- http://www.cs.umb.edu/~laur/ARtool/index. source html Comercial http://www.appricon.com/ Bayes Server Comercial http://www.bayesserver.com/ BLIASoft Comercial http://www.bliasoft.com/Eindex.html Comercial http://www.salford-systems.com/ Analysis Studio Knowledge Discovery CART® 69 APÊNDICE A – CONTINUAÇÃO Clementine Comercial http://www.salfordsystems.com/products/spm Coheris SPAD Comercial Data Mining Compumine http://www.coheris.com/produits/analytics/l ogiciel-data-mining/ Grátis http://www.compumine.com/ D2K – Data to Comercial e http://d2k.tamu.edu/ Knowledge open-source Data Applied Comercial http://data-applied.com/ DataDetective Comercial http://www.sentient.nl/?dden Eaagle Full Comercial http://wp.eaagle.com/ Grátis e open- http://sourceforge.net/projects/gait-cad/ Rule Discovery System Text Mapper (FTM) Gait - CAD source GeneXproTool Comercial http://www.gepsoft.com/ GenIQ Comercial http://www.geniq.net/ GhostMiner Comercial http://www.fqs.pl/business_intelligence/pro s 5.0 ducts/ghostminer GMDH Shell Comercial Helium Comercial Scraper IBM SPSS p?p=home Comercial Modeler InfiniteInsight https://www.gmdhshell.com/ http://www.heliumscraper.com/en/index.ph http://www01.ibm.com/software/analytics/spss/ Comercial http://www.sap.com/pc/analytics/predictiveanalytics/software/infiniteinsight/index.html JMP Comercial http://www.jmp.com/ KEEL Grátis http://www.keel.es/ 70 APÊNDICE A – CONTINUAÇÃO KXEN Analytic Comercial Framework http://www.sap.com/pc/analytics/predictiveanalytics/software/infiniteinsight/index.html Magnum Opus Comercial http://www.giwebb.com/ Magnum Opus Grátis e open- http://www.giwebb.com/ Demo source MARS Comercial http://www.salford-systems.com/ MDR Grátis e open- http://www.multifactordimensionalityreducti source on.org/ Comercial http://www.milincorporated.com/milshield2. Mil Shield html Model Builder Comercial http://www.fico.com/en/products/ficomodel-builder/ Molegro Data Comercial Modeller http://www.scientificsoftwaresolutions.com/product.php?productid=1762 6 NovoSpark Comercial Visualizer http://www.novospark.com/Products/Visuali zer/Overview.aspx OmniAnalyser Comercial http://hypersoft.com/omnianalyser.htm Oracle Data Comercial http://www.oracle.com/technetwork/databa Mining se/options/advancedanalytics/odm/index.html Orange Grátis e open- http://orange.biolab.si/ source Partek Comercial http://www.partek.com/ Comercial http://www.the-data- Discovery Suite perSimplex mine.com/Software/PerSimplex Plug&Score Modeler Comercial http://plug-n-score.com/ 71 APÊNDICE A – CONTINUAÇÃO PolyAnalyst Comercial http://www.megaputer.com/site/index.php Predixion Comercial http://www.predixionsoftware.com/ Grátis e open- http://www.r-project.org/ Enterprise Insight R source RandomForest Comercial s® http://www.salfordsystems.com/products/randomforests RapAnalyst Comercial http://rapanalyst.software.informer.com/ RapidMiner Grátis e open- https://rapidminer.com/ source Revolution R Comercial e Enterprise open-source SAS Comercial Enterprise http://www.revolutionanalytics.com/ http://www.sas.com/en_us/software/analyti cs/enterprise-miner.html Miner scikit learn Grátis e open- http://scikit-learn.org/stable/ source Screenscraper Comercial http://www.screenscraper.com/download/choose_version.ph p SharperLight Comercial http://www.philight.com.au/ SPAD Comercial http://www.coheris.com/produits/analytics/l ogiciel-data-mining/ SPM Comercial http://www.salfordsystems.com/products/spm SQL Server Comercial http://www.sqlserverdatamining.com/ssdm/ Comercial http://www.stata.com/ Data Mining Stata 72 APÊNDICE A – CONTINUAÇÃO Think Comercial http://www.thinkanalytics.com/ Comercial http://spotfire.tibco.com/ Tiberius Comercial http://www.tiberius.biz/ TreeNet® Comercial http://www.salford- Enterprise Data Miner TIBCO Spotfire Miner systems.com/products/treenet Viscovery Comercial http://www.viscovery.net/ VisuMap Comercial http://www.visumap.net/ Weka Grátis e open- http://www.cs.waikato.ac.nz/ml/weka/ source Fonte: the-data-mine; kdnuggets, 2014. (Modificado pelo autor) 73 ANEXO A – ARQUIVO DE DADOS A ferramenta RisingMiner foi desenvolvida com o intuito de minerar regras de associação generalizadas por meio do algoritmo FOntGAR, e para tal, foi utilizada um arquivo de dados testes denominado supermercado.csv, que é um arquivo que contém 1717 transações. A Figura A.1 representa uma parte do arquivo de entrada supermercado.csv, que foi o arquivo de dados teste utilizado pelo FOntGAR, para a geração das regras de associação generalizadas. Figura A.1 – Arquivo de dados supermercado.csv Fonte: Elaborado pelo autor, 2014 Segundo Ayres (2012), o resultado que é apresentado ao usuário consiste de regras generalizadas e regras que não puderam ser generalizadas, ademais, as regras de associação generalizadas proporcionam um conjunto final de regras mais reduzido no montante de regras gerado. 74 A Figura A.2 apresenta a tela inicial da ferramenta RisingMiner, com as regras de associação generalizadas, geradas à partir do arquivo de entrada supermercado.csv. Figura A.2 – Regras geradas a partir do arquivo de entrada supermercado.csv Fonte: Elaborado pelo autor, 2014 Conforme Ayres (2012) existem dois aspectos muito importantes que estão correlacionados às regras de associação geradas, que são o suporte e a confiança. O autor ainda explica que o suporte de uma regra corresponde ao percentual de transações do banco de dados em que antecedente e consequente da regra aparecem conjuntamente na mesma transação, em contrapartida, a confiança é o percentual de transações, dentre as que possuem o antecedente da regra, em que antecedente e consequente aparecem simultaneamente na mesma transação. Para mais, ao observar como exemplo a regra 3417 da Figura A.2, COCACOLA->MACGALO, com grau de suporte em 5% e confiança em 60%, isso significa que em 5% de todas as transações do banco de dados os itens COCA-COLA e MACRENATA aparecem conjuntamente na mesma transação, e em 60% das vezes em que COCA-COLA apareceu em uma transação, MACRENATA também apareceu.