centro estadual de educação tecnológica paula souza

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