SAMiRA – UMA PROPOSTA DE SISTEMA DE APOIO À

Propaganda
UNIVERSIDADE ESTADUAL DO CEARÁ
Centro de Ciências Tecnológicas - CCT
INSTITUTO FEDERAL DE EDUCAÇÃO,
CIÊNCIA E TECNOLOGIA DO CEARÁ
Diretoria de Pesquisa e Pós-Graduação - DIPPG
SANDRO LUIZ DA PAIXÃO XAVIER
SAMiRA – UMA PROPOSTA DE SISTEMA DE APOIO À
MINERAÇÃO DE REGRAS DE ASSOCIAÇÃO
FORTALEZA – CEARÁ
2010
SANDRO LUIZ DA PAIXÃO XAVIER
SAMiRA – UMA PROPOSTA DE SISTEMA DE APOIO À
MINERAÇÃO DE REGRAS DE ASSOCIAÇÃO
Dissertação apresentada ao Curso de Mestrado
Integrado Profissional em Computação Aplicada
do Centro de Ciências e Tecnologia da
Universidade Estadual do Ceará e Diretoria de
Graduação e Pós-Graduação do Instituto Federal
de Educação, Ciência e Tecnologia do Ceará,
como requisito para a obtenção do grau de Mestre
em Computação Aplicada.
Área de Concentração: Mineração de dados.
Orientador: Prof. Dr. Jerffeson Teixeira de Souza.
FORTALEZA
2010
18
X3s
Xavier, Sandro Luiz da Paixão
SAMiRA – uma proposta de sistema de apoio à mineração
de regras de associação / Sandro Luiz da Paixão Xavier.—
Fortaleza, 2011.
97 p. ; il.
Orientador: Prof. Dr. Jerffeson Teixeira de Souza.
Dissertação (Mestrado Integrado Profissional em
Computação Aplicada) Universidade Estadual do Ceará, Centro
de Ciências e Tecnologia, Instituto Federal de Educação, Ciência
e Tecnologia do Ceará, Diretoria de Graduação e Pós-Graduação.
Área de Concentração: Mineração de dados.
1. KDD. 2. Mineração de dados. 4. Regras de associação. 5.
FP-Growth. I. Universidade Estadual do Ceará, Centro de
Ciências e Tecnologia, Instituto Federal de Educação, Ciência e
Tecnologia do Ceará, Diretoria de Graduação e Pós-Graduação.
CDD: 006.33
19
SANDRO LUIZ DA PAIXÃO XAVIER
SAMiRA – UMA PROPOSTA DE SISTEMA DE APOIO À
MINERAÇÃO DE REGRAS DE ASSOCIAÇÃO
Dissertação apresentada ao Curso de Mestrado
Integrado Profissional em Computação Aplicada
do Centro de Ciências e Tecnologia da
Universidade Estadual do Ceará e Diretoria de
Graduação e Pós-Graduação do Instituto Federal
de Educação, Ciência e Tecnologia do Ceará,
como requisito para a obtenção do grau de Mestre
em Computação Aplicada.
Área de Concentração: Mineração de dados.
Aprovada em: 28/12/2010.
COMISSÃO EXAMINADORA
________________________________________________
Prof. Dr. Jerffeson Teixeira de Souza (Orientador)
Universidade Estadual do Ceará – UECE
________________________________________________
Prof. Dr. Gustavo Augusto Lima de Campos
Universidade Estadual do Ceará – UECE
________________________________________________
Prof. Dr. Fernando Antônio de Carvalho Gomes
Universidade Federal do Ceará – UFC
20
Dedico esta dissertação
aos meus pais Haroldo e Verônica pelo incentivo e
apoio incondicional durante a realização dos meus
estudos.
21
AGRADECIMENTOS
A Deus pela oportunidade e condições de concluir o meu curso.
Aos meus pais, Haroldo Xavier Silva e Sandra Verônica da Paixão Xavier pelo
incentivo e apoio incondicional durante a realização dos meus estudos.
Ao Professor Jerffeson Teixeira de Souza pelas sábias orientações, paciência e
confiança depositada em mim para a realização deste trabalho.
Ao Professor Gustavo Campos através de suas sugestões e conversas amigas a respeito
desta Dissertação.
Eu gostaria de agradecer aos professores que foram membros das bancas das defesas
dos seminários e da dissertação, Professora Verônica Pimentel, Marcos Negreiros e
Fernando Carvalho, pois a cada defesa, a cada etapa, pude graças as suas
contribuições, desenvolver e aprimorar o meu trabalho final.
Eu sou imensamente grato a Anna Cássia Gonçalves de Oliveira que sempre esteve ao
meu lado durante este trabalho, transmitindo seu precioso apoio, paciência, incentivo e
contribuição através de seus conhecimentos acadêmicos.
As amigas Albina Chaves e Sandra Simões pela valiosa contribuição através dos seus
conhecimentos e habilidades.
Ao Antônio Carlos Leite Soares pela troca das experiências a respeito do assunto de
sua dissertação, que muito me ajudou, facilitando meu trabalho.
Aos amigos Antônio Garcia Neto e Ivone Cavalcante pelo apoio e incentivo através
de conselhos amigos.
A todos os alunos, professores e colaboradores do MPCOMP pela agradável
convivência e transmissão de conhecimentos nesses anos.
22
“A ciência e a religião são as alavancas da
inteligência humana.”
Allan Kardec
23
RESUMO
Descoberta de Conhecimento em Bancos de Dados é um processo essencial em que
métodos inteligentes são aplicados, em ordem, para extrair conhecimentos implícitos e
auxiliar na tomada de decisão. Um dos padrões mais comuns que pode ser descoberto a
partir deste processo é o conjunto de Regras de Associação que representam
combinações de itens que ocorrem com determinada freqüência em uma base de dados.
Neste trabalho foi desenvolvido um sistema de apoio à decisão denominado SAMiRA
(Sistema de Apoio à Mineração de Regras de Associação), que contempla todas as
etapas do processo de Mineração de Dados. Para validar este sistema, foram realizados
estudos de casos com as bases de dados de duas empresas: uma focada no comércio de
produtos veterinários e a outra no comércio de produtos de controle de pragas, em que
foi possível analisar os perfis das regras geradas para estes ramos de negócio e realizar
uma avaliação comparativa dos algoritmos para Regras de Associação Apriori e FPGrowth para os conjuntos de transações de vendas deste mesmos ramos de negócios.
Como resultados destes estudos de casos, para a empresa de produtos veterinários foram
encontradas regras com suporte de até 5%. O Apriori encontrou uma quantidade maior
de regras em alguns casos, enquanto que o FP-Growth apresentou um tempo de
processamento expressivamente menor. Para a empresa de produtos de controle de
pragas foram encontradas regras com suporte de até 21%. Na avaliação comparativa
entre os algoritmos, o Apriori encontrou uma quantidade maior de regras em alguns
casos, enquanto que o FP-Growth apresentou tempos de processamentos apenas um
pouco menor que os encontrados pelo Apriori.
Palavras-chave: KDD. Mineração de Dados. Regras de Associação. Apriori. FPGrowth.
24
ABSTRACT
Knowledge Discovery in Databases is an essential process where intelligent methods
are applied in order to extract implicit knowledge and aid in decision making. One of
the most common patterns that can be discovered from this process is the set of
Association Rules that represent combinations of items that occur with particular
frequency in a daabase. In this work, a decision support system called SAMiRA
(Sistema de Apoio à Mineração de Banco de Dados, in Portuguese, that it means
Support System for Mining Association Rules) was developed, which covers all stages
of the process of Data Mining. To validate this system we performed case studies with
the databases of two companie: one focused on trade in veterinary products and the
other in trade in pest control, where it was possible to analyze the profiles of the
generated rules for these branches of business and make a comparative evaluation of
algorithms for Association Rules Apriori and FP-Growth for combinations of sales
transactions of the same business. As results of these cases studies, for veterinary
products company were found rules with support for up to 5%. The Apriori found a
greater number of rules in some cases, while the FP-Growth showed a significantly
lower processing time. For pest control products company were found rules with
support for up to 21%. In the benchmarking of the algorithms, the Apriori found a larger
amount of rules in some cases, while the FP-Growth showed processing times only a bit
lower than those found by Apriori.
Key-words: KDD. Data Mining. Association Rules. Apriori. FP-Growth.
25
LISTA DE ILUSTRAÇÕES
Figura 1.1 Primeira iteração da busca por itens frequentes através do algoritmo Apriori
........................................................................................................................................ 33
Figura 1.2 Segunda iteração da busca por itens frequentes através do algoritmo Apriori
........................................................................................................................................ 34
Figura 1.3 Terceira iteração da busca por itens frequentes através do algoritmo Apriori
........................................................................................................................................ 34
Figura 1.4 FP-Tree apresentada por Borgelt(2005) ..................................................... 37
Figura 1.5 Construção de FP-Tree: Leitura das seis primeiras transações ................... 38
Figura 1.6 Comando Weka via linha de comando utilizando o algoritmo FP-Growth . 45
Figura 1.7 Resultado da mineração de regras de associação utilizando o algoritmo FPGrowth através do comando apresentado na Figura 1.6 ................................................. 46
Figura 2.1 Diagrama de Caso de Uso do SAMiRA ...................................................... 49
Figura 2.2 Abstração da Integração SAMiRA Versus Weka ......................................... 53
Figura 2.3 Diagrama de Atividades da Integração SAMiRA Versus Weka .................. 54
Figura 2.4 Configuração UDL – Lista de provedores de Banco de Dados ................... 56
Figura 2.5 Configuração UDL – Dados para conexão com Banco de Dados ............... 57
Figura 2.6 Registros modelos para a Primeira Consulta ............................................... 58
Figura 2.7 Registros modelos para a Segunda Consulta ............................................... 59
Figura 2.8 Tela de integração do SAMiRA com outro sistema..................................... 60
Figura 2.9 Área de Pré-Processamento do SAMiRA .................................................... 61
Figura 2.10 Área de Mineração de Dados do SAMiRA ................................................ 62
Figura 2.11 Área de Pós-Processamento do SAMiRA .................................................. 64
Figura 2.12 Relatório de Regras do SAMiRA............................................................... 65
Figura 3.1 Abstração do Planejamento dos Experimentos ............................................ 68
Figura 3.2 Espaço de Pesquisa do 1º Experimento ....................................................... 69
26
Figura 3.3 Espaço de Pesquisa do 2º Experimento ....................................................... 70
Figura 3.4 Espaço de Pesquisa do 3º Experimento ....................................................... 71
Figura 3.5 Espaço de Pesquisa do 4º Experimento ....................................................... 71
Figura 3.6 Espaço de Pesquisa do 5º Experimento ....................................................... 72
Figura 3.7 Espaço de Pesquisa do 6º Experimento ....................................................... 73
Figura 3.8 Espaço de Pesquisa do 7º Experimento ....................................................... 74
Figura 3.9 Espaço de Pesquisa do 8º Experimento ....................................................... 74
Figura 3.10 Gráfico de quandidades de regras por suporte dos conjuntos de dados da
Filial 2 ............................................................................................................................. 78
Figura 3.11 Top 30 da Regras extraídas pelo Apriori dos dados de março de 2010 da
Filial 2 ............................................................................................................................. 79
Figura 3.12 Top 30 da Regras extraídas pelo FP-Growth dos dados de março de 2010
da Filial 2 ........................................................................................................................ 79
Figura 3.13 – Gráfico de quandidades de regras por suporte dos conjuntos de dados da
Filial 1 ............................................................................................................................. 80
Figura 3.14 Gráfico de quandidades de regras por suporte dos conjuntos de dados da
Filial 2 ............................................................................................................................. 81
Figura 3.15 Gráfico de quandidades de regras por suporte dos conjuntos de dados da
Filial 1 ............................................................................................................................. 81
Figura 3.16 Gráfico de tempo de processamento dos algoritmos por conjunto de dados
........................................................................................................................................ 82
Figura 3.17 Gráfico de quandidades de regras por suporte dos conjuntos de dados da
DEDETEC de março de 2010 ........................................................................................ 85
Figura 3.18 Gráfico de quandidades de regras por suporte dos conjuntos de dados da
DEDETEC de março a maio de 2010 ............................................................................. 85
Figura 3.19 Gráfico de quandidades de regras por suporte dos conjuntos de dados da
DEDETEC de março de 2010 ........................................................................................ 86
Figura 3.20 Gráfico de quandidades de regras por suporte dos conjuntos de dados da
DEDETEC de março a maio de 2010 ............................................................................. 87
27
Figura 3.21 Top 30 da Regras extraídas pelo FP-Growth dos dados da DEDETEC de
março de 2010 ............................................................................................................... 88
Figura 3.22 Gráfico de tempo de processamento dos algoritmos por conjunto de dados
........................................................................................................................................ 89
28
LISTA DE TABELAS
Tabela 1.1 Relação de Vendas de um mercadinho em um período ............................... 29
Tabela 1.2 Exemplo de índices de suporte e confiança ................................................. 30
Tabela 1.3 Relação de Vendas de um mercadinho em um período ............................... 33
Tabela 1.4 Transações apresentadas por Borgelt(2005) ................................................ 36
Tabela 2.1 Descrição da tabela de Tipos de Métricas ................................................... 51
Tabela 2.2 Descrição da tabela de Algoritmos .............................................................. 51
Tabela 2.3 Descrição da tabela de Processamentos ....................................................... 51
Tabela 2.4 Descrição da tabela de Regras ..................................................................... 52
Tabela 2.5 Descrição da tabela de Itens da Regra ......................................................... 52
Tabela 3.1 Conjunto de transações referentes à vendas ................................................ 67
Tabela 3.2 Parâmetros do 1º Experimento .................................................................... 69
Tabela 3.3 Parâmetros do 2º Experimento .................................................................... 69
Tabela 3.4 Parâmetros do 3º Experimento .................................................................... 70
Tabela 3.5 Parâmetros do 4º Experimento .................................................................... 71
Tabela 3.6 Parâmetros do 5º Experimento .................................................................... 72
Tabela 3.7 Parâmetros do 6º Experimento .................................................................... 73
Tabela 3.8 Parâmetros do 7º Experimento .................................................................... 73
Tabela 3.9 Parâmetros do 8º Experimento .................................................................... 74
29
LISTA DE ABREVIATURAS E SIGLAS
API
Application Programming Interface
ARFF
Attribute-Relation Files Format
ASCIII
American Standard Code for Information Interchange
Conf
Confiança
DIC
Dynamic Itemset Counting
Eclat
Equivalence Class Transformation
FP-Tree
Frequent Pattern
IDE
Integrated Development Environment
KDD
Knowledge Discovery in Databases ou Descoberta de conhecimento em
banco de dados
RI
Rule Interest
SAMiRA
Sistema de Apoio à Mineração de Regras de Associação
SGBD
Sistema Gerenciador de Banco de Dados
Sup
Suporte
UDL
Universal Data Link
Weka
Waikato Environment for Knowledge Analysis
30
SUMÁRIO
LISTA DE ILUSTRAÇÕES ....................................................................................... 10
LISTA DE TABELAS ................................................................................................ 13
LISTA DE ABREVIATURAS E SIGLAS ................................................................ 14
INTRODUÇÃO .......................................................................................................... 18
Contextualização ..................................................................................................... 18
Problemas Identificados ......................................................................................... 20
Objetivos ................................................................................................................ 21
Metodologia ........................................................................................................... 21
Organização do Trabalho ........................................................................................ 22
1
FUNDAMENTAÇÃO TEÓRICA ............................................................................. 24
1.1
Mineração de Dados ................................................................................................... 24
1.1.1
Etapa de Pré-Processamento ................................................................................ 24
1.1.1.1 Seleção de Dados ................................................................................................ 24
1.1.1.2 Limpeza ............................................................................................................... 25
1.1.2
Etapa de Mineração de Dados .............................................................................. 25
1.1.3
Etapa de Pós-Processamento ................................................................................ 26
1.2
Regras de Associação ................................................................................................. 26
1.2.1
1.3
Definição Formal ................................................................................................. 27
Medidas de Interesse .................................................................................................. 27
1.3.1
Medidas de Interesse Subjetivas .......................................................................... 28
1.3.2
Medidas de Interesse Objetivas............................................................................ 28
1.3.2.1 Suporte e Confiança ............................................................................................ 29
1.3.2.2 Lift ....................................................................................................................... 30
31
1.3.2.3 Rule Interest ........................................................................................................ 31
1.4
Algoritmos de Regras de Associação ......................................................................... 32
1.4.1
Algoritmo Apriori ................................................................................................ 32
1.4.2
Algoritmo FP-Growth.......................................................................................... 35
1.5
A ferramenta Weka ..................................................................................................... 39
1.5.1
Arquivo ARFF...................................................................................................... 40
1.5.2
Executando o Weka via linha de comando .......................................................... 42
1.5.3
Principais parâmetros para os algoritmos Apriori e FP-Growth no Weka .......... 44
1.5.4
Analisando resultados de Mineração de Regras de Associação geradas pelo
Weka ...................................................................................................................................
2
SISTEMA DE APOIO À MINERAÇÃO DE REGRAS DE ASSOCIAÇÃO ......... 48
2.1
Motivação ............................................................................................................... 48
2.2
Funcionalidades do Sistema................................................................................... 49
2.3
Modelagem de Dados ............................................................................................ 50
2.4
Plataforma .............................................................................................................. 52
2.5
Integração com a Ferramenta Weka ....................................................................... 52
2.6
Integração com Sistemas de Automação Comercial .............................................. 55
2.6.1
Conexão com banco de dados de outro sistema ................................................... 55
2.6.2
Consulta de dados de outro sistema ..................................................................... 57
2.7
Descrição da Ferramenta ............................................................................................ 60
2.7.1
Área de Pré-Processamento ................................................................................. 60
2.7.2
Área de Mineração de Dados ............................................................................... 62
2.7.3
Área de Pós-Processamento ................................................................................. 63
3
ESTUDOS DE CASOS ............................................................................................. 66
3.1
Considerações Iniciais ................................................................................................ 66
3.2
Planejamento dos Experimentos de Mineração ......................................................... 67
45
32
3.2.1
3.3
Bateria de Experimentos de Mineração de Dados............................................... 68
Execução do Projeto de Mineração ........................................................................... 75
3.4 Análise dos Resultados do Estudo de Caso de Comércio de Produtos
Veterinários .......................................................................................................................... 76
3.4.1
Perfil das Regras de Associações encontradas .................................................... 76
3.4.2
Algoritmos Apriori Vesus FP-Growth ................................................................ 76
3.4.2.1 Análise comparativa considerando a quantidade das regras encontraras ............ 77
3.4.2.2 Análise comparativa considerando a qualidade das regras encontraras .............. 80
3.4.2.3 Análise comparativa considerando o desempenho dos algoritmos ..................... 82
3.5 Análise dos Resultados do Estudo de Caso de Comércio de Produtos de
Controle de Pragas ............................................................................................................... 83
3.5.1
Perfil das Regras de Associações encontradas .................................................... 83
3.5.2
Algoritmos Apriori Vesus FP-Growth ................................................................ 83
3.5.2.1 Análise comparativa considerando a quantidade das regras encontraras ............ 84
3.5.2.2 Análise comparativa considerando a qualidade das regras encontraras .............. 86
3.5.2.3 Análise comparativa considerando o desempenho dos algoritmos ..................... 88
3.6
Considerações Finais .................................................................................................. 89
3.6.1
Comércio de Produtos Veterinários ..................................................................... 90
3.6.2
Comércio de Produtos de Controle de Pragas ...................................................... 91
3.6.2.1 Análise do Ponto de Vista do Negócio ............................................................... 91
3.6.2.2 Análise do Ponto de Vista Técnico ..................................................................... 92
4
CONCLUSÕES E TRABALHOS FUTUROS ......................................................... 93
4.1
Conclusões ................................................................................................................. 93
4.2
Principais Contribuições ............................................................................................ 94
4.3
Trabalhos Futuros ...................................................................................................... 95
REFERÊNCIAS ......................................................................................................... 96
33
INTRODUÇÃO
Contextualização
Nas últimas décadas, os sistemas de computação vêm se popularizando cada vez mais e
participando da vida das pessoas de forma mais intensa. Os avanços tecnológicos,tais
como sistemas de banco de dados, dispositivos de memória secundária de maior
capacidade de armazenamento e de menor custo, têm viabilizado o armazenamento de
grandes e múltiplas bases de dados, proporcionando que pessoas das áreas de natureza
governamental, corporativa, administrativa e científica promovam um crescimento
explosivo em seus dados oriundos de tarefas cotidianas operacionais (SILVA, 2004;
CAMARGO, 2002; GOLDSCHMIDT; PASSOS, 2005).
Na área corporativa, por exemplo, as empresas vêm coletando e armazenando, de forma
contínua, uma enorme quantidade de dados a respeito de seus clientes, fornecedores,
produtos, vendas e serviços (GONÇALVES, 2005; AGRAWAL et al., 1993)
Estes dados constituem uma mina de ouro em potencial de informações comerciais
valiosas (AGRAWAL et al., 1993) que podem ser consultados por especialistas na
busca de novas informações e utilizadas em benefício da organização (GONÇALVES,
2005), como vantagens competitivas, além da possibilidade, por exemplo, de conhecer o
comportamento de compra de seus clientes (FUGIMOTO, 2008; JUNIOR;NIQUE,
1998).
Organizações bem sucedidas vêem tal banco de dados como importante peça de
marketing. Eles estão interessados em instituir processo de marketing orientado por
informação e gerenciado por tecnologia de banco de dados que permita, aos
profissionais de marketing, desenvolver e implementar estratégias e programas de
marketing customizadas (AGRAWAL; SRIKANT, 1994).
A análise desta grande quantidade de dados pelas técnicas tradicionais não se trata de
uma tarefa trivial, por ser dispendiosa, subjetiva e inviável devido a grande quantidade
de dados (CAMARGO, 2002; FUGIMOTO, 2008). Portanto, surge a necessidade
urgente de se desenvolver novas tecnologias que auxiliem o homem, de forma
34
automatizada e inteligente, na tarefa de transformar dados processados em informação e
conhecimento úteis (FUGIMOTO, 2008; CAMARGO, 2002), a fim de que possam se
transformar em grande aliada nos processos de tomadas de decisão.
Para compreender este novo contexto, surge uma área denominada de Descoberta de
Conhecimento em Bancos de Dados, conhecida pela expressão em inglês Knowledge
Discovery in Databases - KDD (SILVA, 2004; CAMARGO, 2002).
Uma das
definições mais populares do KDD foi proposta por Fayyad et al,(1996, p.40) como: ―...
o processo não trivial de identificação de padrões válidos, novos, potencialmente úteis e
compreensíveis, a partir de grandes conjuntos de dados‖. Onde dado é um conjunto de
fatos (por exemplo, casos em um banco de dados). Padrões é uma expressão em alguma
determinada linguagem, descrevendo um subconjunto de dados ou um modelo aplicado
para um subconjunto. O termo processo implica que KDD compreende um conjunto de
etapas que envolvem a preparação dos dados. Não trivial é uma expressão que serve de
alerta para a complexidade geralmente presente na execução de processos KDD. Por
padrões válidos indica que o conhecimento deve ser verdadeiro e adequado ao contexto
da aplicação. Finalmente, os padrões devem ser novos, compreensíveis e potencialmente
úteis, trazendo algum benefício que possa ser facilmente compreendido pelo usuário,
auxiliando-o no processo de tomada de decisão (FAYYAD; PIATETSKY-SHAPIRO;
SMYTH, 1996, p.41; GOLDSCHMIDT; PASSOS, 2005).
Muitas pessoas tratam a Mineração de Dados como um sinônimo de KDD. Na
realidade, é uma das etapas essenciais no processo de descoberta de conhecimento em
bases de dados (HAN;KAMBER, 2000, p.5; GOLDSCHMIDT; PASSOS, 2005). Ao
definir os passos do KDD, Han e Kamber (2000, p.7) resume Mineração de Dados como
um processo essencial, onde métodos inteligentes são aplicados, em ordem, para extrair
padrões de dados.
Um dos padrões mais comuns que pode ser descoberto a partir do processo de
Mineração de Dados é um conjunto de Regras de Associação que representa
combinações de itens que ocorrem simultaneamente com determinada freqüência em
uma base de dados (GONÇALVES, 2005).
35
Um típico exemplo de regras de associação é a análise de transações de compras
(market basket analysis), que foi formulado por Agrawal et. al.(1993). Este processo
analisa hábitos de compras de clientes, buscando associações entre os diferentes itens
que colocam em suas cestas de compras. Para exemplificar a importância da descoberta
de tais associações, considere a seguinte situação e considerações apresentadas por Han
e Kamber(2000, p.225): se clientes estão comprando leite, qual a probabilidade deles
também incluírem pão na mesma lista de compras? Esta informação pode levar ao
aumento das vendas, ajudando os varejistas a fazerem análise de marketing, planejando
o conteúdo de suas prateleiras. Por exemplo, colocando leite e pães próximos podem
incentivar ainda mais a venda destes itens juntos.
Na área de comércio varejista, a aplicação de ferramentas de descoberta de regras de
associação pode ter relevante utilidade para compreender melhor o comportamento do
cliente, a determinação do layout da loja, a fim de incentivar a compra de produtos em
conjunto na mesma lista de compras e a determinação de produtos sujeitos a promoção
(permitindo assim a renovação destes no estoque) e, ainda, fornecer suporte aos
processos de tomada de decisão (BERRY; LINOFF, 1997 apud CAMARGO, 2002).
Problemas Identificados
Apesar da existência de técnicas e ferramentas de mineração de regras de associação,
muitas organizações ainda desconhecem a importâncias destas tecnologias no apoio à
tomada de decisão. Este problema pode estar relacionado à dificuldade da utilização de
ferramentas de forma mais simples e dos benefícios relacionados ao apoio a tomada de
decisão.
Um outro problema a ser considerado são as dificuldades encontradas da etapa de pósprocessamento. Os algoritmos de extração de regras de associação geralmente
produzem milhares de regras, dificultando a compreensão dos modelos extraídos e a
identificação de um possível conhecimento interessante (FUGIMOTO, 2008, Pag. 2).
Neste contexto faz-se necessário recursos para o pós-processamento que possibilite
filtrar e ordenar regras a partir de parâmetros e indicadores relevantes para o tipo de
conhecimento desejado.
36
Objetivo Geral
O objetivo principal deste trabalho é projetar, implementar e avaliar um sistema de
apoio a decisão que auxilie o usuário final no processo de mineração de regras de
associação.
Objetivos Específicos

Desenvolver uma ferramenta que permita que um usuário possa extrair regras de
associação a partir de conjunto de dados armazenados na base de um sistema de
automação comercial, sem necessitar de conhecimentos avançados em
informática.

Conceber um mecanismo que permita a gravação na base de dados de todas as
informações de processamentos e as respectivas regras encontradas.

Disponibilizar uma área de pós-processamento que se possa ordenar e filtrar as
regras interessantes, baseado nas métricas Suporte, Confiança, Lift e RI.

Disponibilizar no sistema duas opções de algoritmos para regras de associação
para que se possa utilizar o que melhor se adequar aos tipos de dados que se
deseja minerar.
Metodologia
Foi realizada uma revisão bibliográfica sobre o problema da descoberta de regras de
associação em bancos de dados e selecionados dois dos algoritmos mais utilizados para
este tipo de tarefa.
Objetivando compreender melhor o funcionamento destes algoritmos e seus respectivos
parâmetros disponíveis na ferramenta Weka, foram realizados experimentos em duas
etapas distintas: a primeira com um conjunto de dados contendo apenas 7 (sete)
37
atributos e 9 (nove) transações de vendas, dados expressivamente pequenos para
facilitar o entendimento dos resultados exibidos a cada alteração de parâmetro. A
segunda etapa foi realizada com um conjunto de dados reais contendo 139 (cento e
trinta e nove) atributos e 618 (seiscentos e dezoito) transações de vendas. Para esta
segunda etapa, foram realizados vários experimentos sobre este conjunto de dados,
visando encontrar pontos críticos dos algoritmos estudados em relação à perda de
desempenho e pesquisa das possíveis soluções para os problemas encontrados.
Com base nos conhecimentos adquiridos até o momento, foi implementado um sistema
de apoio à decisão denominado SAMiRA, que se integra de forma automatizada com as
bibliotecas do Weka. Para esta integração tornar-se automatizada, foi necessário
compreender o funcionamento das chamadas via linha de comando para o Weka; e
interpretar e importar os resultados de processamento para o banco de dados do
SAMiRA.
A última etapa do desenvolvimento do SAMiRA foi disponibilizar uma área de pósprocessamento, onde o usuário possa ordenar e filtrar regras geradas através das
medidas de interesse: Suporte, Confiança, Lift e RI.
Para validar o SAMiRA, foram realizados estudos de casos utilizando conjuntos de
dados de transações de vendas de duas lojas da COMERCIAL VET LTDA. e transações
de
vendas
da
DISTRIBUIDORA
DEDETEC
LTDA.,
empresas
focadas
respectivamente no comércio de produtos veterinários e produtos para controle de
pragas (inseticidas e raticidas), objetivando compreender os perfis das regras destes
ramos de negócios e realizar uma análise comparativa dos algoritmos de regras de
associação, disponíveis através dos resultados gerados no sistema.
Organização do Trabalho
Este trabalho está estruturado em três partes, ou seja: Introdução, Desenvolvimento
e Conclusão. Sendo o Desenvolvimento composto por 4 (quatro) Capítulos.
38
Introdução: faz uma contextualização a respeito de descoberta de conhecimento em
bancos de dados e dos problemas encontrados. Descreve os objetivos e a metodologia
utilizada.
Desenvolvimento:
- Capítulo 1: descreve a fundamentação teórica da área de Mineração de Dados;
- Capítulo 2: descreve o sistema de apoio à decisão desenvolvido neste trabalho;
- Capítulo 3: descreve o Estudo de Caso realizado com bases de dados de transações de
vendas de produtos veterinários, analisando o perfil das regras geradas e uma análise
comparatória dos algoritmos Apriori e FP-Growth.
- Capítulo 4: descreve o Estudo de Caso realizado com bases de dados de transações de
vendas de produtos de controle de pragas, analisando o perfil das regras geradas e uma
análise comparatória dos algoritmos Apriori e FP-Growth.
Conclusão: descreve as conclusões, principais contribuições e sugestões para trabalhos
futuros.
39
1
1.1
FUNDAMENTAÇÃO TEÓRICA
Mineração de Dados
O processo de Descoberta de Conhecimento em Banco de Dados (KDD) é utilizado para
buscar padrões úteis em grandes bancos de dados e pode ser dividido em três etapas
principais: pré-processamento, mineração de dados e pós-processamento. Cada uma
destas etapas possui objetivos distintos aos quais serão apresentados a seguir.
1.1.1 Etapa de Pré-Processamento
Esta etapa consiste de um número de diferentes estratégias e técnicas especializadas em
tratar, organizar, adequar e preparar dados de forma a deixá-los mais apropriados para a
Mineração de Dados (TAN;STEINBACH;KUMAR, 2009,p.53), onde a escolha da
técnica está diretamente relacionada com o tipo de tarefa do KDD a ser empregada na
etapa de Mineração de Dados. A qualidade dos conjuntos de dados a serem
encaminhados para a próxima etapa influenciará na qualidade de modelos de
conhecimentos gerados. Assim, quanto pior a qualidade dos conjuntos de dados, pior
será a qualidade dos modelos de conhecimentos gerados (GOLDSCHMIDT; PASSOS,
2005, p.37).
A seguir serão apresentadas algumas técnicas de pré-processamento relevantes para a
tarefa de Regras de Associação.
1.1.1.1 Seleção de Dados
Esta função é responsável por identificar e selecionar as informações dentre bases de
dados existentes que devem ser consideradas na etapa de Mineração de Dados.
Identificadas as informações a serem consideradas, a seleção pode ser norteada pela
escolha de um ou mais atributos, que serão cláusulas chaves para segmentação de dados
40
ou eliminação direta de casos, objetivando a delimitação do conjunto de dados para a
etapa seguinte.
A título de exemplo, considere que se deseja analisar os clientes que moram em
residência própria e que não sejam casados. Esta operação poderia ser executada por
uma instrução de Select em SQL do tipo (GOLDSCHMIDT; PASSOS, 2005, p.27):
SELECT * FROM CLIENTES
WHERE TipoResidencia = ‗P‘
AND EstadoCivil <> ‗C‘;
1.1.1.2 Limpeza
Esta tarefa é responsável pela verificação de inconsistências de informações, possíveis
correções de erros e preenchimento ou a eliminação de valores desconhecidos,
redundantes ou que não pertençam ao domínio. Todos estes cuidados devem ser
tomados de forma a não comprometer a qualidade dos modelos de conhecimento a
serem extraídos na etapa de Mineração de Dados.
1.1.2 Etapa de Mineração de Dados
Trata-se do núcleo do processo de descoberta de conhecimento, onde são aplicados
algoritmos sobre os dados, procurando extrair novos conhecimentos que sejam úteis.
Baseado nos objetivos de um processo KDD, pode-se definir o tipo de tarefa a ser
executada e a expectativa que se tem com relação ao modelo de conhecimento a ser
gerado. Com base nisso, o especialista em KDD tem condições de definir quais tipos de
padrões devem ser abstraídos a partir dos dados (GOLDSCHMIDT; PASSOS, 2005,
p.52).
A escolha dos algoritmos de Mineração de Dados também pode ser definida pelos tipos
de variáveis envolvidas. Alguns algoritmos possuem restrições quanto aos tipos de
variáveis existentes no conjunto de dados. Para estes problemas, ou se usa um algoritmo
41
compatível com os tipos de variáveis, ou se tenta tornar o conjunto de dados compatível
com o algoritmo desejado (GOLDSCHMIDT; PASSOS, 2005, p.54).
1.1.3 Etapa de Pós-Processamento
Esta fase envolve avaliação e interpretação das descobertas geradas pela etapa de
Mineração de Dados e definição de novas alternativas de investigação dos dados. Para
facilitar estas tarefas, utilizam-se técnicas de visualização que permitam a interpretação
de informação vista por uma pessoa e a formação de um modelo mental das
informações
e
percepções
de
novos
padrões
(TAN;STEINBACH;KUMAR,
2009,p.125).
Grandes quantidades de informações em formato visual podem ser absorvidas
rapidamente pela mente humana (TAN;STEINBACH;KUMAR, 2009,p.125). Um
exemplo para esta afirmativa são as apresentações de Previsão do Tempo pelos
telejornais. Ao invés de divulgarem indicadores meteorológicos, costumam mostrar
imagens como a do mapa do Brasil com divisões estaduais bem definidas, destacando
figurinhas bem representativas como: sol, nuvens brancas ou com chuva. Esta técnica de
visualização permite que pessoas compreendam a previsão do tempo, sem precisar
interpretar indicadores meteorológicos.
Convêm citar algumas formas de apresentação de resultados gerados pela etapa de
Mineração de Dados, tais como: árvores, gráficos, regras, planilhas e tabelas.
1.2
Regras de Associação
A tarefa de regras de associação, também denominadas de regras associativas, foi
introduzida em (AGRAWAL et al., 1993). No referido trabalho, foram consideradas
grandes bases de dados no formato de cestas de compra com informações de transações
de compras de um determinado período. Cada transação de compra consistia em itens
comprados por um cliente em uma visita (AGRAWAL et al., 1993). O principal
objetivo daquele trabalho era apresentar novas técnicas que apresentasse um bom
desempenho na geração de regras de associação entre vários tipos de produtos das bases
de dados mencionadas (GOLDSCHMIDT; PASSOS, 2005). A esse processo de
42
associação entre produtos comprados por um cliente em uma mesma visita à loja ficou
conhecido como análise de cesta de compras (do inglês market basket analysis).
Mineração de Regras de Associação pesquisa relacionamentos interessantes entre itens
em um dado banco de dados, permitindo que as regras geradas sejam indicadores
valiosos no processo de tomada de decisão (HAN;KAMBER,2000,p.226-227).
1.2.1 Definição Formal
Agrawal e Srikant (1994) formalizaram o problema de Regras de Associação da
seguinte forma:
―Seja I = {i1, i2,..., im} um conjunto de literais chamados itens.
Seja D = {T1, ...,Tn} um conjunto de transações, onde cada
transação T é um conjunto de itens tal que Ti ⊆ I. Associado a
cada transação existe um único identificador chamado de TID.
Dizemos que a uma transação T contém X, um conjunto de
alguns itens de I, se X ⊆ T. Uma Regra de Associação é uma
implicação na forma X → Y onde X  I, Y  I e X  Y = . A
regra X → Y mantida no conjunto de transações D com
confiança c, se c% das transações em D que contém X também
contém Y. A regra X → Y tem suporte s no conjunto de
transações D, se s% das transações em D contém X  Y‖.
Em X  Y =  convém destacar que a interseção vazia entre o X e o Y da regra
assegura que não sejam extraídas regras óbvias que indiquem que um item está
associado a ele próprio (GOLDSCHMIDT; PASSOS, 2005).
1.3
Medidas de Interesse
Embora tarefas especializadas na etapa de pré-processamento delimitem dados a serem
processados de acordo com sua relevância e tipo de conhecimento a ser extraído (por
exemplo, associação, etc.), podendo reduzir a quantidade de padrões gerados, a etapa de
Mineração de Dados pode ainda gerar um grande número de padrões, onde apenas uma
pequena fração desses padrões será realmente interessante para um determinado
usuário. Diante deste problema, faz-se necessário que um usuário (geralmente
43
especialista em KDD em conjunto com o especialista no domínio da aplicação),
continue a limitar o número de padrões desinteressantes gerados pelo processo,
utilizando para isto a especificação e aplicação de medidas de interesse
(HAN;KAMBER;2000, p.156), onde elas poderão guiar ou restringir o espaço de busca,
proporcionando assim uma melhor eficiência nesta tarefa ao eliminar conjuntos de
padrões irrelevantes. As medidas de interesse também são essenciais na etapa de PósProcessamento, podendo ser usadas a fim de ordenar ou filtrar os padrões gerados de
acordo com o grau de interesse associados a estes padrões (GOLDSCHMIDT;
PASSOS,2005,p.53). Medidas de interesse podem ser objetivas ou subjetivas.
1.3.1 Medidas de Interesse Subjetivas
Pode ocorrer de uma regra possuir valores altos para uma determinada medida de
interesse e não ser interessante para o analista em virtude das crenças que este
especialista tenha com os dados e os modelos de conhecimento gerado. Muitas vezes
uma regra é interessante para um analista, mas não é para outro. É neste contexto que se
destaca a importância das medidas de interesse subjetivas (GONÇALVES, 2005;
GOLDSCHMIDT; PASSOS, 2005, p.53).
Um analista através de seu conhecimento do negócio pode subjetivamente descobrir
muitas oportunidades de negócios a partir das regras geradas, sejam elas baseadas pela
utilidade, ou ainda pelas descobertas inesperadas (CARVALHO, 2007, p.21;
GONÇALVES, 2005).
1.3.2 Medidas de Interesse Objetivas
Medidas objetivas são baseadas sobre a estrutura do padrão e nas estatísticas a eles
relacionados. Geralmente cada medida é associada a um limiar que pode ser controlado
pelo usuário (um valor de indicador mínimo para que se a regra seja aceita). Um
analista, por exemplo, pode configurar na Mineração de Dados que só é para aceitar as
regras com suporte mínimo (limiar da medida de interesse suporte) de 60% e
confiança mínima de 70% (limiar da medida de interesse confiança) (HAN;
KAMBER, 2000, p.55).
44
Neste trabalho foram utilizadas as medidas de interesse objetivas: suporte, confiança,
Lift e RI.
1.3.2.1 Suporte e Confiança
Tabela 1.1 – Relação de Vendas de um mercadinho em um período
TID
T100
T200
T300
T400
T500
T600
Lista de Itens
I2,I3, I4
I1,I2,I3
I2,I3,I5
I1,I2,I4
I1,I3,I4
I2,I4,I5
A Tabela 1.1 representa 6 (seis) transações de vendas em um banco de dados D.
O suporte de um item é calculado pela freqüência que ele ocorre em relação ao número
total de transações do banco de dados (GOLDSCHMIDT; PASSOS, 2005, p.61),
podendo ser calculado por:
Onde P é de Probabilidade.
Analogamente, o suporte de uma associação do tipo A→B é calculado pela freqüência
em que AB ocorre em relação ao número total de transações do banco de dados
(GOLDSCHMIDT; PASSOS, 2005, p.61), podendo ser calculado por:
A medida de interesse confiança se propõe a avaliar o quão é forte uma regra,
indicando o quanto a ocorrência do antecedente de uma regra pode influenciar na
ocorrência do conseqüente da regra. Em outras palavras, para a regra A→B a confiança
é a probabilidade condicionada da ocorrência do B (conseqüente da regra) quando A
(antecedente da regra) ocorre. Pode ser calculada por:
Conf(A→B) = P(B|A)
45
Tabela 1.2 – Exemplo de índices de suporte e confiança
Regra
r1: I1→I3
r2: I3→I4
r3: I1→I2
r4: I4→I2
r5: 12→I5
Sup(A)
3/6 = 0,5
4/6 = 0,66
3/6 = 0,5
4/6 = 0,66
2/6 = 0,33
Sup(B)
4/6 = 0,66
4/6 = 0,66
5/6 = 0,83
5/6 = 0,83
3/6 = 0,5
Sup(A→B)
2/6 = 0,33
2/6 = 0,33
2/6 = 0,33
3/6 = 0,5
2/6 = 0,33
Conf(A→B)
0,33/0,5 = 0,66
0,33/0,66 = 0,5
0,33/0,5 = 0,66
0,5/0,66 = 0,75
0,33/0,33 = 1
Com base nos dados da Tabela 1.1, foram gerados exemplos de índices de suporte e
confiança que estão demonstrados na Tabela 1.2.
Considerando os valores de suporte e confiança mínimos iguais a 30% e 65%, todas as
regras passaram nestas condições. Mas será que considerando apenas estas medidas
garantem a qualidade da regra? Alguns trabalhos disponíveis na literatura (HAN;
KAMBER,2000,p.259;
GONÇALVES,
2005)
defendem
e
provam
que
não
necessariamente apenas as duas medidas de suporte e confiança garantem a qualidade.
Por exemplo, analisando a regra 3 (r3), pode-se perceber que independente de se
comprar o item I1, o item I2 já ocorre em 83% das transações. Para calcular o nível de
dependência entre itens, pode-se utilizar mais algumas medidas de interesse tais como
as que serão abordadas em seguida neste trabalho: Lift e RI.
1.3.2.2 Lift
A medida de avaliação Lift (BRIN;MOTOWANI;ULLMAN, 1997), também conhecida
como interest , permite eliminar regras com confiança elevada, mas com pouco
interesse. Dado uma regra de associação A → B, esta medida calcula o quanto mais
freqüente é B quando A ocorre. O valor do Lift para A→B é calculado por:
Se Lift(A→B) = 1, então A e B são independentes, portanto a ocorrência de A não
aumenta e nem diminui a probabilidade de B ocorrer. Se Lift(A→B)>1, então A e B são
positivamente dependentes, assim, a ocorrência de A aumenta a probabilidade de B
46
ocorrer. Por fim, se Lift(A→B)<1, então A e B são negativamente dependentes, ou seja,
a ocorrência de A diminui a probabilidade de B ocorrer.
O índice Lift varia entre 0 e ∞ e a regra fica mais interessante à medida que o valor
deste índice aumenta (GONÇALVES, 2005).
Seguem os cálculos de Lift para as regras contidas na Tabela 1.2:
r1 : Lift(A→B) = Conf(A→B)/Sup(B) = 0,66/0,66 = 1;
(A e B são Independentes)
r2: Lift(A→B) = Conf(A→B)/Sup(B) = 0,5/0,66 = 0,75;
(A e B são negativamente
dependentes)
r3: Lift(A→B) = Conf(A→B)/Sup(B) = 0,66/0,83 = 0,79; (A e B são negativamente
dependentes)
r4: Lift(A→B) = Conf(A→B)/Sup(B) = 0,75/0,83 = 0,9;
(A e B são negativamente
dependentes)
r5: Lift(A→B) = Conf(A→B)/Sup(B) = 1/0,5 = 2;
(A e B são positivamente
dependentes)
1.3.2.3 Rule Interest
O índice Rule Interest (RI), introduzido em Piatetsky-Shapiro(1991) e também
conhecido na literatura como PS (Piatetsky-Shapiro's), Novelty e Leverage, calcula a
diferença entre os valores de suporte real e suporte esperado de uma regra de associação
(GOLÇALVES, 2005). O valor do RI para A→B é calculado por:
RI(A→B) = P(A U B) – P(A) * P(B)
Se RI(A→B) = 0 nós dizemos que A e B são independentes, portanto a ocorrência de A
não aumenta e nem diminui a probabilidade de B ocorrer. Se RI(A→B)>0, então A e B
são positivamente dependentes, assim, a ocorrência de A aumenta a probabilidade de B
ocorrer. Senão, A e B são negativamente dependentes, ou seja, a ocorrência de A
diminui a probabilidade de B ocorrer (GONÇALVES;PLASTINO, 2004).
O índice RI varia entre -0,25 e 0,25 e a regra fica mais interessante à medida que o valor
deste índice aumenta (GONÇALVES, 2005).
47
r1 : RI(A→B) = 0,33 – (0,5 x 0,66) = 0; (A e B são Independentes)
r2: RI(A→B) = 0,33 – (0,66 x 0,66) = -0,1; (A e B são negativamente dependentes)
r3: RI(A→B) = 0,33 – (0,5 x 0,83) = -0,08; (A e B são negativamente dependentes)
r4: RI(A→B) = 0,5 – (0,66 x 0,83) = -0,05; (A e B são negativamente dependentes)
r5: RI(A→B) = 0,33 – (0,33 x 0,5) = 0,165; (A e B são positivamente dependentes)
Com base nestes resultados de Lift e RI demonstrados, pode-se concluir que apesar das
regras terem atingido o limite de tolerância de suporte e confiança, apenas a regra r1 foi
considerada com os itens A e B positivamente dependentes.
1.4
Algoritmos de Regras de Associação
Este tópico apresenta as principais características dos algoritmos que foram utilizados
nos experimentos computacionais deste trabalho, Apriori e FP-Growth.
1.4.1 Algoritmo Apriori
Atualmente, diversos algoritmos, tais como Partition, DIC, Eclat, MaxEclat se baseiam
no mesmo princípio do Apriori (AGRAWAL;SRIKANT,1994), anti-monotonicidade
da medida do suporte (GOLDSCHMIDT; PASSOS, 2005, p.105). De acordo com este
princípio ―Se um conjunto de itens é freqüente, então todos os seus subconjuntos
também devem ser freqüentes‖ (TAN;STEINBACH;KUMAR, 2009,p.397). O nome do
algoritmo se baseia no fato de que o algoritmo usa o conhecimento prévio das
propriedades itemset freqüentes para gerar novos itemsets candidatos. Para isto ele usa
uma abordagem iterativa para buscar os itemsets candidatos, onde k-itemsets são usados
para explorar (k+1)-itemsets. Considere a seguinte explicação: primeiro, o conjunto de
itemset freqüente 1-itemsets é encontrado. Este conjunto é chamado L1. L1 é usado para
encontrar L2, o conjunto freqüente 2-itemsets, que é usado para encontrar o L3, e assim
até que não tenha mais itemsets para serem encontrados. Para cada Lk encontrado, faz-se
necessário uma varredura completa no banco de dados (HAN;KAMBER;2000, p.230231).
O Apriori pode ser decomposto basicamente em duas etapas:
1 – Encontrar todos os conjuntos de itens (itemsets) que tenha suporte acima do suporte
mínimo.
48
2 – A partir do conjunto de itens freqüentes gerados no passo anterior, gerar regras de
associação que tenham confiança acima da confiança mínima.
Para fins didáticos, mais detalhes destes dois passos são apresentados a seguir.
Tabela 1.3 – Relação de Vendas de um mercadinho em um período
TID
T100
T200
T300
T400
T500
T600
T700
T800
T900
Lista de Itens
I1, I2, I5
I2, I4
I2, I3
I1, I2, I4
I1, I3
I2, I3
I1, I3
I1, I2, I3, I5
I1, I2, I3
A Tabela 1.3, retirada de Han e Kamber (2000, p.232), representa 9 (nove) transações
de vendas em um banco de dados D.
Passo 1: Geração de conjunto de itemsets freqüente
Considere que o suporte mínimo é 2 (i.e. suporte mínimo para = 2/9 = 22%). O conjunto
1-itemsets, L1, pode então ser determinado, ou seja, 1-itemsets satisfaz o suporte
mínimo.
Primeira Iteração:
Cada item é membro do conjunto de candidatos 1-itemsets, C1, o algoritmo varre todas
as transações em ordem para contar o número e ocorrência de cada item. Considere que
o mínimo de transação aceita é 2 (i.e. suporte mínimo = 9/2 = 22%). O conjunto de 1itemsets, L1, pode ser determinado satisfazendo o suporte mínimo.
Figura 1.1 – Primeira iteração da busca por itens frequentes através do algoritmo Apriori.
49
Segunda iteração:
Para descobrir o conjunto de itens 2-itemsets, L2, o algoritmo usa L1 para gerar o
conjunto candidato
2-itemsets, C2. Em seguida, as transações são varridas e são
calculados os suportes de cada candidato. O conjunto de itens freqüentes 2-itemsets, L2,
é então determinado considerando o suporte mínimo permitido.
Figura 1.2 – Segunda iteração da busca por itens frequentes através do algoritmo Apriori.
Terceira Iteração: Segue os mesmos passos, usando k-itemsets para gerar o (k+1)itemsets !
Para descobrir o conjunto de itens 3-itemsets, L3, o algoritmo usa L2 para gerar o
conjunto candidato 3-itemsets, C3. Em seguida, as transações são varridas e são
calculados os suportes de cada candidato, mostrado na tabela do meio abaixo. O
conjunto de itens freqüentes 3-itemsets, L3, é então determinado considerando o suporte
mínimo permitido. Aqui se pode basear pela propriedade anti-monotonicidade, observe
que is subconjuntos {I3,I4}, {I3,I5} e {I4,I5} não são freqüentes, logo {I2,I3,I4},
{I2,I3,I5} e {I2,I4,I5} também não são.
Figura 1.3 – Terceira iteração da busca por itens frequentes através do algoritmo Apriori.
50
Quarta Iteração: Segue os mesmos passos, usando k-itemsets para gerar o (k+1)-itemsets
!
Para descobrir o conjunto de itens 4-itemsets, L4, o algoritmo usa L3 para gerar o
conjunto candidato 4-itemsets, C4. Então é gerado C4 = {I1,I2,I3,I5} que tem ocorre
apenas em uma transação, visto que o suporte mínimo permitido é 2 então o algoritmo
termina tendo encontrado todos os itemsets freqüentes. Outra abordagem pode ser pela
propriedade anti-monotonicidade, já que o subconjunto { I2,I3,I5} não é freqüente,
logo, C4 = 
Passo 2: Geração de regras de associação que tenham confiança acima da confiança
mínima.
Com o objetivo de exemplificar esta etapa do algoritmo, vamos considerar um dos
conjuntos freqüentes gerados, l={I1,I2,I5} e descobrir quais as regras de associação
podem ser geradas a partir de l.Os subconjuntos não vazios de l são{I1,I2}, {I1,I5},
{I2,I5}, {I1], {I2} e {I5}. A partir destes subconjuntos. seguem as possíveis regras de
associação:
Regra 1: I1  I2 → I5 Confiança = 2/4 = 50%
Regra 2: I1  I5 → I2 Confiança = 2/2 = 100%
Regra 3: I2  I5 → I1 Confiança = 2/2 = 100%
Regra 4: I1→ I2  I5 Confiança = 2/6 = 33%
Regra 5: I2→ I1  I5 Confiança = 2/7 = 29%
Regra 6: I5→ I1  I2 Confiança = 2/2 = 100%
Se a confiança mínima fosse 60%, então apenas as regras 2, 3 e 6 seriam válidas.
O pseudo-código e análise de complexidade do Apriori podem ser encontrados
respectivamente
nas
referências
(HAN;KAMBER,
(TAN;STREINBACH;KUMAR, 2009, p.411).
2000,
p.235)
e
51
1.4.2 Algoritmo FP-Growth
A geração de itens freqüentes é a parte do Apriori que demanda maior custo operacional
(GOLDSCHMIDT; PASSOS, 2005, p.106), visto que para esta tarefa deve-se varrer o
banco de dados a cada geração de conjunto de itens candidatos. Muitos algoritmos
surgiram depois do Apriori propondo uma melhoria na geração de candidatos.
Uma melhoria notável, foi o algoritmo FP-Growth ter conseguido eliminar a geração de
candidatos (HAN;PEI;YIN,2000 apud WU et al., 2007,p.14), usando outra estratégia
para descobrir conjuntos de itens freqüentes. Para esta tarefa, ele codifica o conjunto de
dados usando uma estrutura de dados compacta denominada FP-Tree (Frequent Pattern
Tree)
e
extrai
conjuntos
de
itens
freqüentes
diretamente
desta
estrutura
(TAN;STEINBACH;KUMAR, 2009,p.433).
A construção da FP-Tree (ou árvore FP) usa uma estratégia de forma que os itens de
todas as transações percorridas fiquem organizados de forma mais compacta possível,
criando menos ramos possíveis na árvore. Isto se torna possível pela forma que são
inseridos os itens freqüentes na árvore, onde cada transação é mapeada em um caminho
da árvore. Como diferentes transações podem conter diversos itens em comum, seus
caminhos podem se sobrepor, considerando que para cada caminho novo (ainda não
mapeado na árvore FP) é criado um novo ramo e quanto mais os caminhos se
sobrepõem, mais são aproveitados ramos existentes colaborando assim para uma maior
compressão na estrutura da árvore FP.
Na construção de uma árvore FP, uma primeira lida nas transações do banco de dados
são levantados os valores de suporte de todos os itens existentes. Itens freqüentes são
posicionados em ordem decrescente de valor de suporte, enquanto os infreqüentes são
descartados. Segue uma ilustração deste primeiro passo na tabela abaixo.
Tabela 1.4 – Transações apresentadas por Borgelt(2005)
52
Na Tabela 1.4, são apresentadas transações de banco de dados (à esquerda). Na parte do
meio são listados os itens com seus respectivos valores de suporte ordenados de forma
decrescentemente. Por fim, à direita são listadas as transações com os itens ordenados
em forma decrescente em relação ao valor de suporte e descartados os itens infreqüentes
{f} e {g}, considerando, para este exemplo, que o valor de suporte mínimo igual a 3
(três).
Figura 1.4 – FP-Tree apresentada por Borgelt(2005)
Antes de continuar a idéia da construção da árvore FP, faz-se necessária uma breve
apresentação de sua estrutura.
Uma árvore FP consiste em um nó raiz (nulo), ramos compostos que representam itens
freqüentes e uma tabela de cabeçalho responsável por facilitar os percursos na FP-Tree.
Cada nó n na árvore FP é composto por três campos distintos: nome que identifica o
item, contador (número após ‖:‖) que memoriza o número de transações que
compartilha o conjunto de itens formados pelo sub-ramo composto pelos nós desde a
raiz até o nó n. E um ponteiro que aponta para um nó da FP-Tree com o mesmo nome
do nó n (PRADO, 2005).
53
Continuando a construção da árvore FP para cada transação lida é testado item por item
se já existe um caminho na árvore para eles. Quando não existe são criados novos ramos
ou sub-ramos e setado o contador do novo nó para 1 (um), ou seja, só existe um
conjunto de itens que contemplem este último nó incluído na árvore. À medida que vão
encontrando caminhos já existentes para a seqüência de itens de uma transação, para
cada nó sobreposto é incrementado seu contador de 1 (um).
Figura 1.5 – Construção de FP-Tree: Leitura das seis primeiras transações
Para os itens da primeira transação não existe conjunto de itens na árvore que
sobreponha nenhum destes itens, assim é criado um ramo para estes itens e iniciados
seus contadores com 1 (um) Figura 1.5(a). Para os itens da segunda transação, existe
caminho apenas para o item d, que é incrementado seu contador ficando d:2, para os
demais itens desta transação não existe conjunto de itens na árvore que os sobreponha,
assim é criado um novo sub-ramo para estes itens e iniciados seus contadores com 1
(um) Figura 1.5(b). Para os itens da terceira transação, ocorre o mesmo que na transação
anterior, apenas o item d já possuía caminho na árvore, incrementando seu contador
ficando d:3, para os demais itens desta transação é criado um novo sub-ramo para estes
itens e iniciados seus contadores com 1 (um) Figura 1.5(c).
54
Para os itens da quarta transação já existe o caminho para os itens {d,b} incrementando
seus contadores de 1, ficando apenas o último item c sem caminho existente,
conseqüentemente é criado um sub-ramo para ele como é mostrado na Figura
1.5(d).Para os itens da quinta transação ainda não existe caminho na árvore para este
conjunto de itens, assim é criado um novo ramo a partir da raiz da árvore e iniciados os
contadores com 1 (um). Finalmente, na sexta transação já se pode identificar caminhos
para {d, b] incrementando seus contadores de 1(um) e ficando necessário apenas criar
um novo sub-ramo para o item a.
O algoritmo de construção da FP-Tree continua usando a mesma lógica até a leitura da
última transação. Em virtude da ordenação dos itens de forma decrescente de valor de
suporte, cria-se uma tendência de os itens de transações com maior número de
ocorrência na árvore fique nos ramos de forma Top-Down, conseqüentemente contribui
para que sejam mais bem aproveitadas as estruturas das árvores FP de forma que
fiquem mais compactas.
Depois que a FP-Tree é criada, o algoritmo FP-Growth utiliza-se dela explorando-a de
baixo para cima (Bottom-Up). O algoritmo encontra todos os conjuntos de itens
freqüentes, terminando com um prefixo específico e empregando uma estratégia dividirpara-conquistar fracionando o problema em subproblemas menores. Assim, as árvores
FP-Tree são quebradas em sub-árvores condicionadas aos sufixos de cada item
encontrando os itens freqüentes relacionados a ele.
FP-Growth para determinados conjuntos de dados de transação possui um melhor
desempenho que o algoritmo Apriori padrão em diversas ordens de magnitude. A
performance do FP-Growth é influenciada pelo fator de compactação do conjunto de
dados. Assim, mesmo se tratando de um subproblema, se uma sub-árvore FP-Tree
condicionada estiver cheia de prefixos, então a performance do algoritmo cai porque
terá que criar um grande número de sub-problemas e realizar a fusão dos resultados por
cada sub-problema.
O pseudo-código do FP-Growth pode ser encontrado em Han e Kamber(2000, p.242).
55
1.5
A Ferramenta Weka
Weka (Waikato Environment for Knowledge Analysis) é um pacote desenvolvido na
Universidade de Waikato, na Nova Zelândia, sendo elaborado em linguagem Java e sua
última versão estável é a 3.6.2 enquanto que sua versão em desenvolvimento atual é a
3.7.2. Este software de domínio público disponibiliza ferramentas para préprocessamento, classificação, regressão, agrupamento, regras de associação e
visualização (WAIKATO, 2010). Dentre os algoritmos disponíveis para a tarefa de
Mineração de Regras de Associação, que é foco deste trabalho, serão utilizados os
Apriori e FP-Growth da versão 3.7.2.
1.5.1 Arquivo ARFF
Para minerar Regras de Associação no Weka utilizando os algoritmos Apriori e FPGrowth, é necessário carregar um dataset (conjunto de dados) no padrão ARFF
(Attribute-Relation Files Format), um arquivo texto (formato ASCII) que descreve uma
lista de instâncias, compartilhando um conjunto de atributos. Este tipo de arquivo possui
duas sessões distintas: a Header e a Data (BOUCKAERT et al, 2010, Pag. 45).
A Sessão Header contém os comandos @relation e @attribute.
@relation: trata-se do primeiro comando do arquivo, que deve ser seguida de uma
palavra-chave que identifique a relação.
Sintax: @relation <nome da relação>.
@attribute: este comando deve ser seguido de um nome do atributo e seu tipo. Uma
lista de atributos é declarada com uma seqüência deste comando, um para cada linha.
Sintax: @attribute <nome do atributo> <tipo de dados>. Onde o <nome do atributo>
deve iniciar com uma letra do alfabeto e se houver espaços dentro do nome, estes devem
ficar entre aspas duplas.
Os <tipo de dados> podem ser de 4 (quatro) tipos atualmente suportados pelo Weka
(BOUCKAERT et al, 2010, Pag. 170):
1 - numeric;
- integer que é tratado como numeric;
- real que é tratado como numeric;
56
2 - nominal;
3 - string; e
4 - date;
Com exceção dos tipos nominal e date, os demais são case insensitive (não há distinção
entre letras maiúsculas e minúsculas).
O tipo de atributo nominal, único tipo que foi utilizado neste trabalho, é definido por
oferecer uma lista de possíveis valores: {<nome nominal 1>, <nome nominal 2>,
<nome nominal 3>, ...}.
Exemplo 1.1 – Demonstração do comando @attribute para um arquivo ARFF
@attribute sexo_cliente {masculino, feminino}
A Sessão Data é iniciada com o comando @data em uma linha. Este comando sinaliza
que nas demais linhas abaixo serão definidas as instâncias de transações. Cada instância
é representada por uma linha, seguidos pelos respectivos valores dos atributos. Estes
valores para cada instância são delimitados por vírgulas. Eles devem aparecer na mesma
ordem em que foram declarados os atributos na sessão Header (i.e. o valor
correspondente para o 1º atributo declarado estará sempre no 1º valor de cada instância,
e 2º atributo estará sempre no 2º valor de cada instância e assim por diante).
Exemplo do conteúdo de um arquivo ―.arff‖ no formado matricial de itens-transação
(farmacia.arff):
@RELATION compras_farmacia
@attribute Paracetamol {0, 1}
@attribute Fralda {0, 1}
@attribute PastilhaV {0, 1}
@attribute Esparadrapo {0, 1}
@attribute SoroFisiologico {0, 1}
@attribute Gazes {0, 1}
@data
0,0,1,0,1,0
1,0,1,0,0,0
1,1,0,1,0,0
1,1,0,1,0,1
0,0,0,0,1,0
1,1,1,0,0,1
57
0,1,0,1,0,1
1,1,0,1,0,1
O arquivo ―farmacia.arff‖ representa um conjunto de dados referentes à venda de
produtos de uma farmácia. Para cada atributo (produto) foi definido o tipo nominal
podendo receber os valores 1 (um) ou 0 (zero), representando respectivamente valores
binariamente ―sim‖ e ―não‖. Assim, os valores dos atributos listados nas transações na
sessão Data atribuem à ―existência‖ ou ―não existência‖ de cada produto na venda. Com
base nisto, pode-se afirmar, por exemplo, que a primeira transação ―0,0,1,0,1,0‖ indica
que apenas o 3º e 5º produto foram vendidos, respectivamente, o ―PastilhaV‖ e o
―SoroFisiologico‖.
1.5.2 Executando o Weka via linha de comando
Existem 3 (três) modos para executar os algoritmos do Weka: Interface Gráfica do
Weka; Linha de Comando e API ‗s Java do Weka. Grande parte dos recursos do Weka é
acessível em sua Interface Gráfica que oferece um ambiente propício para o usuário
poder explorar as suas ferramentas e aplicações. Para usuários mais experientes é mais
indicado o uso por linha de comando. Por fim, o Weka permite que suas classes sejam
importadas em aplicações Java e, para esta tarefa, também há uma boa fonte de
documentação de suas API‘s disponíveis na internet (BOUCKAERT et al, 2010) .
Neste trabalho foi utilizado o modo via linha de comando, pois este método permite
uma integração com o sistema de apoio a decisão que será apresentado no próximo
capítulo.
A seguir é apresentada uma sintaxe válida para executar os algoritmos de Regras de
Associação do Weka via linha de comando e suas considerações a respeito.
java <alocação máxima de memória RAM> -cp <caminho completo para o arquivo
weka.jar> <nome da classe> <Parâmetros> -t <caminho o arquivo ―.arff‖> [ >
<caminho do arquivo de resposta>]
Exemplo 1.2 – Comando para o algoritmo Apriori
java –Xmx1024m –cp c:\Weka\weka37\weka.jar weka.associations.Apriori –N 50 –t
c:\Weka\Arff\farmacia.arff > c:\Weka\RegrasExtraidas\resp.txt
58
Exemplo 1.3 – Comando para o algoritmo FP-Growth
java –Xmx1024m –cp c:\Weka\weka37\weka.jar weka.associations.FPGrowth –N 50 –t
c:\Weka\Arff\farmacia.arff

< alocação máxima de memória RAM >: Em virtude da limitação do Weka
utilizar a memória principal para a execução dos algoritmos. Se o algoritmo precisar
alocar mais memória que o valor padrão, a execução será abortada com o erro de "Out
of Memory error"(erro por estouro de memória). Para solucionar este problema, faz-se
necessário utilizar o comando –Xmx<quantidade de memória>m para alocar uma
quantidade máxima (set maximum Java heap size) de memória explicitamente, onde
<quantidade de memória> é a quantidade de memória em Mega Bites (MB). Nos dois
exemplos dados foram setados para 1024MB de memória RAM, assim o processo java
utilizado na execução do Weka poderá utilizar até 1024MB de memória principal. Caso
este comando não seja utilizado, será alocado o valor padrão de 128MB (nas versões
3.6.2 e 3.7.1). Para complementar este assunto, considere as seguintes informações:

O valor padrão fica setado no arquivo RunWeka.ini que fica no diretório de
instalação do Weka atribuído no parâmetro ―maxheap‖.

Também existe a possibilidade de setar a alocação mínima de memória RAM
(initial Java heap size) através do comando –Xms<quantidade de memória>m que se for
usado deve ser definido antes do comando para alocação máxima de memória RAM.
Segue um exemplo de como seria:
Exemplo 1.4 – Alocando memória explicitamente para o processo Java
java
–Xms512m
–Xmx1024m
–cp
c:\Weka\weka37\weka.jar
weka.associations.FPGrowth –t c:\Weka\Arff\farmacia.arff

-cp: indica que será usado um adicional para a máquina virtual Java.

<caminho completo para o arquivo weka.jar>: caminho completo para a
localização do arquivo weka.jar, considerando que o pacote foi instalado no diretório
c:\Weka\weka37\ (no caso do Windows). Caso o caminho completo para a localização
do arquivo weka.jar já esteja declarado na variável de ambiente CLASSPATH, a
59
utilização do comando ―-cp <caminho completo para o arquivo weka.jar>‖ poderá ser
dispensada.

<nome da classe>: nome da classe que implementa os algoritmos de regras de
associação Apriori e FP-Growth. Este nome inclui o nome dos pacotes e subpacotes
onde as classes estão organizadas. Assim, a classe que implementa o algoritmo Apriori
é a weka.associations.Apriori e a que implementa o algoritmo FP-Growth é a
weka.associations.FPGrowth.

<Parâmetros>: nos exemplos 1.2 e 1.3 informados apresentaram apenas o
parâmetro ―–N‖, que indica o número máximo de regras que poderá ser listado. Para o
comando informado nestes exemplos, poderão ser listadas até as 50 (cinqüenta)
melhores regras. Para cada um dos demais parâmetros que não foram utilizados
explicitamente, o Weka assume seus respectivos valores padrões. Estes parâmetros serão
apresentados mais a seguir no tópico 1.5.3.

<caminho o arquivo “.arff”>: caminho onde o arquivo ―.arff‖ se encontra.

> <caminho do arquivo de resposta>: opcionalmente pode-se utilizar o
comando composto pelo sinal de maior (―>‖) seguido do caminho de um de arquivo a
qual se pretende armazenar a resposta do processamento conforme no Exemplo 1.2.
Caso não seja informado este comando, a saída do processamento será apresentada na
saída de vídeo.
1.5.3 Principais Parâmetros para os algoritmos Apriori e FP-Growth no Weka
Considere os seguintes parâmetros a seguir e suas respectivas funções:
 -M indica o valor mínimo para suporte para consideração da regra.
 -U indica o valor máximo para suporte para consideração da regra.
 -T indica a métrica de ordenação (e filtragem) das regras:
-T 0 ordena pela métrica confidence (Confiança).
-T 1 ordena pela métrica Lift.
-T 2 ordena pela métrica leverage (RI).
60
-T 3 ordena pela métrica conviction (Convicção).

-C indica o valor mínimo da métrica de ordenação.
Estes parâmetros influenciam diretamente na geração de Regras de Associação,
utilizados na calibragem da mineração em busca das regras mais interessantes.
Exemplo 1.5 – Comando para algoritmo Apriori com seus princiais parâmetros
java -Xmx512m –cp c:\Weka\weka37\weka.jar weka.associations.Apriori –N 20 –T 1 –
C1.1 –M 0.5 –U 0.9 –t c:\Weka\Arff\farmacia.arff
Exemplo 1.6 – Comando para algoritmo Apriori com seus princiais parâmetros
java -Xmx512m –cp c:\Weka\weka37\weka.jar weka.associations.FPGrowth –N 20 –T
1 –C 1.1 –M 0.5 –U 0.9 –t c:\Weka\Arff\farmacia.arff
Significados dos parâmetros para os últimos exemplos (Exemplos 1.5 e 1.6):
- Poderão ser alocados até 512MB de memória RAM (–Xmx512m).
- Poderão ser apresentadas até 20 regras (-N 20).
- Estão setados para usar a métrica Lift (-T 1).
- Valor mínimo da métrica de ordenação é 1.1 (-C 1.1).
- O limite inferior do suporte mínimo é 0.5 (-M 0.5).
- O limite superior do suporte mínimo é 0.9 (-U 0.9).
Figura 1.6 – Comando Weka via linha de comando utilizando o algoritmo FP-Growth
1.5.4 Analisando resultados de Mineração de Regras de Associação geradas pelo
Weka
61
Como já foi visto o resultado na mineração pode ser impresso na saída de vídeo ou em
um arquivo texto. Considere um resultado de mineração apresentado na figura abaixo
para análise:
Figura 1.7 – Resultado da mineração de regras de associação utilizando o algoritmo FP-Growth através
do comando apresentado na Figura 1.6
Como resultado do comando apresentado na Figura 1.6, considerando os critérios
exigidos pelos parâmetros –T, -C, -M e –U, que restringem as regras desejadas para Lift
com valor mínimo de 1.1, Suporte Mínimo entre 0.5 e 0.9, foram encontradas apenas 6
(seis) regras.
Alguns pontos de interesse nas regras listadas na Figura 1.7 são:

A parte da regra anterior ao símbolo ―=>‖ é o lado antecedente da regra e a parte
posterior, refere-se ao lado conseqüente da regra.
Nota: Para a regra ―1.‖ o lado antecedente é o ―Fralda‖ e o conseqüente é o ―Gazes‖.

As abreviações conf, lift, lev e conv significam respectivamente as seguintes
medidas de interesse objetivas: Confiança, Lift, RI e Convicção.

Os valores que aparecem depois do conjunto de itens do lado antecedente da
regra se refere ao número de instâncias ou ocorrência deste conjunto, e os valores que
aparecem após o conjunto de itens do lado conseqüente é o número de instâncias ou
ocorrências da regra.
Nota: Para a regra ―1.‖ O conjunto de itens do lado antecedente, composto apenas pelo
item ―Fralda‖, ocorreu 5 (cinco) vezes e enquanto que a regra ocorreu 4 (quatro) vezes.
62

Os valores que aparecem após cada item das regras representam a ―existência‖
ou ―não existência‖ do item, podendo representar regras positivas ou negativas. Esta
representação vai depender da declaração dos valores que os atributos podem receber no
arquivo ―.arff‖. No caso definido no conjunto de dados apresentado no ―farmacia.arff‖,
por exemplo, foram utilizados os valores para atributos positivos igual a 1 (um) e para
atributos negativos iguais à 0 (zero), mas poderia ser qualquer outra representação como
―sim‖ e ―não‖ ou ―true‖ e ―false‖, etc.
Para as regras apresentadas na Figura 1.7, todos os atributos são positivos, ou seja, todas
são regras positivas.
Considere
um
exemplo
hipotético
10. SoroFisiologico=0 4 =→ PastilhaV=0 4
do
que
seria
uma
regra
negativa:
conf:(1) < lift:(2)> lev:(0.25) [2] conv:(2)
Pode-se observar neste exemplo que os valores após cada item são iguais a 0 (zero),
valor definido para representar a ausência do item. Assim, a regra poderia ser lida da
seguinte forma: ―Se SoroFisiologico não foi comprado então PastilhaV também não foi
comprada‖.
63
2
SISTEMA DE APOIO À MINERAÇÃO DE REGRAS DE
ASSOCIAÇÃO
Este capítulo apresenta o Sistema de Apoio à Mineração de Regras de Associação
desenvolvido. Serão abordadas as principais funcionalidades implementadas e
integração com o Weka. Na Seção 2.1 são discutidas as necessidades e os objetivos da
existência do sistema integrado para mineração de regras de associação. Na seção
seguinte, 2.2, são apresentadas as principais funcionalidades do SAMiRA. Na Seção 2.3
é apresentada a modelagem de bancos utilizada pelo software de mineração. Na Seção
2.4 é apresentada a plataforma de desenvolvimento do sistema. Na Seção 2.5 é
apresentada a integração com a ferramenta Weka. Logo a seguir na Seção 2.6 são
apresentadas informações técnicas sobre como integrar o SAMiRa com sistemas de
automação comercial. Por fim, na Seção 2.7, é realizada uma demonstração da execução
das principais funcionalidades desenvolvidas.
2.1
Motivação
Um dos objetivos principais deste trabalho é fornecer ao analista de negócio a
possibilidade de executar um projeto de mineração de regras de associação de forma
intuitiva a partir de uma interface amigável, permitindo assim os especialistas de
negócios realizarem esta tarefa sem a necessidade de um aprofundamento em
conhecimento de informática.
Um dos pontos críticos neste contexto são os requisitos de conhecimento de
informática, tais como: a implementação de algoritmos para mineração de dados e
operacionalização com os sistemas envolvidos.
O SAMiRA traz uma proposta de facilitar a interação entre os especialistas e a execução
de projetos de mineração de regras de associação, simplificando assim o processo de
64
tomada de decisões. Permitindo abstrair a utilização de bibliotecas do Weka de forma
transparente para o usuário, onde o sistema se encarrega de realizar toda a comunicação
com as bibliotecas, realiza a importação das regras extraídas e suas respectivas medidas
de interesse objetivas Suporte, Confiança, Lift e RI para um banco de dados próprio do
SAMiRA. Além de facilitar a apresentação das regras extraídas a partir de recursos de
pós-processamento.
2.2
Funcionalidades do Sistema
Figura 2.1 – Diagrama de Caso de Uso do SAMiRA.
A Figura 2.1 apresenta um diagrama de casos de uso que especificam o comportamento
do sistema ou parte(s) dele e descrevem as funcionalidades do sistema desempenhadas
pelos atores. Seguem algumas considerações a respeito dos casos de uso levantados:
Gerar arquivo de vendas: trata-se da geração do arquivo ―.arff‖ através da área de PréProcessamento, em que o usuário informa o período de vendas que deseja minerar e
65
comanda a geração do arquivo ―.arff‖ com o conjunto de dados das transações do
período escolhido.
Processar mineração: como pré-requisito, o usuário deve informar os parâmetros de
processamento na área de Mineração de Dados e comandar o processamento da
mineração. A partir deste momento, o Weka, representado pelo Ator Weka, assume a
execução desta tarefa de processar a mineração.
Consultar resultado processamento de mineração: após os processamentos
realizados pelo Ator Weka, o SAMiRA importa todos os dados de resposta da
mineração, permitindo assim que estes sejam consultados na área de Pós-Processamento
do sistema. Esta funcionalidade permite consultar todos os processamentos realizados e
suas respectivas regras (caso existam).
Filtrar Regras por Medidas de Interesse Objetivas: uma das funcionalidades
existentes na área de Pós-Processamento é a de filtro por medidas de interesse objetivas
disponíveis no sistema (Suporte, Confiança, Lift e RI), em que o usuário pode informar
o valor mínimo dos indicadores a ser considerado no filtro.
Ordenar Regras por Medidas de Interesse Objetivas: funcionalidade existente na
área de Pós-Processamento que permite ao usuário ordenar as regras de associações
pelas medidas de interesse objetivas (Suporte, Confiança, Lift e RI), podendo a
ordenação ser realizada por apenas uma medida de interesse ou mais de uma, através de
uma ordem de prioridades.
Filtrar Regras por Itens existentes nas regras: recurso que permite ao usuário realizar
uma descoberta de conhecimento dirigida, ou seja, o usuário pode solicitar que sejam
apresentadas apenas as regras que contenham um dos itens previamente selecionados
por ele através de uma listagem de itens.
Gerar Relatório de Regras de Associação: após a realização de consultas, o usuário
pode solicitar ao SAMiRA que gere um relatório de regras considerando todos os filtros
e ordenações informados pelo usuário.
66
2.3
Modelagem de Dados
Toda solicitação de processamento realizado pelo SAMiRA, inicia-se com a fase em
que são informadas as entradas de parâmetros de mineração, conjunto de dados a ser
processado e algoritmo de mineração de regras de associação a ser utilizado. Como
resultado deste processo é gerada uma resposta de processamento com um conjunto de
regras extraídas, suas respectivas medidas de interesse objetivas e o tempo de
processamento. Visando a possibilidade de consultar todos estes dados de resposta de
forma simples, visualizando o incremento de recursos como filtros e ordenações de
indicadores relevantes no processo de tomada a decisão, fez-se necessário uma
modelagem de dados para o armazenamento destes dados.
Seguem as principais tabelas envolvidas deste sistema:
Tabela 2.1 – Descrição da tabela de Tipos de Métricas
Nome do Campo
Id
Descricao
TipoMetrica
Descrição do Conteúdo
Código do Tipo de Métrica
Descrição da Métrica
Tipo de Dado
Inteiro
String
Tamanho
4
10
Tabela 2.2 – Descrição da tabela de Algoritmos
Nome do Campo
Id
Descricao
Algoritmos
Descrição do Conteúdo
Código do Algoritmo
Descrição do Algoritmo
Tipo de Dado
Inteiro
String
Tamanho
4
10
Tabela 2.3 – Descrição da tabela de Processamentos
Nome do Campo
Id
IdAlgoritmo
IdTipoMetrica
MetricaMin
SupMin
SupMax
TempoExecucao
QtdeAtributos
QtdeTransacoes
Notas
DataHora
ComandoWeka
Processamentos
Descrição do Conteúdo
Código do Processamento
Código do Algoritmo
Código do Tipo de Métrica
Valor Mínimo da Métrica
Lim. Inferior do Suporte
Mínimo
Lim.
Superior do Suporte
Mínimodo Processamento
Tempo
Quantidade de Atributos
Quantidade de Transações
Notas do Usuário
Data e Hora do Início
Processamento
Comando
enviado p/ o Weka
Tipo de Dado
Inteiro
Inteiro
Inteiro
Numérico
Numérico
Numérico
Numérico
Inteiro
Inteiro
String
Data e Hora
String
Tamanho
4
4
4
8
8
8
8
4
4
255
8
255
67
Tabela 2.4 – Descrição da tabela de Regras
Nome do Campo
Id
IdProc
Descricao
LadoAntecedente
LadoConsequente
TamItemSetsAntecedente
TamItemSetsConsequente
FeqAntecedente
FeqRegra
SupAntecedente
SupRegra
Conf
Lift
RI
Conv
Regras
Descrição do Conteúdo
Código da Regra
Código do Processamento
Descrição da Regra Gerada
Descrição do lado
Antecedente
Descrição
do lado
Conseqüente
Tamanho
itemset do antec.
Tamanho itemset do antec.
Freqüência do Antecedente
Freqüência da Regra
Suporte do lado
Antecedente
Suporte
da Regra
Confiança da Regra
Valor da Lift da Regra
Valor do RI da Regra
Convicção da Regra
Tipo de Dado
Inteiro
Inteiro
String
String
String
Inteiro
Inteiro
Inteiro
Inteiro
Numérico
Numérico
Numérico
Numérico
Numérico
Numérico
Tamanho
4
4
200
200
200
4
4
4
4
8
8
8
8
8
8
Tabela 2.5 – Descrição da tabela de Itens da Regra
Nome do Campo
IdRegra
IdProc
DescricaoItem
Ordem
FladSimNao
LadoRegra
2.4
Regras_Itens
Descrição do Conteúdo
Código da Regra
Código do Processamento
Descrição do Item
Ordem dos Itens na Regra
Flag se existe ou não o Item
‗A‘ – Antec. ou ‗C‘- Conseq.
Tipo de Dado
Inteiro
Inteiro
String
Inteiro
Booleano
String
Tamanho
4
4
255
4
1
1
Plataforma
Como Sistema Gerenciador de Banco de Dados tem-se o Microsoft SQL Server 2005
Express Edition, que é uma versão gratuita do SQL Server 2005.
Como linguagem de desenvolvimento foi utilizado o Object Pascal através da IDE
Borland Delphi 7.
68
2.5
Integração com o Weka
Na Seção 1.5.2 foi visto que existem 3 (três) modos para executar os algoritmos do
Weka: Interface Gráfica do Weka; Linha de Comando e API ‗s Java do Weka.
Considerando que o SAMiRA foi desenvolvido em Delphi, foi adotado uma estratégia
de integração automatizada através de linha de comando, onde o SAMiRA faz toda esta
comunicação de forma transparente para o usuário do sistema. Nesta seção é
apresentada uma ilustração da integração em questão, seguida de uma explicações sobre
esta arquitetura proposta.
Figura 2.2: Abstração da Integração SAMiRA Versus Weka.
A Figura 2.2 apresenta uma abstração da integração do SAMiRA com o Weka, onde
este intercâmbio ocorre na etapa de Mineração de Dados disponível no sistema de apoio
a decisão apresentado. Para compreender melhor o funcionamento da integração,
considere o seguinte diagrama de atividades seguidas de explicações:
69
Figura 2.3 – Diagrama de Atividades da Integração do SAMiRA vesus Weka
A Figura 2.3 apresenta um diagrama de atividade que representa o fluxo de eventos que
caracterizam a integração do SAMiRA com o Weka, exatamente o que acontece entre a
escolha dos parâmetros de mineração até a gravação dos resultados do processamento
da mineração, demonstrando, ainda, os responsáveis por cada tarefa dentro do fluxo.
O fluxo inicia quando o SAMiRA lê os parâmetros de mineração informados pelo
usuário, que são utilizados para montar o comando de mineração compreendido pelo
Weka e solicita via linha de comando que este processe a mineração. Neste momento, o
Weka realiza a tarefa de processar a mineração de regras de associação e ao final gera
um arquivo de resposta. O SAMiRA, ao identificar que foi gerado o arquivo de resposta
da mineração, realiza uma interpretação do mesmo, armazenando dos dados em
Objetos, instâncias das classes de processamento e regras. Após este último passo, o
SAMiRA grava os parâmetros utilizados no processamento e o tempo utilizado para a
70
realização do processamento. Por fim, o SAMiRA encerra o fluxo após gravar os dados
das regras extraídas (caso existam), as regras e suas respectivas medidas de interesse
objetivas (Suporte, Confiança, Lift e RI).
2.6
Integração com Sistemas de Automação Comercial
O SAMIRA permite a integração com sistemas de automação comercial, dependendo de
compatibilidades tecnológicas de banco de dados. A idéia da integração é permitir que
um usuário possa, através da área de Pré-Processamento do SAMiRA, selecionar
conjuntos de dados oriundos do sistema de automação comercial de forma simples, sem
precisar de conhecimentos avançados em informática.
A configuração da Integração está dividida em duas partes: a conexão com o banco de
dados de um sistema de automação comercial e criação de consultas de dados deste
sistema.
2.6.1 Conexão com o banco de dados de outro sistema
A configuração da conexão com o banco de dados do sistema de automação comercial é
realizada através do arquivo CxIntegracao.udl, que fica na mesma pasta do executável
do SAMiRA. Um arquivo com a extensão UDL (Universal Data Link) armazena
informações necessárias para uma conexão com um banco de dados, tais como: o nome
do servidor, o provedor utilizado, o método de segurança e o login a ser utilizado.
Segue um exemplo de conexão com um banco SQL Server 2005 Express Edition.
71
Figura 2.4 – Configuração UDL - Lista de Provedores de Banco de Dados
A Figura 2.4 apresenta uma lista de provedores para SQL Server, ODBC, Oracle, dentre
outros. São exatamente estas opções de conexão que permitirão ou não a integração com
o banco de dados do sistema de automação comercial. Algumas opções, como a do
banco de dados conhecido como MySql, só aparecerão na relação quando forem
instalados no computador. Para o exemplo mostrado na Figura 2.4 foi utilizada a opção
SQL Native Client, que provê conexão com SQL Server 2005 Express Edition.
72
Figura 2.5 – Configuração UDL – Dados para conexão com Banco de Dados
A Figura 2.5 apresenta os campos necessários para uma conexão com o banco de dados,
tais como: a Fonte de Dados (nome do servidor); usuário e senha; e o nome do banco de
dados.
2.6.2 Consulta de dados de outro sistema
Uma vantagem da Integração com outro sistema é simplesmente um usuário poder
informar apenas um período de transações de vendas através da interface do SAMiRA e
deixar que este se encarregue de consultar a base de dados configurada para gerar um
conjunto de dados para mineração no formato ―.arff‖.
Após configuração da conexão com o banco de dados de outro sistema, faz-se
necessário preparar consultas em seu banco de dados e integrar o nome de campos
chaves através de alias (apelidos).
73
A rotina de geração do arquivo ―.arff‖ utiliza três conjuntos de dados. Para obtê-los, é
necessário configurar três consultas distintas. São elas: a Primeira Consulta, que deve
trazer a relação de itens a ser minerada, em que apenas os campos de identificação e
descrição do item devem ser apresentados; a Segunda Consulta, que deve trazer a
relação de agrupamentos de transações com seus respectivos itens, obrigatoriamente
ordenados pelo campo de identificação da transação, onde apenas os campos de
identificação da transação e identificação dos itens devem ser apresentados; e a Terceira
Consulta, que deve trazer a relação de transações distintas, em que esta consulta servirá
apenas para saber a quantidade de transações existentes através da quantidade de
registros, assim, os campos apresentados aqui não serão utilizados, ficando a critério do
usuário a escolha dos mesmos.
Os parâmetros referentes à Data Inicial e Data Final deverão ser representados
respectivamente por :dtInicio e :dtFim, dois pontos seguidos dos nomes dtInicio e
dtFim, para que o SAMiRA substitua pelas datas informadas pelo usuário a área de PréProcessamento. Segue um exemplo de utilização dos parâmetros de intervalo de dias
logo abaixo:
Exemplo: ―Where DataVenda between :dtInicio and :dtFim ‖.
Seguem modelos de registros esperados para cada consulta.
Figura 2.6 – Registros modelos para a Primeira Consulta.
A Figura 2.6 apresenta um modelo de como os registros de itens devem vir na consulta.
74
Figura 2.7 – Registros modelos para a Segunda Consulta.
A Figura 2.7 apresenta um modelo de como os registros de agrupamento de transações
com seus respectivos itens devem vir na consulta, obrigatoriamente ordenados pelo
campo de identificação da transação. Pode se observar, por exemplo, que a transação de
identificação 13 (treze) possui 4 (quatro) itens com as seguintes identificações: 693,
687, 656 e 652.
Das consultas comentadas, destacam-se três campos que serão utilizados pela rotina de
geração do arquivo ―.arff‖. São eles: o que representa a identificação do item, o que
representa a descrição do item e o que representa a identificação da transação. Para a
configuração da Integração também é necessário informar o nome destes campos
existentes nas tabelas do outro sistema para que o SAMiRA os conheça e assim possa
utilizá-los corretamente.
75
Figura 2.8 – Tela de Integração do SAMiRa com outro sistema.
A Figura 2.8 apresenta a tela de configuração de Integração com um exemplo.
2.7
Descrição da Ferramenta
O Sistema de Apoio à Mineração de Regras de Associação está dividido em 4 (quatro)
áreas, são elas: área de Pré-Processamento, de Mineração de Dados, de PósProcessamento e de configurações. Nesta seção será realizada uma demonstração da
utilização das funcionalidades do SAMiRA, pautadas dentro das áreas referentes às
etapas do KDD. Para não generalizar o tipo de negócio a ser minerado, será considerada
uma mineração de regras de associação referentes a dados de transações de vendas.
2.7.1 Área de Pré-Processamento
A obtenção do conjunto de dados a serem preparados para a Etapa de Mineração de
Dados, pode ser dada de duas formas:
76
1ª – A partir de dados de um outro sistema previamente configurado para se integrar
com o SAMiRA. Este consulta a base de dados do outro sistema e converte num
conjunto de dados no formato “.arff” para regras de associação.
2ª – A partir da criação de um conjunto de dados no formato “.arff” para regras de
associação, gerado por outra ferramenta ou manualmente.
Figura 2.9 – Área de Pré-Processamento do SAMiRA
Para exemplificar a geração de um conjunto de dados no formato ―.arff‖ através do
SAMiRA, considere a Figura 2.9 Inicialmente o SAMiRA está conectado ao banco de
dados de um sistema de automação comercial integrado e a partir da área de PréProcessamento deve-se seguir os seguintes passos:
1 - Informar o período das transações de vendas. No exemplo foi informado o período
do mês de março de 2010;
2 – Informar o caminho do arquivo ―.arff‖, que será criado com o conjunto de dados
selecionados no passo anterior;
3 – Clicar no botão ―Gerar arquivo .Arff‖.
Neste último passo o SAMiRA realiza uma consulta na bases de dados do sistema de
automação comercial e seleciona os dados necessários para a geração do arquivo ―.arff‖,
que são as transações de vendas e os produtos vendidos nestas transações. O comando
de consulta de dados, além de selecionar apenas as transações dentro do período
informado, realiza alguns tratamentos de seleção e eliminação de dados, retornando
apenas os dados relevantes para a etapa de mineração.
77
Lembrando que na indisponibilidade da integração do SAMiRA com outro sistema, o
conjunto de dados no formato ―.arff‖, necessário para a etapa de Mineração de Dados,
poderé ser gerado por outra ferramenta ou manualmente.
2.7.2 Área de Mineração de Dados
Utilizando-se dos conjuntos de dados disponibilizados na etapa anterior em formato
―.arff‖ é possível avançar para a etapa de mineração de dados.
Figura 2.10 – Área de Mineração de Dados do SAMiRA
Para exemplificar a chamada da mineração de dados dos conjuntos de dados contidos
nos arquivos ―.arff‖ através do SAMiRA, considere a Figura 2.10. Através dos controles
referentes à Mineração de Dados seguem os seguintes passos:
78
1 – A área de Pré-Processamento deve informar o caminho do arquivo ―.arff‖ gerado. É
exatamente este conjunto de dados que será minerado.
2 – Na área de Mineração de Dados deve-se informar os seguintes parâmetros:
Algoritmo, Suporte Mínimo (-M), Suporte Máximo (-U), Tipo de Métrica (-T), Métrica
Mínima (-C), Quantidade Máxima de Regras a ser considerada (-N) e opcionalmente
alterar a quantidade de Memória RAM a ser alocada no processamento (por padrão está
1024 MB) e, opcionalmente, informar qualquer anotação referente ao processamento.
No exemplo ilustrado na Figura 2.10 foram considerados os seguintes parâmetros para
ser minerado pelo algoritmo FP-Growth: suporte mínimo variando de 0,01 à 1.0, (isto é,
de 1% à 100%), o índice Lift com o valor mínimo igual a 1.1 e solicitado para retornar
até 10000 (dez mil) regras.
3 – Finalmente, o último passo se resume a clicar no botão ―Processar Mineração‖.
Após este último passo, o sistema irá passar todos os parâmetros para as bibliotecas do
Weka e aguardar o retorno do processamento. Após o fim do processamento, o
SAMiRA irá gravar todas as informações do processamento (parâmetros utilizados,
tempo de execução, notas informadas pelo usuário, dentre outras informações) e as
regras encontradas (se houver) em sua base de dados.
Nos casos de exceções, como as de não encontrar nenhuma regra, ou de o
processamento ser cancelado pelo usuário, ou ainda do processamento ser interrompido
em virtude de estouro de memória RAM, o sistema irá gravar os dados do
processamento com uma observação referente ao evento encontrado, respectivamente:
ATENÇÃO: SEM REGRAS!, CANCELADO PELO USUÁRIO!, ATENÇÃO:
ESTOURO!.
2.7.3 Área de Pós-Processamento
Como já foi mencionado, todos os dados de processamentos e respectivas regras de
associações, casos existam, são gravados na base de dados do SAMiRA, permitindo
assim diversas formas de visualizações.
79
Figura 2.11 – Área de Pós-Processamento do SAMiRA
A Figura 2.11 apresenta a área de Pós-Processamento onde são disponibilizadas
recursos para consulta de todos os processamentos e suas respectivas regras existentes
no banco de dados. Os dados são apresentados em duas grades, a de Processamentos e a
de Regras. Na primeira são informados todos os parâmetros de mineração de regras de
associação utilizados no processamento e algumas informações complementares.
Quando um registro de processamento é selecionado nesta grade, todas as regras e suas
respectivas medidas de interesse (Suporte, Confiança, Lift e RI) são listadas na grade de
Regras.
Além das consultas, a área de Pós-Processamento disponibiliza mecanismos que
permite criar combinações de ordenações e filtros das regras através de suas medidas de
interesse objetivas ou por itens. Através do filtro por item é possível ao usuário fazer
uma descoberta de conhecimento dirigida, ou seja, o usuário poderá selecionar um ou
mais itens e só serão apresentadas regras que contiverem estes itens no seu corpo,
considerando ainda quaisquer filtros e ordenações por medidas de interesse configurada.
Estas funcionalidades são de grande relevância para auxiliar na análise das regras
geradas e, consequentemente, no processo de tomadas de decisão.
80
Figura 2.12 – Relatório de Regras do SAMiRA
A Figura 2.12 apresenta uma outra forma de visualização das regras de um determinado
processamento, onde é considerado o processamento selecionado juntamente com os
filtros e ordenações configurados na área de pós-processamento.
81
3
3.1
ESTUDOS DE CASOS
Considerações Iniciais
Este capítulo apresenta dois estudos de casos de utilização da ferramenta através da
execução de tarefa de mineração de regras de associação. No primeiro estudo de caso
foram aplicadas essas técnicas ao Comércio de Produtos Veterinários, onde o objeto de
investigação foi a COMERCIAL VET LDTA, mais especificamente os conjuntos de
transações de vendas das lojas Filial 1 e Filial 2 desta empresa. No segundo estudo de
caso foram aplicadas as mesmas técnicas ao Comércio de Produtos de Controles de
Pragas, onde o objeto de investigação foi a DISTRIBUIDORA DEDETEC LTDA.
A COMERCIAL VET atua no ramo de comércio varejista e atacadista focados na
comercialização de produtos veterinários. O faturamento bruto médio mensal da loja
Filia 1 gira em torno de R$ 1.500.000,00 (um milhão e meio de reais) enquanto o da
loja Filial 2 gira em torno de R$ 215.000,00 (duzentos e quinze mil reais).
A DISTRIBUIDORA DEDETEC atua no ramo de comércio atacadista focado
na comercialização de raticidas e inseticidas e possui um faturamento bruto médio
mensal que gira em torno de R$ 82.000,00 (oitenta e dois mil reais).
Ambas as empresas possuem suas atividades operacionais conduzidas de forma
empírica, através do feeling, e apoiadas em relatórios gerenciais disponibilizados pelo
sistema de automação comercial utilizado, o MwVenda. Apesar da existência de um
grande histórico de transações comerciais nos bancos de dados dessas empresas, essas
informações não respondem a muitas perguntas relevantes que poderiam contribuir para
tomada de decisão. A falta de descoberta de novos conhecimentos e informações pode
estar relacionada à ausência de técnicas de Mineração de Dados e, também, à falta de
uma metodologia e de ferramentas para extrair conhecimentos destes bancos de dados.
Com o desenvolvimento do Sistema de Apoio à Mineração de Regras de Associação –
SAMiRA, e sua integração com o MwVenda, foram realizados experimentos de
mineração nas bases de dados das lojas Filial 1 e Filial 2 da COMERCIAL VET LTDA
e da loja matriz da DEDETEC LTDA a fim de serem identificados os tipos de regras
82
existentes, suas respectivas medidas de interesses mais relevantes e uma avaliação
comparativa dos algoritmos de regras de associação disponíveis no SAMiRA, Apriori e
FP-Growth, respectivamente para estas bases de transações de vendas de produtos
veterinários e de vendas de produtos para controle de pragas. É válido salientar que
apesar de já existirem no Estado da Arte comparações para estes algoritmos com bases
de dados em diversas áreas de negócio, ainda não constam estas avaliações para
transações dos ramos de produtos veterinários e de produtos de controle de pragas.
Para a realização dos experimentos de mineração, de forma à explorar os espaços de
buscas das possíveis regras existentes e organizar de forma sistemática todas as
configurações e calibrações necessárias com os algoritmos de regras de associação, fezse necessário a elaboração de um planejamento para estes experimentos de mineração
que será apresentado a seguir.
3.2
Planejamento dos Experimentos de Mineração
Como metodologia para descoberta de Regras de Associações, nas bases de dados
apresentadas, foi elaborado o seguinte planejamento a fim de auxiliar no processo de
calibração dos parâmetros para a mineração.
Inicialmente foram utilizados 3 (três) bancos de dados de lojas distintas, Filial 1 e Filial
2 da COMERCIAL VET e o da loja matriz da DISTRIBUIDORA DEDETEC, das
quais foram preparados os seguintes conjuntos de dados apresentados na Tabela 3.1 a
seguir.
Tabela 3.1 – Conjunto de transações referentes à vendas.
Bases de Dados
Conjunto de Transações de Vendas referentes ao período de:
Março de 2010
Março a Maio de 2010
COMERCIAL VET - Loja Filial 1
SIM
SIM
COMERCIAL VET - Loja Filial 2
SIM
SIM
DISTRIBUIDORA DEDETEC (Matriz)
SIM
SIM
Cada um destes conjuntos de dados passará pela Etapa de Mineração de Dados
utilizando os algoritmos Apriori e FP-Growth e, para cada algoritmo, passará pela
Bateria de Experimentos descrita na Seção 3.2.1.
83
Figura 3.1 – Abstração do Planejamento dos Experimentos.
3.2.1 Bateria de Experimentos de Mineração de Dados
A Bateria de Experimentos subdivide a exploração de regras de associações por espaços
de buscas delimitadas pelas medidas de interesses de suporte e Lift. Preocupando-se,
inicialmente, em descobrir tendências de suporte regras de associações nas bases de
dados exploradas, de forma a delimitar apenas para regras de dependências positivas
através do Lift maior que 1 (um).
Além de busca de regras de associação em diversos espaços de busca, os experimentos
também consideram a avaliação comparativa dos algoritmos Apriori e FP-Growth para
os conjuntos de dados explorados.
Segue a relação dos experimentos proposta para a Bateria dos Experimentos.
84
1º – Experimentos com parâmetros padrões da Ferramenta Weka, alterando apenas a
quantidade de Regras (–N) para 10000 e Tipo de Métrica para Lift (-T 1) onde o valor
padrão é 1.1:
Tabela 3.2 – Parâmetros do 1º Experimento
Seq.
1
Parâmetros de Mineração
-N 10000 –T 1 –C 1.1 –M 0.1 –U 1.0
-N
10000
-C
1.1
-M
0.1
-U
1.0
Espaço de Pesquisa:
Figura 3.2 – Espaço de Pesquisa do 1º Experimento
Como parte das definições do planejamento de cada experimento, é apresentado um
gráfico que representa seus respectivos Espaços de Pesquisa, onde são exploradas regras
cujo Suporte esteja contido dentro dos Limites Inferior e Superior para o Suporte
Mínimo representados pela área com tom de cinza.
A Figura 3.2 representa o espaço de pesquisa para regras que variam entre os Limites de
Suporte 0.1 e 1.0, ou respectivamente 10% e 100%.
2 º – Experimentos com Limite Inferior para Suporte Mínimo (-M) fixado em 0.1 e
Limite Superior para Suporte Mínimo (-U) variando de 0.2 a 1.0.
Tabela 3.3 – Parâmetros do 2º Experimento
Seq.
1
2
3
4
5
6
7
8
Parâmetros de Mineração
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.2
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.3
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.4
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.5
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.6
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.7
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.8
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.9
-N
10000
10000
10000
10000
10000
10000
10000
10000
-C
1.1
1.1
1.1
1.1
1.1
1.1
1.1
1.1
-M
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
-U
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
85
9
-N 10000 –T 1 –C 1.1 –M 0.1 –U 1.0
10000
1.1
0.1
1.0
Espaço de Pesquisa:
Figura 3.3 – Espaço de Pesquisa do 2º Experimento
A Figura 3.3 representa o espaço de pesquisa para regras entre os Limites de Suporte
0.1 e 1.0, onde o Limite Inferior para Suporte Mínimo permanece em 0.1 e o Limite
Superior para Suporte Mínimo começa com 0.2 e cresce gradativamente até 1.0.
3 º – Experimentos com Limite Inferior para Suporte Mínimo (-M) variando de 0.8 a
0.1 e Limite Superior para Suporte Mínimo (-U) fixado em 0.9:
Tabela 3.4 – Parâmetros do 3º Experimento
Seq.
1
2
3
4
5
6
7
8
Parâmetros de Mineração
-N 10000 –T 1 –C 1.1 –M 0.8 –U 0.9
-N 10000 –T 1 –C 1.1 –M 0.7 –U 0.9
-N 10000 –T 1 –C 1.1 –M 0.6 –U 0.9
-N 10000 –T 1 –C 1.1 –M 0.5 –U 0.9
-N 10000 –T 1 –C 1.1 –M 0.4 –U 0.9
-N 10000 –T 1 –C 1.1 –M 0.3 –U 0.9
-N 10000 –T 1 –C 1.1 –M 0.2 –U 0.9
-N 10000 –T 1 –C 1.1 –M 0.1 –U 0.9
-N
10000
10000
10000
10000
10000
10000
10000
10000
-C
1.1
1.1
1.1
1.1
1.1
1.1
1.1
1.1
-M
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
-U
0.9
0.9
0.9
0.9
0.9
0.9
0.9
0.9
86
Espaço de Pesquisa:
Figura 3.4 – Espaço de Pesquisa do 3º Experimento
A Figura 3.4 representa o espaço de pesquisa para regras entre os Limites de Suporte
0.1 e 1.0, onde o Limite Superior para Suporte Mínimo permanece em 0.9 e o Limite
Inferior para Suporte Mínimo começa com 0.8 e diminui gradativamente até 0.1.
4 º – Experimentos com Limite Inferior para Suporte Mínimo (-M) variando de 0.09 a
0.01 e Limite Superior para Suporte Mínimo (-U) fixado em 0.1:
Tabela 3.5 – Parâmetros do 4º Experimento
Seq.
1
2
3
4
5
6
7
8
9
Parâmetros de Mineração
-N 10000 –T 1 –C 1.1 –M 0.09 –U 0.1
-N 10000 –T 1 –C 1.1 –M 0.08 –U 0.1
-N 10000 –T 1 –C 1.1 –M 0.07 –U 0.1
-N 10000 –T 1 –C 1.1 –M 0.06 –U 0.1
-N 10000 –T 1 –C 1.1 –M 0.05 –U 0.1
-N 10000 –T 1 –C 1.1 –M 0.04 –U 0.1
-N 10000 –T 1 –C 1.1 –M 0.03 –U 0.1
-N 10000 –T 1 –C 1.1 –M 0.02 –U 0.1
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.1
-N
10000
10000
10000
10000
10000
10000
10000
10000
10000
Espaço de Pesquisa:
Figura 3.5 – Espaço de Pesquisa do 4º Experimento
-C
1.1
1.1
1.1
1.1
1.1
1.1
1.1
1.1
1.1
-M
0.09
0.08
0.07
0.06
0.05
0.04
0.03
0.02
0.01
-U
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
87
A Figura 3.5 representa o espaço de pesquisa para regras entre os Limites de Suporte
0.01 e 0.1, onde o Limite Superior para Suporte Mínimo permanece em 0.1 e o Limite
Inferior para Suporte Mínimo começa com 0.09 e diminui gradativamente até 0.01.
5 º – Experimentos com Limite Inferior para Suporte Mínimo (-M) fixado em 0.01 e
Limite Superior para Suporte Mínimo (-U) variando de 0.02 a 0.09.
Tabela 3.6 – Parâmetros do 5º Experimento
Seq.
1
2
3
4
5
6
7
8
Parâmetros de Mineração
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.02
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.03
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.04
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.05
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.06
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.07
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.08
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.09
-N
10000
10000
10000
10000
10000
10000
10000
10000
-C
1.1
1.1
1.1
1.1
1.1
1.1
1.1
1.1
-M
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
-U
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
Espaço de Pesquisa:
Figura 3.6 – Espaço de Pesquisa do 5º Experimento
A Figura 3.6 representa o espaço de pesquisa para regras entre os Limites de Suporte
0.01 e 0.1, onde o Limite Inferior para Suporte Mínimo permanece em 0.01 e o Limite
Superior para Suporte Mínimo começa com 0.02 e cresce gradativamente até 0.09.
6 º – Experimentos com Limite Inferior para Suporte Mínimo (-M) fixado em 0.1,
Limite Superior para Suporte Mínimo (-U) fixado em 1.0 e Valor Mínimo da Métrica
Lift (-C) variando de 1.1 a 50 na sequência 1.1, 10, 20, 30, 40 e 50.
88
Tabela 3.7 – Parâmetros do 6º Experimento
Seq.
1
2
3
4
5
6
Parâmetros de Mineração
-N 10000 –T 1 –C 1.1 –M 0.1 –U 1.0
-N 10000 –T 1 –C 10 –M 0.1 –U 1.0
-N 10000 –T 1 –C 20 –M 0.1 –U 1.0
-N 10000 –T 1 –C 30 –M 0.1 –U 1.0
-N 10000 –T 1 –C 40 –M 0.1 –U 1.0
-N 10000 –T 1 –C 50 –M 0.1 –U 1.0
-N
10000
10000
10000
10000
10000
10000
-C
1.1
10
20
30
40
50
-M
0.1
0.1
0.1
0.1
0.1
0.1
-U
1.0
1.0
1.0
1.0
1.0
1.0
Espaço de Pesquisa:
Figura 3.7 – Espaço de Pesquisa do 6º Experimento
A Figura 3.7 representa o espaço de pesquisa para regras que variam entre os Limites de
Suporte 0.1 e 1.0, onde a métrica mínima do Lift pode assumir os seguintes valores: 1.1,
10, 20, 30, 40 e 50.
7 º – Experimentos com Limite Inferior para Suporte Mínimo (-M) fixado em 0.01,
Limite Superior para Suporte Mínimo (-U) fixado em 0.1 e Valor Mínimo da Métrica
Lift (-C) variando de 1.1 a 50 na sequência 1.1, 10, 20, 30, 40 e 50.
Tabela 3.8 – Parâmetros do 7º Experimento
Seq.
1
2
3
4
5
6
Parâmetros de Mineração
-N 10000 –T 1 –C 1.1 –M 0.01 –U 0.1
-N 10000 –T 1 –C 10 –M 0.01 –U 0.1
-N 10000 –T 1 –C 20 –M 0.01 –U 0.1
-N 10000 –T 1 –C 30 –M 0.01 –U 0.1
-N 10000 –T 1 –C 40 –M 0.01 –U 0.1
-N 10000 –T 1 –C 50 –M 0.01 –U 0.1
-N
10000
10000
10000
10000
10000
10000
-C
1.1
10
20
30
40
50
-M
0.01
0.01
0.01
0.01
0.01
0.01
-U
0.1
0.1
0.1
0.1
0.1
0.1
89
Espaço de Pesquisa:
Figura 3.8 – Espaço de Pesquisa do 7º Experimento
A Figura 3.8 representa o espaço de pesquisa para regras que variam entre os Limites de
Suporte 0.01 e 0.1, onde a métrica mínima do Lift pode assumir os seguintes valores:
1.1, 10, 20, 30, 40 e 50.
8 º – Experimentos com Limite Inferior para Suporte Mínimo (-M) fixado em 0.01,
Limite Superior para Suporte Mínimo (-U) fixado em 1.0 e Valor Mínimo da Métrica
Lift (-C) fixado em 1.1. Assim serão realizadas buscas por regras de associações em
todos os espaços de buscas de em um único processamento, restringindo apenas à regras
com dependência positiva apoiadas pelo Lift maior que 1.
Tabela 3.9 – Parâmetros do 8º Experimento
Seq.
1
Parâmetros de Mineração
-N 10000 –T 1 –C 1.1 –M 0.01 –U 1.0
-N
10000
-C
1.1
-M
0.01
-U
1.0
Espaço de Pequisa
Figura 3.9 – Espaço de Pesquisa do 8º Experimento
A Figura 3.9 representa o espaço de pesquisa para regras que variam entre os Limites de
Suporte 0.01 e 1.0, ou respectivamente 1% e 100%.
90
3.3
Execução do Projeto de Mineração
Esta seção apresenta o roteiro a ser seguido para a execução do projeto de mineração,
considerando os conhecimentos e planejamentos levantados nas seções 3.1 e 3.2.
Para a execução da mineração das regras de associação foi utilizado o auxílio do sistema
SAMiRA rodando em um computador com processador Intel Core 2 Quad e com 4GB
de memória RAM com sistema operacional Windows XP Professional x64.
Os dados a serem minerados são oriundos de vendas de produtos veterinários e de
produtos de controle de pragas, onde os conjuntos de dados a serem considerados na
mineração de regras de associação consistem em registros de transações de vendas de
um determinado período e seus respectivos itens comercializados.
Para a preparação dos dados foram criadas consultas para as bases de dados
apresentadas no planejamento dos experimentos de mineração, onde a seleção de dados
de um determinado período pode ser realizada de forma parametrizada, informando um
período entre datas de transações de vendas. Todos esses conjuntos de dados foram
gerados através dos recursos da área de Pré-Processamento do SAMiRA e convertidos
no formato do arquivo ―.arff‖ para mineração de regras de associação.
Cada um destes conjuntos de dados foi processado pelos recursos disponíveis na área de
Mineração de Dados do SAMiRA, utilizando os algoritmos Apriori e FP-Growth e,
para cada algoritmo, utilizando todos os parâmetros de mineração definidos pela Bateria
de Experimentos planejada.
Todos os resultados encontrados nos processamentos planejados foram gravados no
banco de dados do SAMiRA, permitindo através da área de Pós-Processamento uma
análise destes resultados, que será apresenta na seção 3.4 a seguir.
91
3.4
Análise dos Resultados do Estudo de Caso de Comércio de Produtos
Veterinários
As análises dos resultados foram guiadas pelos critérios de descoberta do tipo de perfil
das regras encontradas nos 4 (quatro) conjuntos de dados referentes as transações de
vendas de produtos veterinários e avaliação comparativa dos algoritmos Apriori e FPGrowth, considerando a quantidade de regras encontradas, suas qualidades de acordo
com suas medidas de interesse objetivas e o desempenho dos algoritmos quanto ao
tempo de processamento.
3.4.1 Perfil das Regras de Associações encontradas
Foram pesquisadas regras através das medidas de interesse objetivas cujo espaço de
pesquisa foi delimitado pelo suporte variando entre 1% à 100% e pelo índice Lift
superior à 1. Foi observado que as medidas de interesse de suporte das regras
encontradas variaram entre 1% e 5%, caracterizando que a venda de determinados
produtos em conjunto não se repete com tanta freqüência dentro de um conjunto de
transações de vendas. Estas características divergem das que geralmente ocorrem em
supermercados que podem alcançar suporte na casa de 60% ou até valores superiores
(GONÇALVES, 2005).
3.4.2 Algoritmos Apriori Versus FP-Growth
Conforme foi observado na seção anterior, as regras encontradas nos experimentos
realizados possuíam as medidas de interesse de suporte variando entre 1% à 5%. Com
base nestas informações, num primeiro momento, foi realizado um levantamento da
quantidade de regras por suporte, onde foram consideradas todas as regras com o Lift
maior que 1 (um) e independente do valor das medidas de interesse Confiança e RI, ou
seja, independente da qualidade das regras. Estas regras estão representadas nas Figuras
3.10 e 3.13.
Num segundo momento estas regras foram submetidas a um filtro de qualidade pelas
medidas de interesse Confiança igual ou maior a 60% e RI maior que zero. Para este
92
último valor reforçando o papel do índice Lift em considerar apenas as regras com
dependências positivas. Estas regras estão representadas nas Figuras 3.14 e 3.15.
Finalizando as avaliações dos algoritmos, é apresentada e discutida uma representação
gráfica comparativa dos tempos de processamento dos algoritmos por conjunto de dados
conforme ilustração na Figura 3.16.
3.4.2.1 Análise comparativa considerando a quantidade das regras encontradas
Pode-se observar no gráfico da Figura 3.10 uma comparação quantitativa de regras
encontradas por cada algoritmo dentro de cada conjunto de dados do banco de dados da
Filial 2, o conjunto referente à transações de vendas de março de 2010 e o conjunto
referente à transações de vendas do período de março a maio de 2010.
Assim como os próximos gráficos a seguir das Seções 3.4.2.1 e 3.4.2.2, todos seguem a
mesma representatividade das distribuições das quantidades de regras encontradas e
agrupadas pelos suportes definidos na legenda. Esclarecendo esta última informação,
todos os números apresentados nos blocos da cor representada pelo suporte 0,01 (1%)
representam a quantidade de regras encontradas com este valor de suporte. Por exemplo,
no conjunto de dados da Filial 2 referentes às transações de vendas do período de março
de 2010, o algoritmo Apriori encontrou 110 (cento e dez) regras com suporte 0,01, 18
(dezoito) regras com suporte 0,02, 4 (quatro) regras com suporte 0,03, duas regras com
suporte 0,04 e duas com suporte 0,05.
93
Quantidade de Regras
Conjuntos de Dados da Filial 2
1500
1244
1000
500
1224
730
110
18 4 2 2
64 18 4 2 2
730
60 6 2
60 6 2
0
Apriori
FPGrowth
Apriori
Vendas no Período de Março
de 2010 (Transações: 618
Atributos: 139)
0,01
FPGrowth
Vendas no Período de Março
a Maior de 2010 (Transações:
2032 Atributos: 338)
0,02
0,03
0,04
0,05
Classificação por Suporte de Regras
Figura 3.10 – Gráfico de quantidades de regras por suporte dos conjuntos de dados da Filial 2
Dentro de cada conjunto de dados
da Filial 2, apenas ocorreram diferenças de
quantidade de regras encontradas pelos algoritmos para as regras com 0,01 de suporte.
As Figuras 3.11 e 3.12 apresentam dois relatórios de regras distintos com regras
oriundas do mesmo conjunto de dados referentes às transações de vendas do mês de
março de 2010 da Filial 2. O primeiro relatório apresenta as 30 (trinta) primeiras regras
extraídas pelo algoritmo Apriori e o segundo relatório apresenta as 30 (trinta) primeiras
regras extraídas pelo algoritmo FP-Growth. Para ambos os relatórios, as regras estão
ordenadas em ordem decrescente pelas seguintes métricas: Suporte, Confiança, Lift e RI.
Considerando esta sequência como ordem de prioridades.
94
Figura 3.11 – Top 30 das Regras extraídas pelo Apriori dos dados de março de 2010 da Filial 2.
Figura 3.12 – Top 30 das Regras extraídas pelo FP-Growth dos dados de março de 2010 da Filial 2
95
Quantidade de Regras
Conjuntos de Dados da Filial 1
150
122
92
100
50
42
10
92
48
42
10
0 0
92
48
8
0 0
8
0 0
00
0
Apriori
FPGrowth
Apriori
Vendas no Período de Março
de 2010 (Transações: 2416
Atributos: 929)
0,01
0,02
FPGrowth
Vendas no Período de Março
a Maior de 2010 ( Transações:
7182 Atributos: 1575)
0,03
0,04
0,05
Classificação por Suporte de Regras
Figura 3.13 – Gráfico de quantidades de regras por suporte dos conjuntos de dados da Filial 1
Assim como observado dentro de cada conjunto de dados da Filial 2, o mesmo ocorreu
dentro de cada conjunto de dados da Filial 1, apenas existiram diferenças de quantidade
de regras encontradas pelos algoritmos para as com 0,01 de suporte.
3.4.2.2 Análise comparativa considerando a qualidade das regras encontradas
Os dados desta fase da análise comparativa se diferem dos da seção anterior por terem
passado por um filtro delimitando as regras por mais dois critérios de medidas de
interesse: Confiança igual ou maior a 60% e RI maior que zero. Com isto pode-se
observar nas Figuras 3.14 e 3.15
que a quantidade de regras encontradas caiu
significativamente ao mesmo tempo em que teve um aumento de qualidade em virtude
dos novos critérios aplicados.
96
Quantidade de Regras
Conjuntos de Dados da Filial 2
474
500
473
419
419
400
300
200
100
19 3 2 1 0
37
11 3 2 1 0
37
4 0
40
0
Apriori
FPGrowth
Vendas no Período de Março
de 2010 (Transações: 618
Atributos: 139)
0,01
0,02
Apriori
FPGrowth
Vendas no Período de Março
a Maior de 2010 (Transações:
2032 Atributos: 338)
0,03
0,04
0,05
Classificação por Suporte de Regras
Figura 3.14 – Gráfico de quantidades de regras por suporte dos conjuntos de dados da Filial 2
Para as comparações dentro de cada conjunto de dados da Filial 2, apenas ocorreram
diferenças de quantidade de regras encontradas pelo algoritmos para as com 0,01 de
suporte.
Quantidade de Regras
Conjuntos de Dados da Filial 1
25
20
23
19
15
19
15
15
10
19
11
7
11
7
4
5
0 0
0 0
4
0 0
00
0
Apriori
FPGrowth
Vendas no Período de Março
de 2010 (Transações: 2416
Atributos: 929)
0,01
0,02
Apriori
FPGrowth
Vendas no Período de Março
a Maior de 2010 ( Transações:
7182 Atributos: 1575)
0,03
0,04
0,05
Classificação por Suporte de Regras
Figura 3.15 – Gráfico de quantidades de regras por suporte dos conjuntos de dados da Filial 1
97
Dentro dos conjuntos de dados da Filial 1, apenas ocorreram diferenças de quantidade
de regras encontradas pelos algoritmos para as com 0,01 de suporte dentro do conjunto
de dados referentes a transações de vendas do período de março de 2010. Para o outro
conjunto de dados não ocorreu nenhuma diferença, ou seja, os algoritmos encontraram
as mesmas quantidades de regras por suporte.
3.4.2.3 Análise comparativa considerando o desempenho dos algoritmos
Para esta última etapa da análise comparativa dos algoritmos foi considerado o critério
tempo de processamento dos algoritmos para cada conjunto de dados.
Figura 3.16 – Gráfico de tempo de processamento dos algoritmos por conjunto de dados
Na Figura 3.16, logo acima, pode-se observar que os algoritmos demonstraram
expressivas diferenças de tempo de processamento. Destacando-se o algoritmo FPGrowth por utilizar menos de 1 (um) segundo de tempo de execução para cada conjunto
de dados, enquanto o tempo utilizado pelo Apriori variou de 2,719 e 2.879,766
segundos para processar os mesmos conjuntos de dados.
98
3.5
Análise dos Resultados do Estudo de Caso de Comércio de Produtos de
Controle de Pragas
As análises dos resultados foram guiadas pelos critérios de descoberta do tipo de perfil
das regras encontradas nos 2 (dois) conjuntos de dados referentes a transações de
vendas de produtos de controle de pragas e avaliação comparativa dos algoritmos
Apriori e FP-Growth, considerando quantidade de regras encontradas, suas qualidades
de acordo com suas medidas de interesse objetivas e desempenho dos algoritmos quanto
ao tempo de processamento.
Através da bateria de experimento, foi identificado que o único caso em que não foi
possível processar regras utilizando suporte variando de 1% a 100%, ocorre quando se
utiliza o algoritmo Apriori para minerar o conjunto de dados referente às transações de
vendas do período de março de 2010. Isto ocorre em virtude deste processamento
requerer mais memória RAM que o computador utilizado nos experimentos possui,
aproximadamente 3.5 GB disponível para processamento. Assim, para que todos os
algoritmos pudessem processar todos os conjuntos de dados utilizando os mesmos
parâmetros de mineração de forma a permitir uma análise comparativa, foi utilizado
suporte mínimo variando de 2% a 100% e o índice Lift superior a 1 (um).
3.5.1 Perfil das Regras de Associações encontradas
Obsevou-se que as medidas de interesse de suporte das regras encontradas variaram
entre 1% e 21%, dentre elas encontram-se regras de associações com conjunto de itens
variando de 1 (um) até 11 (onze) itens por regra.
3.5.2 Algoritmos Apriori Versus FP-Growth
Conforme já observado, as regras encontradas nos experimentos realizados possuíam as
medidas de interesse de suporte variando entre 2% a 21%. Com base nestas
informações, num primeiro momento, foi realizado um levantamento da quantidade de
regras por suporte, onde foram consideradas todas as regras com o Lift maior que 1
(um) e independente do valor das medidas de interesse Confiança e RI, ou seja,
99
independente da qualidade das regras. Estas regras estão representadas nas Figuras 3.17
e 3.18.
Num segundo momento, estas regras foram submetidas a um filtro de qualidade pelas
medidas de interesse Confiança igual ou maior a 60% e RI maior que zero. Para este
último, reforçando o papel do índice Lift em considerar apenas as regras com
dependências positivas. Estas regras estão representadas nas Figuras 3.19 e 3.20.
Finalizando as avaliações dos algoritmos, será apresentada e discutida uma
representação gráfica comparativa dos tempos de processamento dos algoritmos por
conjunto de dados, conforme ilustração na Figura 3.22.
3.5.2.1 Análise comparativa considerando a quantidade das regras encontradas
Os gráficos das Figuras 3.17 e 3.18 apresentam comparações quantitativas de regras
encontradas por cada algoritmo dentro dos conjuntos de dados referente a transações de
vendas dos períodos de março de 2010 e de março a maio de 2010, respectivamente.
Assim como os próximos gráficos a seguir das Seções 3.5.2.1 e 3.5.2.2, todos seguem a
mesma representatividade das distribuições das quantidades de regras encontradas e
agrupadas pelos suportes definidos na legenda. Esclarecendo esta última informação,
todos os números apresentados representados pelo suporte 0,02 (2%) representam a
quantidade de regras encontradas com este valor de suporte. Por exemplo, no conjunto
de dados da DEDETEC referentes às transações de vendas do período de março de
2010, o algoritmo Apriori encontrou 2 (duas) regras com suporte 0,21 (ou 21%), 2
(duas) regras com suporte 0,16 (ou 16%) e 8 (oito) regras com suporte 0,12 (ou 12%).
É importante observar que as regiões dos gráficos em que aparecem apenas os traços
simbolizados pelo algoritmo FP-Growth possuem os mesmos valores do Apriori.
Finalizando o comentário dos gráficos, estes só apresentam os suportes encontrados nas
regras, por este motivo que os suportes 0,13 a 0,15 e os de 0,17 a 0,20 não aparecem na
relação de suportes da legenda da Figura 3.17.
Quantidade de Regras Encontradas
100
Conjuntos de Dados da DEDETEC - Março de 2010
700000
600000
573794
500000
400000
Apriori
300000
FPGrowth
200000
100000
84278
4692
766
162
50
62
22
6
2
2
8
2
2
0
0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09 0,1 0,11 0,12 0,16 0,21
Suporte das regras encontradas
Figura 3.17 – Gráfico de quantidades de regras por suporte dos conjuntos de dados da DEDETEC de
março de 2010
Pode-se observar no gráfico da Figura 3.17 que há divergência de quantidades de regras
encontradas pelo algoritmos apenas para o suporte 0,02 (2%), onde o Apriori encontrou
573794 (quinhentos e setenta e três mil e setecentos e noventa e quatro) regras enquanto
Quantidade de Regras Encontradas
o FP-Growth encontrou 84278 (oitenta e quatro mil e duzentos e setenta e oito) regras.
Conjuntos de Dados da DEDETEC - Março a Maio de 2010
1400
1200
1228
1000
800
608
Apriori
600
FPGrowth
400
200
148
62
52
20
22
12
4
2
2
2
2
0
0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09 0,1 0,11 0,12 0,13 0,18
Suporte das regras encontradas
Figura 3.18 – Gráfico de quantidades de regras por suporte dos conjuntos de dados da DEDETEC de
março a maio de 2010
No gráfico da Figura 3.18, é possível verificar que os dois algoritmos encontraram as
mesmas quantidades de regras por suporte.
101
3.5.2.2 Análise comparativa considerando a qualidade das regras encontradas
Os dados desta fase da análise comparativa se diferem dos da seção anterior por terem
passado por um filtro delimitando as regras por mais dois critérios de medidas de
interesse: Confiança igual ou maior a 60% e RI maior que zero. Com isto pode-se
observar nas Figuras 3.19 e 3.20 que a quantidade de regras encontradas caiu
significativamente para as regras com menor suporte, ao mesmo tempo em que teve um
Quantidade de Regras Encontradas
aumento de qualidade em virtude dos novos critérios aplicados.
Conjuntos de Dados da DEDETEC - Março de 2010
450000
400000
399837
350000
300000
250000
Apriori
200000
FPGrowth
150000
100000
50000
68309
2915
439
98
29
28
12
3
1
1
4
1
2
0
0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09 0,1 0,11 0,12 0,16 0,21
Suporte das regras encontradas
Figura 3.9 – Gráfico de quantidades de regras por suporte dos conjuntos de dados da DEDETEC de
março de 2010
Para as comparações dentro do conjunto de dados DEDETEC apresentados na Figura
3.19, apenas ocorreram diferenças de quantidade de regras encontradas pelos algoritmos
para as com 0,02 (2%) de suporte.
102
Quantidade de Regras Encontradas
Conjuntos de Dados da DEDETEC - Março a Maio de 2010
450
400
400
350
300
250
200
Apriori
158
FPGrowth
150
100
50
29
16
10
4
7
5
2
1
1
1
2
0
0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09 0,1 0,11 0,12 0,13 0,18
Suporte das regras encontradas
Figura 3.20 – Gráfico de quantidades de regras por suporte dos conjuntos de dados da DEDETEC de
março a maio de 2010
De acordo com o gráfico da Figura 3.20, dentro do conjunto de dados referente a
transações de vendas do período de março a maio de 2010, os algoritmos encontraram
as mesmas quantidades de regras por suporte.
A Figura 3.21 apresenta um relatório com regras oriundas do conjunto de dados
referente às transações de vendas do mês de março de 2010 da DEDETEC, em que são
apresentadas as 30 (trinta) primeiras regras extraídas pelo algoritmo FP-Growth. As
regras deste relatório estão filtradas pelas métricas Suporte mínimo maior ou igual a
0,07 e Confiança Mínima maior ou igual a 0,7, e também estão ordenadas em ordem
decrescente pelas seguintes métricas: Suporte, Confiança, Lift e RI, considerando esta
sequência como ordem de prioridades.
103
Figura 3.21 – Top 30 das Regras extraídas pelo FP-Growth dos dados de março de 2010
3.5.2.3 Análise comparativa considerando o desempenho dos algoritmos
Para esta última etapa da análise comparativa dos algoritmos, foi considerado o critério
tempo de processamento dos algoritmos para cada conjunto de dados.
104
Tempo (Segundos)
Tempo de Processamento dos Algoritmos por Conjunto de Dados
5,156
6,000
0,532
4,000
0,625
0,141
Apriori
FPGrowth
2,000
0,000
DEDETEC
(Março de 2010)
Transações: 121
Atributos: 88
DEDETEC
(Março a Maio de 2010)
Transações: 343
Atributos: 97
Conjuntos de Dados
Figura 3.22 – Gráfico de tempo de processamento dos algoritmos por conjunto de dados
Na Figura 3.22, pode-se observar que os algoritmos demonstraram pequenas diferenças
de tempo de processamento considerando o suporte mínimo 0,02 (2%) e suporte
máximo 1,0 (100%).
O único caso em que não foi possível processar regras utilizando suporte variando de
1% a 100%, quando se utiliza o algoritmo Apriori para minerar o conjunto de dados
referente às transações de vendas do período de março de 2010, chegou a levar
aproximadamente 50 (cinquenta) minutos antes de ser cancelado por estouro de
memória RAM, enquanto o FP-Growth, com os mesmos parâmetros, conseguiu
processar o mesmo conjunto de dados em apenas 1,81 segundos.
3.6
Considerações Finais
Neste capítulo foram apresentados dois estudos de casos de mineração de regras de
associações em ramos comerciais distintos: o de comércio de produtos veterinários e o
de comércio de produtos de controle contra pragas. Suas respectivas considerações
finais serão apresentadas nas seções 3.6.1 e 3.6.2 a seguir.
105
3.6.1 Comércio de Produtos Veterinários
Com relação ao perfil de regras de associações, geradas a partir de bases de dados
referentes a transações de vendas de produtos veterinários, foi observado que as
medidas de interesse de suporte das regras encontradas variaram entre 1% à 5%,
caracterizando que a venda de um determinado conjunto de produtos não se repete com
tanta freqüência. Este baixo valor de suporte pode ocorrer devido à grande variedade de
produtos vendidos nas lojas, caso também encontrado por outros trabalhos similares
como o do Schaeffer (2003, p. 66).
Levando em consideração os faturamentos das lojas da COMERCIAL VET LTDA e
sabendo que 5% de seus clientes tem os mesmos comportamentos de compra, quanto
isto pode representar em retorno financeiro e em quanto pode ser maximizadas estas
vendas através de tomada de decisão estratégicas apoiadas na descoberta de
conhecimentos destas regras de associações com suporte de 5% ? É um questionamento
com relevância antes de se afirmar que estes 5% realmente é tão pouco para esta
empresa.
Analisando comparativamente os algoritmos Apriori e FP-Growth e, considerando os
critérios analisados, pode-se observar os seguintes comportamentos:
- Quantidade e Qualidade das Regras: o Apriori encontrou algumas regras a mais apenas
para as que possuem suporte igual à 1%, para as regras com suporte entre 2% e 5%,
ambos os algoritmos encontraram as mesmas quantidades de regras. Assim, só
ocorreram diferenças de quantidades encontradas pelos algoritmos em regras com
suporte de menor relevância.
- Desempenho: o FP-Growth precisou de 0,078 à 0,766 segundos para processar os
quatro conjuntos de dados, enquanto que o Apriori precisou de 2,719 à 2.879,766
segundos para a mesma tarefa. Com isto o primeiro algoritmo apresentou um
desempenho melhor em relação ao outro.
106
3.6.2 Comércio de Produtos de Controle de Pragas
Com relação ao perfil de regras de associações, geradas a partir de bases de dados
referentes a transações de vendas de produtos de controle de pragas, foi observado que o
maior suporte encontrado nas regras foi de 21%, ou seja, aproximatamente 1/5 (um
quinto) dos clientes possuem os mesmos hábitos de compras.
Analisando comparativamente os algoritmos Apriori e FP-Growth e, considerando os
critérios analisados, pode-se observar os seguintes comportamentos:
- Quantidade e Qualidade das Regras: para o conjunto de dados referente à transações
de vendas de março de 2010, o Apriori encontrou uma quantidade expressiva superior à
encontrada pelo FP-Growth para as regras com suporte mínimo igual à 2%, único caso
que houve diferença de quantidade de regras encontradas entre os algoritmos. Para o
conjunto de dados referente ao período de março à maio de 2010 não houve diferença
de quantidade de regras encontradas entre os algoritmos. Assim, só ocorreram
diferenças de quantidades encontradas pelos algoritmos no conjunto de dados de março
de 2010 e, em regras com suporte de menor relevância.
- Desempenho: o FP-Growth precisou de 0,141 à 0,532 segundos para processar os
quatro conjuntos de dados, enquanto que o Apriori precisou de 0,625 à 5,156 segundos
para a mesma tarefa. Com isto o primeiro algoritmo apresentou um desempenho melhor
em relação ao outro.
3.6.2.1 Análise do Ponto de Vista do Negócio
Após uma demonstração de utilização do SAMiRA e das regras geradas, um dos
gestores da DEDETEC demonstrou-se entusiasmado com os descobrimento de novos
conhecimentos através do sistema. Inicialmente observou que as regras com os maiores
suportes eram compostas por produtos baratos, que variavam entre 3 (três) e 10 (dez)
reais, e que as vendas conjuntas destes produtos já eram bem triviais nas rotinas deles,
mas ao colocar as regras ordenadas por suporte seguido de confiança, ele não deixou de
comentar que achava que a compra do produto B é que influenciava a compra do
produto A, mas o indicador Confiança demonstrava o que ele não sabia, que a compra
do produto A é que influenciava a compra do produto B. Isto porque enquanto a regra
B->A possuía uma confiança de 30%, a regra A->B possuía uma confiança de 95%.
107
O gestor levantou uma descoberta de conhecimento que seria de muita importância para
a empresa analisar as vendas de produtos de controle de pragas de uso profissional,
produtos que variam de preço entre R$ 40,00 a R$ 300 reais. Há uma demanda maior
por parte das dedetizadoras e querem maximizar esta procura destes clientes através de
estratégias de vendas. Para isto, seria de grande relevância aprender os hábitos de
compras dos clientes em cima destes produtos, tarefa que pode ser guiada por
informações geradas pelo SAMiRA. Para isto, eles poderiam utilizar o filtro por itens da
área de Pós-Processamento para selecionar apenas as regras que possuam os produtos de
uso profissional, realizando assim uma descoberta de conhecimento dirigida.
3.6.2.2 Análise do Ponto de Vista Técnico
Com relação à utilização do SAMiRA para a realização deste estudo de caso foram
levantadas algumas melhorias a serem feitas. Visto que este estudo de caso gerou
processamentos com mais de 570 (quinhentos e setenta) mil regras, o computador
utilizado nos experimentos chegou a precisar de quase 3 (três) GB de RAM para gravar
as regras. Isto porque na interpretação e importação do arquivo de resposta da
mineração, todos os dados são alocados em objetos de sistema, ou seja, ficam na
memória RAM e só são liberados da memória depois da gravação da última regra no
banco de dados. A melhoria seria que à medida que o sistema lesse os dados de um
objeto e gravasse no banco, este objeto já poderia ser liberado da memória.
Na área de processamento são carregados os dados dos processamentos e quando um
destes registros é selecionado, automaticamente as regras deste processamento também
são carregadas. Acontece que, às vezes, para selecionar um processamento desejado,
outros processamentos são acidentalmente selecionados, e o que acontece se um destes
tiver mais de 100 (cem) mil regras? Provavelmente o usuário terá que esperar o sistema
carregar todas as regras antes de tentar selecionar o registro de processamento desejado.
Uma solução seria trazer apenas os dados de processamento e só carregar as regras
quando o usuário desse um duplo clique em cima do registro do processamento
desejado.
108
4
CONCLUSÕES E TRABALHOS FUTUROS
Este capítulo descreve as conclusões, principais contribuições e as linhas de trabalho
futuro.
4.1
Conclusões
O objetivo principal deste trabalho é projetar, implementar e avaliar um sistema de
apoio a decisão que auxilie no processo de mineração de regras de associação. Para isto
foi desenvolvido um sistema de apoio à mineração de regras de associação chamado
SAMiRA que conseguiu atingir todos os objetivos, os gerais e os específicos.
Foram realizados dois estudos de casos de utilização da ferramenta, onde foram
minerados conjuntos de dados de transações de vendas de produtos veterinários e de
produtos contra pragas, a fim de analisar os perfis das regras extraídas para estes ramos
de negócios e uma análise comparativa entre os algoritmos Apriori e FP-Growth para
estes conjuntos de dados.
Como resultado do estudo de caso de comércio de produtos veterinários foi observado
que a venda simultânea de um determinado conjunto de produtos não se repete com
tanta freqüência, onde o maior suporte encontrado nas regras foi de apenas 5%,
comportamento decorrente da grande variedade de produtos. Na avaliação comparativa
entre os algoritmos, nos critérios quantidade e qualidade de regras, ocorreu diferenças
apenas no caso de regras com suporte igual à 1%, onde o Apriori encontrou uma
quantidade maior de regras. Já no critério desempenho dos algoritmos, o FP-Growth
apresentou tempos de processamento expressivamente menores que os utilizados pelo
Apriori, chegando até aproximadamente 2.879 (dois mil oitocentos e setenta e nove)
segundos de diferença no pior caso.
Já no resultado do estudo de caso de comércio de produtos contra pragas foram
encontradas regras com suporte até 21% e na avaliação comparativa entre os algoritmos,
nos critérios quantidade e qualidade de regras, apenas ocorreram diferenças no conjunto
de transações de vendas referentes ao período de março de 2010, especificamente no
caso de regras com suporte igual à 2%. Já no critério de desempenho dos algoritmos, o
109
FP-Growth apresentou um tempo de processamento um pouco menos que o utilizado
pelo Apriori, uma diferença de apenas 4,6 segundos no pior caso.
Para a realização das análises dos estudos de casos foi necessário que o SAMiRA
gravasse todos os dados minerados, disponibilizasse uma área de pós-processamento
que permitisse refinar consultas de regras relevantes através de recursos de filtros e
ordenações, baseado nas métricas de Suporte, Confiança, Lift e RI e, que o sistema
disponibilizasse as duas opções de algoritmos para regras de associação utilizadas. Por
fim, que permitisse a execução da tarefa de mineração de regras de associação de forma
simples, atingindo assim todos os objetivos geral e específicos propostos.
4.2
Principais Contribuições
As contribuições deste trabalho estendem-se aos seguintes setores diferenciados:
pesquisadores, Especialistas de Negócios e Empresa Desenvolvedora do MwVenda,
Micro World Sistemas.
Pesquisadores
Aqui se refere ao tratamento ―Pesquisadores‖ tanto para pesquisadores acadêmicos da
área de Mineração de Dados, como também aos profissionais da computação que
pretendam investigar soluções existentes no Estado da Arte para aplicarem no mercado.
As avaliações de técnicas para geração de regras para transações de vendas de produtos
veterinários e produtos contra pragas, assim como a análise comparativa dos algoritmos
Apriori e FP-Growth para este ramo de negócio e demais resultados encontrados,
poderão contribuir no conhecimento para este público. A idéia da forma como foi
realizada a integração automatizada com a ferramenta Weka também pode ser
reproduzido por qualquer linguagem de programação e adaptações que consiga chamar
as classes do Weka via linha de comando, interpretar e importar o arquivo de resposta.
Especialistas de Negócios
Os especialistas de negócios poderão aplicar tarefas de mineração de regras de
associação através das funcionalidades do SAMiRA de forma simples, sem necessitar
110
de conhecimentos avançados em informática, permitindo, assim, que este sistema se
torne um grande aliado no processo de tomada de decisão.
Micro World Sistemas
Caso se faça necessário implementar um módulo para geração de regras de associação, a
empresa desenvolvedora poderá reaproveitar os códigos fontes do SAMiRA, uma vez
que a linguagem de programação a ser utilizada neste sistema é a mesma empregada no
MwVenda. Convém acrescentar que as funcionalidades do SAMiRA também agregará
um forte valor comercial ao sistema.
4.3
Trabalhos Futuros
Como sugestões de trabahos futuros tem-se:

Possibilitar a mineração de compras de um cliente específico, a fim de
disponibilizar indicadores para equipes de operadores de telemarketing e
vendedores de campo.

Implementar mais recursos para a área de Pós-Processamento, tais como, novos
relatórios e filtros por clientes específicos minerados.

Implementar um recurso de pré-processamento que permita que o usuário possa
minerar apenas transações quem contenham itens pré-selecionados por ele.

Disponibilizar representações gráficas de regras na área de pós-processamento.
111
REFERÊNCIAS
AGRAWAL, R.; IMIELINSKI, T.; SWAMI, A. Database Mining: A Performance
Perspective. IEEE Transactions on Knowledge and Data Engineering: special Issue
on Learning and Discovery in Knowledge-Based Databases, v.5, n.6, p.914-925, dez.
1993.
AGRAWAL, R.; SRIKANT, R. Fast algorithms for mining association rules. 20th
VLDB Conference Santiago, Chile, 1994.
BERRY, M. J.A.; LINOFF, G. Data Mining Techniques. New York: John Wiley,
1997. 454p.
BORGELT, C. An Implementation of the FP-growth Algorithm. Workshop Open
Source Data Mining Software, Chicago, IL, USA: ACM Press, 2005. p.1-5.
BOUCKAERT, R.; FRANL, E.; HALL, M.; KIRKBY, R.; REUTEMANN, P.;
SEEWALD, A.; SCUSE, D. WEKA. Manual for Version 3-7-2. University of
Waikato, Hamilton, Nova Zelândia, Julho de 2010.
BRIN, S.; MOTOWANI, R.; ULLMAN, J. D.; TSUR, S. Dynamic Itemset Counting
and Implication Rules for Market Basket Data. In ACM SIGMOD Intl. Conf. 1997.
CAMARGO, S. S. Mineração de Regras de Associação no Problema da Cesta de
Compras Aplicada ao Comércio Varejista de Confecção. Dissertação (Mestrado em
Ciência da Computação). Universidade Federal do Rio Grande do Sul. Porto Alegre,
2002.
CARVALHO, V. O. Generalização de Regras de Associação Utilizando
Conhecimento de Domínio e Avaliação do Conhecimento Generalizado. Tese
(Doutorado). Universidade de São Paulo, 2007.
FAYYAD, U.; PIATETSKY-SHAPIRO, G.; SMITH, P. From Data Mining to
Knowledge Discovery: An Overview. In: Advances in Knowledge Discovery and Data
Mining, AAAI Press/ The MIT Press, MIT, Cambridge, Massachusets, England, 1996.
FUGIMOTO, M.L. Uma metodologia para exploração de regras de associação
generalizadas integrando técnicas de visualização de informação com medidas de
avaliação do conhecimento. Dissertação (Mestrado em Ciências da Computação e
Matemática Computacional). Universidade de São Paulo, 2008.
GOLDSCHMIDT, R.; PASSOS, E. Data Mining: um guia prático. Rio de Janeiro:
Elsevier, 2005.
GONÇALVES, E. C. Regras de Associação e suas Medidas de Interesse Objetivas e
Subjetivas. INFOCOMP (UFLA), v. 4, p. 26-35, 2005.
GONÇALVES, E. C. ; PLASTINO, A. Mining Strong Associations and Exceptions
in the STULONG Data Set. In: ECML/PKDD 2004 - 15th European Conf. on
Machine Learning / 8th European Conf. on Principles and Practice of Knowledge
Discovery in Databases, 2004, Pisa. Proceedings of the Discovery Challenge 2004,
2004. p. 44-55.
112
HAN, J.; KAMBER, M. Data Mining: Concepts and Techniques. USA: Morgan
Kaufmann, 2000. ISBN: 1558604898.
HAN, J.; PEI, J.; YIN, Y. Mining frequent patterns without candidate generation.
In: Proceedings of ACM SIGMOD international conference on management of data, p.
1-12, 2000.
JÚNIOR, A. A. B.; NIQUE, W. M. A Formação de Cestas de Produtos por Associações
de Compra Geradas pelo Consumidor: uma abordagem inicial. Revista de
Administração da USP, São Paulo: USP, v.33, n.4, p.72-80, out./dez. 1998.
PIATETSKY-SHAPIRO, G. Discovery, Analysis and Presentation of Strong Rules:
knowledge Discovery in Databases. [s.l]: AAAI/MIT Press, 1991.
PRADO, A. B. Explorando a Técnica de Indexação de Conjuntos Candidatos na
Mineração de Conjuntos Freqüentes. Dissertação (Mestrado em Ciência da
Computação). Universidade Federal Fluminense – Niterói, 2005.
SCHAEFFER, A. G. Data Mining no Varejo: estudo de caso para loja de materiais de
construção. Dissertação (Mestrado em Ciência da Computação). Universidade Federal
do Rio Grande do Sul – Porto Alegre, 2003.
SILVA, M. P. S. Mineração de Dados: Conceitos, Aplicações e Experimentos com
WEKA. Natal: UERN; INPE, 2004.
TAN,P-N; STEINBACH, M.; KUMAR, V. Introdução ao Data Mining Mineração
de Dados. Rio de Janeiro: Ciência Moderna, 2009. ISBN: 978-85-7393-761-9.
UNIVERSITY OF WAIKATO. WEKA 3. Machine Learning Software in Java.
Disponível em: <http://www.cs.waikato.ac.nz/ml/weka>. Acesso em: 15 mar. 2010.
WU , X.; KUMAR, V.; QUINLAN, J. R.; GHOSH, J.; YANG, Q.; MOTODA , H.;
MCLACHLAN G. J.; NG , A.; LIU, B.; YU, P. S.; ZHOU, Z-H.; STEINBACH, M.;
HAND, D. J.; STEINBERG, D. Top 10 algorithms in data minin. Knowl. Inf. Syst., v.
14, n. 1, p. 1-37, Jan. 2007. Disponível em: <http://dx.doi.org/10.1007/s10115-0070114-2>. Acesso em: 20 fev. 2010.
Download