submetido - DECOM-UFOP

Propaganda
CECÍLIA HENRIQUES DEVÊZA
Orientador: Luiz Henrique de Campos Merschmann
Minerando Padrões Sequenciais para Bases de Dados de
Lojas Virtuais
Ouro Preto
Junho de 2011
Universidade Federal de Ouro Preto - UFOP
Instituto de Ciências Exatas e Biológicas - ICEB
Departamento de Computação - DECOM
Minerando Padrões Sequenciais para Bases de Dados de
Lojas Virtuais
Monograa
apresentada
ao
Curso
de
Bacharelado em Ciência da Computaçao
da Universidade Federal de Ouro Preto
como requisito parcial para obtenção do
grau de Bacharel em Ciência da Computação.
Cecília Henriques Devêza
Ouro Preto
Junho de 2011
Resumo
A Mineração de Dados é denida em [15] como um processo automatizado de descoberta de novas informações a partir de grandes massas de dados.
Este processo é parte de um processo maior conhecido como KDD (Knowledge
Discovery in Database ) ou Descoberta de Conhecimento em Bases de Dados.
O KDD pode ser dividido em 3 etapas principais: Pré-processamento (limpeza, seleção e transformação), Mineração dos Dados, e Pós-processamento
(avaliação e interpretação).
Este trabalho apresenta um software para realização do pré-processamento
automático e mineração de dados de lojas virtuais, com o intuito de obter
conhecimento útil destes para utilização em campanhas de marketing e adaptação da loja virtual de acordo com produtos visualizados por cada cliente.
O software proposto utiliza a técnica de extração de padrões sequenciais
através do algoritmo GSP proposto em [2], procurando identicar grupos de
itens Y que ocorrem após o aparecimento de grupos de itens X.
Palavras-chave:
GSP.
Mineração de Dados. Padrões Sequenciais. Algoritmo
Abstract
Data Mining is dened in [15] as an automated process of discovering new
information from large databases. This process is part of a larger process
known as Knowledge Discovery in Database (KDD). It can be divided into
three main stages: Pre-processing (cleanness, selection and transformation),
Data Mining, and Post-processing (evaluation and interpretation).
This paper presents a software for performing the automatic pre-processing
ans data mining from online stores, in order to obtain useful knowledge about
these for use in merketing campaings ans online store's adaptation according
to the products viewed by each customer.
The suggested software uses the technique of sequential pattern extraction
through the GSP algorithm proposed in [2], trying to identify itemsets Y that
occur after the appearance of itemsets X.
Keywords:
Data Mining, Sequential Patterns, GPS Algorithm.
3
Sumário
1 Introdução
1
2 Revisão Bibliográca
3
2.1
Algoritmos para Extração de Regras de Associação
2.1.1
2.2
2.3
Algoritmo Apriori . . . . . . . . . . . . . . . . . . . . . . . . .
Algoritmos para Extração de Padrões de Sequência
. . . . . . . . . .
3
4
AprioriAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2.2
PrexSpan . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2.3
Spade
5
2.2.4
GSP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . .
11
13
software
O desenvolvimento do
. . . . . . . . . . . . . . . . . . . . .
4 Experimentos
4.1
3
2.2.1
3 Abordagem Proposta
3.1
. . . . . . . . . .
14
18
. . . . . . . . . . . . . . . . . . . .
18
4.1.1
Correção dos erros de codicação
Substituição de caracteres inválidos . . . . . . . . . . . . . . .
18
4.1.2
Seleção e correção do caractere inválido . . . . . . . . . . . . .
19
4.2
Escolha da loja virtual
. . . . . . . . . . . . . . . . . . . . . . . . . .
20
4.3
Remoção de Tuplas Únicas . . . . . . . . . . . . . . . . . . . . . . . .
20
4.4
Mapeamento dos Dados
. . . . . . . . . . . . . . . . . . . . . . . . .
20
4.5
Mineração de Dados
. . . . . . . . . . . . . . . . . . . . . . . . . . .
21
4.6
Pós-processamento dos Dados
. . . . . . . . . . . . . . . . . . . . . .
21
4.7
Considerações nais . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
5 Conclusões
23
Lista de Figuras
1
Funcionamento do Apriori com suporte mínimo de 50% . . . . . . . .
4
2
Iteração 1 do GSP - suporte mínimo de 50% . . . . . . . . . . . . . .
6
3
Iteração 2 do GSP
7
4
Inserção dos itens candidatos na árvore
. . . . . . . . . . . . . .
8
5
Dene candidatos possivelmente frequentes . . . . . . . . . . . . . . .
9
6
Dene candidatos possivelmente frequentes . . . . . . . . . . . . . . .
10
7
Iteração 3 do GSP
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
8
Fluxo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
9
Tela Inicial do
10
Denição da Loja Virtual
11
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Software
hash
. . . . . . . . . . . . . . . . . . . . . . . . .
15
. . . . . . . . . . . . . . . . . . . . . . . .
16
Exibição dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Lista de Tabelas
1
Sequencias candidadas de 2 itens
2
Tempos de Transações - Sequencia do Cliente
3
Estrutura da tabela que armazena dados dos visitantes
. . . . . . . .
14
4
Tabela Original . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
5
Seleção das tuplas onde aparecem erros . . . . . . . . . . . . . . . . .
18
6
Erros de codicação caracterizados por um único caractere
. . . . . .
19
7
Parte do
SQL gerado pelo programa em PHP . . . . . . . . . .
19
8
Erros de codicação caracterizados por um único caractere
. . . . . .
19
9
Tuplas de dados não-mapeados
. . . . . . . . . . . . . . . . . . . . .
21
10
Tuplas de dados mapeados . . . . . . . . . . . . . . . . . . . . . . . .
21
script
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
7
10
1 Introdução
O constante crescimento do desenvolvimento tecnológico tem trazido às organizações uma quantidade abundante de dados, evidenciando a importância da utilização
de ferramentas computacionais capazes de extrair informações úteis desses dados.
A grande necessidade dessas organizações é justamente transformar esses dados em
conhecimento.
De acordo com [6], o grande volume de dados impede a utilização dos métodos
tradicionais de análise, como as planilhas de cálculo e relatórios informativos. Entretanto, uma ferramenta para análise desses dados deve considerar esse volume,
pois representa justamente um maior potencial de informação. Em resposta à esta
necessidade, surgiu a área de pesquisa e aplicação conhecida como Mineração de
Dados. A mineração de dados pode ser dinida como o processo automatizado de
descoberta de novas informações a partir de grandes massas de dados [15].
Mineração de Dados ou
Data Mining, é um ramo da computação que teve início
nos anos 80, quando surgiram as primeiras preocupações das empresas e organizações em relação à massa de dados que estava sendo estocada e demandava mais
espaço a cada dia, não oferecendo qualquer tipo de utilidade à empresa. A mineração de dados envolve o estudo de tarefas e técnicas, sendo as tarefas classes de
problemas denidos por estudos na área e as técnicas os grupos de soluções para
resolvê-las [15]. A mineração de dados é apenas uma das etapas de um processo mais
amplo que chamamos de KDD (
Knowledge Discovery in Database ),
ou Descoberta
de Conhecimento em Bases de Dados, onde são aplicados algoritmos voltados para
atingir objetivos especícos [5].
De acordo com Goebel e Gruenwald [5], o KDD é um processo interativo e
iterativo, que envolve muitos passos e é utilizado basicamente para tornar dados
brutos em conhecimento útil.
O processo de descoberta de conhecimento pode ser dividido em três etapas
principais:
1. Pré-processamento de Dados
Os dados muitas vezes podem conter ruídos, inconsistências e incompletudes.
A etapa de pré-processamento pode tomar até 80% do tempo necessário para
a realizaçao de todo o processo, e visa sobretudo preparar os dados para que
a próxima etapa possa ser realizada de forma efetiva.
As tarefas realizadas nesta etapa são:
Limpeza - Remove ruídos e inconsistências;
• Seleção - Identica apenas os dados relevantes para a aplicação da mi•
neração;
•
Transformação - Consolida os dados em forma apropriada para a mineração.
2. Mineração de Dados
Etapa de obtenção das informações. Os algoritmos aplicados nesta etapa estão
diretamente relacionados ao objetivo do processo KDD. Para cada problema
de mineração de dados, existem algoritmos adequados para obter uma solução satisfatória. Esses algoritmos podem pertencer à dois tipos principais de
tarefas:
1
•
Tarefas Descritivas:
Se concentram em encontrar padrões que descre-
vam os dados de forma interpretável pelos seres humanos. As principais
tarefas descritivas são a Extração de Regras de Associação e Agrupamento
(
•
Clustering ).
Tarefas Preditivas:
Se concentram em inferir informações sobre os
dados já existentes para predizer o comportamento de novos dados. As
principais tarefas preditivas são a Classicação e a Regressão.
3. Pós-Processamento
Nesta etapa os resultados são vericados a m de se aproveitar informações
úteis extraídas na etapa anterior. Duas tarefas são realizadas nesta etapa:
•
Avaliação - identica os padrões realmente interessantes, que representam conhecimento baseado em algumas medidas de interesses.
•
Apresentação
- Permite a visualização do conhecimento minerado ao
usuário.
Este trabalho está organizado da seguinte forma. A Seção 2 contém uma revisão
bibliográca sobre as tarefas de extração de regras de associação e extração de
padrões de sequência.
A Seção 3 é dedicada à apresentação da proposta deste
trabalho e como ele foi desenvolvido. Os experimentos realizados durante o trabalho
são exibidos na Seção 4.
Finalmente, na Seção 5, são apresentadas as conclusões
deste trabalho.
2
2 Revisão Bibliográca
Na mineração de dados a tarefa de extração de regras de associação consiste
em determinar quais itens tendem a ocorrer em uma mesma transação.
O exem-
plo clássico é determinar quais produtos costumam ser adquiridos em uma mesma
compra em um determinado supermercado. A análise deste tipo de resultado pode
contribuir no planejamento das prateleiras, disposição dos itens em um catálogo,
denição de promoções conjuntas, e diversas outras estratégias para convencer o
cliente a adquirir um maior número de produtos sem que ele perceba.
A extração de regras de associação surgiu a princípio pela necessidade de se obter
itens que aparecem constantemente juntos em uma base de dados. Entretanto, após
a criação do primeiro algoritmo capaz de realizar este cálculo, surgiu também a
necessidade de relacionar estes itens à uma ordem temporal lógica, de forma que as
regras extraídas estaríam diretamente ligadas ao momento em que cada item ocorreu.
Este processo cou conhecido como extração de padrões sequencias. Nas seções a
seguir são apresentados alguns algoritmos para extração de regras de associação e
padrões sequenciais.
2.1 Algoritmos para Extração de Regras de Associação
O problema de extração de regras de associação é solucionado a partir de algoritmos de extração de regras. O objetivo principal desses algoritmos é obter regras
do tipo X => Y, onde X e Y representam conjuntos de itens, chamados
regra indica que a ocorrência de um
itemset
itemsets. A
itemset
X implica na ocorrência de um
Y. Para determinar estas regras, geralmente dois fatores são avaliados: o
da regra - porcentagem de transações onde os
transação na base; e a
tam o
itemset
itemsets
suporte
X e Y aparecem numa mesma
conança da regra - porcentagem de transações que supor-
Y dentre todas as transações que suportam o
itemset
X.
2.1.1 Algoritmo Apriori
O algoritmo Apriori, proposto em [12], é o método mais comumente utilizado
na mineração de padrões frequentes em bases de dados. O algoritmo é capaz de extrair conjuntos de itens frequentes, e a partir destes conjuntos, alguns procedimentos
podem ser realizados para se obter regras de associação. O algoritmo funciona realizando um processo iterativo, onde cada iteração executa basicamente duas funções:
itemsets
•
Gerar
•
Denir quais
candidatos possivelmente frequentes.
itemsets
canditados são realmente frequentes.
Na etapa de geração dos candidatos, é utilizada a propriedade de
nia da relação de inclusão entre os itemsets :
antimonoto-
Sejam I e J dois itemsets tais que I ⊂ J. Se J é um itemset frequente, então I
também é frequente. Logo, para que um itemset seja considerado frequente, é necessário que todos seus subconjuntos também sejam frequentes. Pela contra-positiva,
todo itemset que contém um subconjunto não frequente, também não é frequente.
Dessa forma, os
itemsets
itemsets
canditados de tamanho
frequentes de tamanho
k - 1.
O ciclo do Apriori consiste basicamente em:
3
k
são calculados a partir dos
•
Calcular o suporte de todos os
itemsets
possiveis de tamanho 1 e, em seguida,
eliminar os que não atendem ao suporte mínimo (marcados com * na Figura
1).
•
A partir dos
itemsets
considerados frequentes na etapa anterior, criar
itemsets
candidatos de tamanho 2, e novamente eliminar os que não atendem ao suporte
mínimo.
•
itemset seja considerado frequente na etapa
k-1, não gerando portanto candidatos na etapa k.
Repetir o processo até que nenhum
A Figura 1 exemplica a estratégia do algoritmo Apriori para um suporte de
50%. Cada iteração
k
frequentes de tamanho
gera
k.
k-itemsets
como resultado, ou seja, conjuntos de itens
A solução para o exemplo mostrado na Figura é: 1-itemset:
{A}, {B}, {C}, {E}; 2-itemset: {A,C}, {B,C},{B,E},{C,E}; 3-itemset: {B,C,E}.
Banco de Dados
Gera Candidatos (k=1)
Define Frequentes (k=1)
Transação
Itens
Itemset
Sup.
Itemset
Sup.
10
A, C, D
{A}
2
{A}
2
20
B, C, E
{B}
3
{B}
3
30
A, B, C, E
{C}
3
{C}
3
40
B, E
{D}
1
{E}
2
{E}
2
Gera Candidatos (k=3)
*
Define Frequentes (k=2)
Gera Candidatos (k=2)
Itemset
Sup.
Itemset
Sup.
Itemset
Sup.
{B, C, E}
2
{A, C}
2
{A, B}
1
{B, C}
2
{A, C}
2
{B, E}
3
{A, E}
1
{C, E}
2
{B, C}
2
{B, E}
3
{C, E}
2
Define Frequentes (k=3)
Itemset
Sup.
{B, C, E}
2
*
*
Figura 1: Funcionamento do Apriori com suporte mínimo de 50%
2.2 Algoritmos para Extração de Padrões de Sequência
A extração de regras de associação atende à necessidade de se obter conjuntos
de itens que aparecem numa mesma transação com uma determinada frequência
em uma base de dados.
Entretanto, para uma determinada aplicação, pode ser
importante também a ordem de ocorrência dos
itemsets.
Sendo assim, se uma base
de dados possui uma informação temporal - data da ocorrência das transações pode-se realizar a mineração de padrões sequenciais, cujo objetivo é descobrir todas
4
as sequências frequentes de
itemsets,
ordenados no tempo, em que cada
itemset
corresponde a um conjunto de itens adquiridos em uma mesma transação.
A extração de padrões sequenciais permite denir por exemplo, clientes potenciais à realização de uma compra do
itemset
Y, visto que ele já adquiriu o
X.
As seções a seguir descrevem alguns algoritmos utilizados na extração de padrões de sequência. Alguns algoritmos, como o AprioriAll e GSP foram baseados na
técnica Apriori descrita anteriormente, já outros como o PrexSpan e o Spade utilizam técnicas alternativas para contornar o problema das consecutivas varreduras
no banco de dados. O algoritmo GSP terá uma ênfase maior, visto que foi escolhido
para ser utilizado na etapa de mineração dos dados deste trabalho.
2.2.1 AprioriAll
O AprioriAll, proposto em [13], surgiu como um complemento do Apriori, buscando atender à necessidade de manter a sequencia dos dados.
O objetivo neste algoritmo é encontrar sequências de itens que ocorrem com uma
determinada frequência na base de dados. Neste contexto, a base de dados necessita
de uma nova informação: uma data ou algum identicador temporal para as transações. O AprioriAll identica sequencias de itens que podem ser representadas como
<X, Y, Z> onde X, Y e Z são
itemsets
frequentes que ocorrem segundo a ordem
apresentada.
Para selecionar apenas os itens que ocorreram sequencialmente, a base de dados
deve possuir necessariamente uma informação temporal relacionada às transações. A
base de dados deverá passar por uma transformação inicial que traduz as
de itens,
em
sequencias de clientes.
sequências
Para realizar este procedimento, as transações
de cada cliente passam a ser representadas em uma mesma tupla, por exemplo: <
{20, 30}, {10}, {4, 12} >. Esta sequencia indica que um mesmo cliente visualizou
os itens 20 e 30 em um determinado momento, posteriormente, o cliente visualizou
o item 10, e, por m, visualizou os itens 4 e 12. Reescrevendo a sequencia anterior,
representando os conjuntos de itens como
itemsets, temos:
< A, B, C >, onde A =
{20, 30}, B = {10} e C = {4, 12}.
2.2.2 PrexSpan
O algoritmo PrexSpan proposto em [7] utiliza uma técnica diferente da empregada no Apriori. Ao invés de realizar consecutivas iterações para gerar e podar
candidatos, o PrexSpan se baseia em projeções consecutivas da própria base de
dados, a m de se obter padrões sequenciais diretamente da base, sem passar pela
etapa de geração e poda de candidatos. O algoritmo tem um custo signicativo para
a construção dessas projeções, visto que ele projeta e particiona recursivamente a
base de dados, logo, se existe uma grande quantidade de padrões frequentes, o custo
pode ser muito alto. Por outro lado, ele reduz os esforços de geração de candidatos
e reduz substancialmente o tamanho das bases de dados [1].
2.2.3 Spade
O algoritmo SPADE proposto em [16] utiliza propriedades combinatórias para
decompor o problema original em sub-problemas menores, que podem ser resolvidos
de forma independente na memória principal. Para realizar as divisões o algoritmo
5
utiliza ecientes técnicas de pesquisa e otimização, e junções simples de operações.
Todas as sequências frequentes são obtidas com apenas três buscas no base de dados.
2.2.4 GSP
O algoritmo GSP foi introduzido em [2] e também se baseia na técnica do Apriori.
Ele difere do AprioriAll principalmente nas etapas de criação e poda de candidatos. Nesta última, são podados muito mais candidatos por iteração, devido à uma
otimização na construção de seus pré-candidatos.
Na fase de geração de candidatos:
•
frequentes e
•
Itemsets
itemsets.
No algoritmo AprioriAll, em cada iteração k, os conjuntos Lk e Ck (
itemsets
candidatos) são constituídos de sequências de k
No algoritmo GSP, em cada iteração k os conjuntos Lk e Ck (
Itemsets
fre-
itemsets candidatos) são constituídos de sequencias de k itens. Ou
itemsets frequentes <{A}> e <{B}> dão origem, no AprioriAll, ao
quentes e
seja, os
candidato <{A}, {B}>. Já no algoritmo GSP, os mesmos dão origem à dois
candidatos: <{A},{ B}> e <{A, B}>. Ao invés de darem origem a um candi-
itemsets, dá origem a dois candidatos
itens, estejam eles em itemsets distintos ou não.
dato que possui dois
que possuem dois
O ciclo do GSP se resume basicamente em: gerar candidatos, calcular suporte e
podar candidatos. Os parágrafos a seguir descrevem o passo-a-passo do algoritmo.
2.2.4.1 Iteração 1
- Geração de candidatos, cálculo do suporte e poda
Inicialmente, o suporte de cada
ocorre no AprioriAll.
1-itemset
é calculado, da mesma forma como
Neste exemplo, o suporte mínimo estipulado é de 50%.
Figura 2 exibe a base de dados utilizada neste exemplo e o suporte de cada
itemset.
A
1-
Nas iterações seguintes, tanto o cálculo do suporte quanto a geração dos
candidatos são realizados de forma diferente.
Transação
Sequencia
1
<{2, 1, 4, 6}, {3, 7, 8}, {5}, {9}>
2
<{2, 4, 5}, {1, 6, 7}, {3}>
3
<{2, 4}, {1, 5}>
4
<{1, 3}, {2, 4, 5}>
Itemset
Suporte
{1}
4
{2}
4
{3}
3
{4}
4
{5}
4
{6}
2
{7}
2
{8}
1
*
{9}
1
*
Figura 2: Iteração 1 do GSP - suporte mínimo de 50%
6
2.2.4.2 Iteração 2
- Geração de candidatos
Neste momento, a geração de candidatos se difere do AprioriAll. Cada
combinado à ele mesmo e todos os outros
itemsets
1-itemsets
itemset
é
da tabela, gerando não somente
de tamanho 2, como também sequeências de 2
itemsets.
O importante aqui
é que os candidatos devem possuir 2 itens, sejam eles pertencentes à um mesmo
itemset
ou não. A Figura 3 exemplica este passo.
Transação
Produtos
1
<{1, 1}>, <{1}, {1}>
Combinação entre L1 e L1
2
<{1, 2}>, <{1}, {2}>
Itemset
L1
L1
3
<{1, 3}>, <{1}, {3}>
{1}
<{1}>
<{1}>
4
<{1, 4}>, <{1}, {4}>
{2}
<{2}>
<{2}>
5
<{1, 5}>, <{1}, {5}>
{3}
<{3}>
<{3}>
6
<{1, 6}>, <{1}, {6}>
{4}
<{4}>
<{4}>
7
<{1, 7}>, <{1}, {7}>
{5}
<{5}>
<{5}>
8
<{2, 1}>, <{2}, {1}>
{6}
<{6}>
<{6}>
9
<{2, 2}>, <{2}, {2}>
{7}
<{7}>
<{7}>
10
...
Itemsets
freqüentes
da iteração 1: L1
X
Figura 3: Iteração 2 do GSP
2.2.4.3 Iteração 2
- Cálculo do Suporte e Poda dos candidatos
O cálculo do suporte para o algoritmo GSP é realizado através da construção
de uma árvore hash.
Este tipo de estrutura permite uma poda mais eciente de
elementos a cada iteração.
Para construir a árvore hash, é preciso denir duas variáveis M e N, sendo:
•
M : Número de sequências que cabem em um mesmo nó.
•
N : Número de nós-lhos que um nó pode possuir.
Neste exemplo, M foi denido com valor 3, e N com valor 2.
Cada item que
aparece na base recebe um valor da função hash, que pode variar de 1 à N.
Tabela 1: Sequencias candidadas de 2 itens
Sequencia
<{1, 3}>
<{1}, {3}>
<{2},{3}>
<{3},{3}>
<{2, 3}>
<{1},{4}>
Supondo que a iteração 2 tenha gerado como candidatos os
itemsets
exibidos
na Tabela 1, nesta etapa, cada candidato deverá ser inserido na árvore.
7
O nó
de destino de cada canditado é informado pela função
hash.
Sempre que um nó
atinge sua capacidade (valor de M), um nó lho é criado para comportar o próximo
candidato, a função indica em qual nó o
itemset
deve ser inserido, exceto quando
a inserção está sendo realizada na raiz e esta ainda não precisou ser dividida.
Figura 4 ilustra a inserção dos dados anteriores na árvore
Inserção dos 3 primeiros
Inserção o 4º e 5º candidato
<{1, 3}>
<{1}, {3}>
<{2}, {3}>
<{1, 3}>
<{1}, {3}>
<{3}, {3}>
(Função hash não interfere)
hash.
A
h(1) = 1
<{2}, {3}>
<{2, 3}>
h(2) = 1
h(2) = 2
h(2)=2
h(3) = 1
(Função hash indica posicionamento de acordo com o 1º item)
Inserção do 6º candidato
<{2}, {3}>
<{2, 3}>
h(3) = 1
<{1, 3}>
<{1}, {3}> h(3) = 1
<{3}, {3}> h(3) = 1
<{1}, {4}>
h(2) = 2
h(2)=2
h(4) = 2
(Função hash indica posicionamento de acordo com o 2º item)
Figura 4: Inserção dos itens candidatos na árvore
hash
Ao nal das inserções de todos os candidatos na árvore, é preciso obter a frequencia destes candidatos, para denir se devem ser podados ou não. Toda a base de
dados é percorrida e, para cada sequência de cliente, o processo exibido na Figura 5
é realizado. Nessa etapa, dene-se quais folhas contém candidatos possivelmente suportados pela sequência de cliente que está sendo analisada. Fluxo de procedimentos
realizados para determinação dos
•
Calcula-se a função
hash
itemsets
frequentes:
para cada item da sequência, e dirija-se para o nó
correspondente indicado pela função.
•
Se o nó a que se chegou é folha, aplica-se a cada elemento da folha, o procedimento Include.
•
Se o nó a que se chegou não é folha: Aplica-se a função
da sequencia que sucedem o item
i
hash
a todos os itens
que está sendo analisado, dirigindo-se ao
nó indicado pela função.
Ao nal desta execução, somente os
itemsets
que pertencerem a um nó marcado
como INCLUDE poderão ainda ser considerados frequentes, todos os outros são
podados. A sequência de cliente utilizada como exemplo na Figura 5 é d = <{1, 5},
{1}, {2}>.
8
d = <{1, 5}, {1}, {2}>
d = <{1, 5}, {1}, {2}>
h(1) = 1
h(1) = 1
<{2}, {3}>
<{2, 3}>
h(5) = 1
INCLUDE
<{2}, {3}>
<{2, 3}>
h(1) = 1
<{1}, {4}>
INCLUDE
d = <{1, 5}, {1}, {2}>
<{1}, {4}>
d = <{1, 5}, {1}, {2}>
h(5) = 1
h(1) = 1
h(1) = 1
<{2}, {3}>
<{2, 3}>
INCLUDE
h(2) = 2
INCLUDE
INCLUDE
d = <{1, 5}, {1}, {2}>
INCLUDE
d = <{1, 5}, {1}, {2}>
h(5) = 1
h(2) = 2
h(1) = 1
<{2}, {3}>
<{2, 3}>
h(2) = 2
<{2}, {3}>
<{2, 3}>
INCLUDE
INCLUDE
<{2}, {3}>
<{2, 3}>
INCLUDE
INCLUDE
Figura 5: Dene candidatos possivelmente frequentes
2.2.4.3.1 Procedimento INCLUDE
- Denição dos candidatos frequentes
A função INCLUDE é realizada sobre cada um dos elementos presentes nos
nós marcados. Os nós que não receberam a marcação de INCLUDE são podados,
pois não possuem chance de serem frequentes. Os elementos analisados neste passo
podem ser ou não podados, a função é que determina este resultado.
•
Exemplo de Sequencia de cliente:
d =<{1, 2}, {4, 6}, {3}, {1, 2}, {3}, {2, 4}, {6,
7}>.
•
Exemplo de Sequencia candidata:
<{2, 4}, {6, 7}>.
Uma tabela de tempo de transação deve ser construída. Como os
quencias encontram-se em ordem cronológica, o primeiro
1, o segundo ao tempo 2, e assim por diante.
itemset
itemsets das se-
pertence ao tempo
A Tabela 2 exibe os tempos da
sequencia do cliente.
Cada candidato possivelmente frequente tem seus tempos de transações comparados aos da sequencia do cliente. A Figura 6 ilustra este processo.
Após a vericação de todas as sequencias de clientes, a árvore
hash
encontra-se
com as sequencias candidatas marcadas de acordo com suas frequencias. A árvore é
percorrida e são retiradas as sequencias que atingem o suporte mínimo. Todo este
9
Tabela 2: Tempos de Transações - Sequencia do Cliente
Item Tempo
1
[1, 4]
2
[1, 4, 6]
3
[3, 5]
4
[2, 6]
5
[ ]
6
[2, 7]
7
[7]
Sequência candidata: <{2, 4} ,{6, 7}>
Tempos correspondentes a cada itemset:
{2, 4}
{6, 7}
[1, 4, 6] e [2, 6]
[2, 7] e [7]
Verificação do 1º itemset
[1, 4, 6]
1<2
[2, 6]
[1, 4, 6]
2<4
[2, 6]
[1, 4, 6]
4<6
[2, 6]
[1, 4, 6]
No tempo 6, o
6 = 6 itemset {2, 4}
[2, 6]
ocorreu.
Verificação do 2º itemset
[2, 7]
2<7
[2, 7]
[7]
[7]
O nó que contém a sequencia <{2,
4}, {6, 7}> na árvore tem sua
frequencia incrementada de 1,
pois {2, 4} ocorreu antes do {6, 7}.
No tempo 7, o
7 = 7 itemset {6, 7}
ocorreu.
Figura 6: Dene candidatos possivelmente frequentes
processo de construção de árvore hash é feito a cada geração de candidatos Lk, até
que não sejam gerados mais candidatos ou nenhum deles atinja o suporte mínimo.
2.2.4.4 Iteração 3
- Geração de candidatos
A partir desta iteração (na qual os candidatos possuem 3 itens), uma regra deve
ser seguida na geração dos candidatos: Os candidatos só podem ser gerados a partir
de duas
sequências ligáveis.
Duas sequências
s =< s1, s2, s3, s4, ..., sn >
e
ditas ligáveis se, retirando-se o primeiro item de
sequências resultantes são iguais. Neste caso,
s
e
t
t =< t1, t2, t3, t4, ..., tm > são
s1 e o último item de tm, as
podem ser ligadas e produzir a
sequência V, onde:
•
tm não é unitário (itemset de apenas um item): v =< s1, s2, s3, ..., sn∪t0 >,
0
ondet é o último item de tm.
Se
10
•
Se
tm
é unitário:
v =< s1, s2, s3, ..., sn, tm >
Dessa forma, a Figura 7 exibe os candidatos frequentes do exemplo utilizado.
Sequencias
freqüentes
da iteração 2: L2
Sequencia
<{1}, {2}>
Transação
Sequencia
1
<{1}, {2}, {6}>
2
<{1}, {2,6}>
3
<{1}, {3, 7}>
4
<{1}, {4}, {6}>
5
<{1}, {4, 7}>
6
<{1, 5, 6}>
7
<{2}, {6}, {7}>
8
<{2, 6}, {7}>
9
<{4}, {6}, {7}>
10
<{5, 6}, {7}>
<{1}, {3}>
<{1}, {4}>
<{1, 5}>
<{2}, {6}>
<{2, 6}>
<{6}, {7}>
<{4},{6}>
<{3, 7}>
<{5, 6}>
<{4, 7}>
EXEMPLO DE GERAÇÃO
s = <{1, 2}>
t = <{2, 6}>
Retirando 1 de s, e 6 de t, temos:
s = <{2}>
t = <{2}>
Logo, são sequencias ligáveis.
Como o valor 6 não é unitário
(pertence ao mesmo itemset de 2),
ele será adicionado junto com o
último valor de s, dando origem ao
candidato <{1}, {2, 6}>.
Figura 7: Iteração 3 do GSP
2.3 Trabalhos Relacionados
Durante anos, a maioria das empresas de comércio on-line trabalharam focando
seus próprios interesses.
Hoje em dia o mercado on-line exige uma mudança de
estratégia. Com tanta opção disponível, a empresa que foca no comprador é aquela
que ganhará o mercado e a delização do cliente. Atualmente o usuário é quem dita
as regras para a lucratividade dessas empresas [14]. Nesta seção serão apresentados
trabalhos relacionados à Sistemas Hipermídia Adaptativos - sistemas trabalhados
para adaptar conteúdo, interface e navegação de acordo com as características e necessidades de cada usuário, com o objetivo de facilitar a navegação e apresentação
do conteúdo, passando para o usuário nal uma interface personalizada com informações relevantes e descartando informações menos interessantes ou inúteis [11] [8].
Um ambiente de ensino-aprendizagem adaptativo chamado AdaptWeb foi proposto em [4].
Esse ambiente é voltado para a autoria e apresentação adaptativa
de disciplinas integrantes de cursos de EAD (Educação a Distância) na Web.
O
ambiente permite a adequação de táticas e formas de apresentação de conteúdo de
acordo com o estilo de aprendizagem de cada aluno, procurando atender as preferências individuais dos mesmos e facilitar a absorção de conhecimento promovendo
um melhor desempenho dos alunos.
O trabalho apresentado em [3] propõe um sistema de Recuperação de Informação
Adaptativa aplicado a bibliotecas digitais. Neste sistema, o perl do usuário é automaticamente atualizado com base nas características dos documentos consultados
por ele, assim, os documentos que satisfazem o critério de busca são organizados em
11
grupos de relevância e ordenados por um determinado critério. Tanto o critério de
agrupamento quanto de ordenação são escolhidos pelo próprio usuário.
Um sistema integrado chamado WebTool foi proposto em [10], com o objetivo
de aplicar técnicas de mineração de dados em arquivos de
logs
da web. O sistema
propõe possiblidades de melhoria de desempenho e reestruração de sites através da
análise de pedrões contidos em dados armazenados por servidores web.
12
3 Abordagem Proposta
A proposta deste projeto é construir um software capaz de receber dados, processálos, e gerar como saída as sequências frequentes de itens nessa base. Atualmente,
a extração de informações sobre dados vem ganhando espaço no
sarial.
marketing
empre-
Diversos algoritmos foram propostos para extrair informações de bases de
dados, entretanto, a realização de todo o processo de descoberta de conhecimento
engloba diversos outros fatores que o algoritmo é incapaz de resolver.
O software aqui proposto visa facilitar o processo de obtenção de informação
com foco em bases de dados de lojas virtuais. O algoritmo escolhido para a etapa
de mineração de dados foi o GSP -
Generalized Sequence Patterns
- e a plataforma
utilizada para a realização da mineração é o Weka [9]. A Figura 8 exibe o uxo dos
dados no
software.
Arquivo Pré-processado
Arquivo Original
VALIDAÇÃO
VALIDAÇÃO
PRÉ-PROCESSAMENTO
Arquivo Pré-processado
MINERAÇÃO DE DADOS
(Algoritmo GSP do Software Weka)
Arquivo de Retorno do Weka
Apresentação dos resultados no
Software
Arquivo de Soluções em
formato XML
Figura 8: Fluxo de Dados
O
software
suporta dois tipos de entradas diferentes. O primeiro, é um arquivo
em formato ARFF (formato adotado pela ferramenta Weka) já pré-processado, e
o segundo, é um arquivo de texto que precisa ainda passar pela etapa de préprocessamento, mais precisamente, pelos processos de seleção e transformação dos
dados. No caso deste último, o próprio
software
se encarrega de gerar o arquivo em
formato ARFF no nal do pré-processamento.
Uma validação é realizada sobre os tipos de arquivo. Esta validação verica se os
dados encontram-se nos formatos adequados para cada tipo de arquivo. O arquivo já
pré-processado deve seguir es exigências de formato de arquivo da ferramenta Weka,
e o segundo deve seguir as exigências de formato exigidas pelo próprio
13
software.
A
tela inicial do
software
mostra um exemplo de cada um destes formatos quando o
usuário seleciona o tipo de arquivo desejado, como mostrado na Figura 9.
Ao nal do pré-processamento do arquivo original, um arquivo em formato ARFF
é gerado e o uxo dos dados passa a ser o mesmo. Esse arquivo ARFF é submetido
ao Weka para a realização da mineração dos dados.
Os resultados gerados pela
ferramenta são salvos em um arquivo de texto que é analisado pelo
software.
Essa
análise captura as sequências frequentes (se houverem) e exibe ao usuário.
Por m, um arquivo em formato XML contendo as sequencias frequentes retornadas é gerado para ser utilizado posteriormente em ferramentas de adaptação da
loja virtual.
As seções a seguir descrevem mais detalhadamente como o
software
funciona,
que tipo de vericações e manipulações são realizadas nos dados de entrada e como
os padrões sequenciais encontrados são apresentadas ao usuário.
3.1 O desenvolvimento do software
A idéia de criação do software surgiu a partir de uma necessidade real de uma
empresa situada em Ouro Preto, chamada GerênciaNet. A empresa trabalha com
comércio on-line, mais precisamente, efetuando intermediação entre seus clientes e
os bancos, possibilitando a emissão de boletos, carnês e transações por cartão a
seus clientes. Um dos serviços oferecidos pela empresa, é a criação de Loja Virtual,
onde o cliente pode cadastrar seus produtos e utilizar os serviços de pagamento da
empresa de forma integrada.
Todas as lojas virtuais da empresa compartilham um mesmo sistema gerencial.
O cliente se cadastra e pode adicionar e/ou remover produtos, gerenciar faturas,
modicar a aparência da loja virtual, dentre outras aplicações. Cada modicação
feita é associada ao login exclusivo do cliente, ou seja, o banco de dados de todas as
lojas também é o mesmo.
Após a criação deste sistema de gestão, a empresa criou uma tabela em um banco
de dados para receber informações sobre os visitantes das lojas, visualizando uma
possivel utilização destes dados no futuro.
A tabela construída possui a seguinte
estrutura:
Tabela 3: Estrutura da tabela que armazena dados dos visitantes
Nome da Coluna
id
cliente
produto
loja
data
Signicado
Identicador da tupla
E-mail do Cliente
Nome do produto que foi visualizado pelo cliente
Nome da loja que contém o produto visualizado
Data da visualização do produto (dd/mm/aaaa)
Durante cerca de 2 anos, cada visualização de produto em cada loja virtual
gerou um novo registro na tabela apresentada anteriormente. Entretanto, o armazenamento destes dados tornou-se inviável, visto que o povoamento desta tabela fazia
parte da própria estrutura operacional do sistema, dividindo custos de processa-
14
mento tanto para a gestão própria oferecida à loja virtual, quanto para armazenamento de informações que não estavam sendo utilizadas até então.
Desse modo, a empresa optou por pausar o povoamento da tabela até estudar
medidas ideiais para armazenamento de dados históricos. Parte dos dados armazenados foram cedidos para iniciar este estudo. A empresa realizou algumas alterações
a m de proteger a imagem do cliente e manter sigilo sobre os visitantes da loja
virtual.
Os dados cedidos pela empresa apresentam informações de 5 lojas virtuais e
identicador
do cliente, o nome do produto visualizado, o identicador da loja virtual e
a data da transação.
estão dispostos em um arquivo de texto, onde cada linha possui um
As informações contidas no arquivo de texto disponibilizado não divulgam qualquer dado pessoal do visitante ou dono da loja, entretanto são sucientes para a
aplicação de técnicas de mineração de dados que buscam a extração de padrões de
sequência.
Os dados do arquivo de texto foram repassados a um banco de dados
local para a realização dos experimentos.
A tabela construída a partir dos dados recebidos possui 3.525.926 linhas, totalizando 385,4 MB de dados. A Seção 4 mostra como os dados dessa tabela foram
manipulados até chegaram ao formato ideal para serem trabalhos pelo software.
O
software
engloba as seguintes etapas do processo de KDD: Seleção, pré-
processamento, transformação, mineração de dados e pós-processamento.
O ob-
jetivo do software é fornecer informação para personalização da loja virtual ao perl
de cada cliente, seja na exibição dos produtos na loja virtual ou no oferecimento
marketing
destes através de e-mails (
do
software.
direcionado). A Figura 9 mostra a tela inicial
Figura 9: Tela Inicial do
Software
Os dados de cada tipo de arquivo de entrada (pré-processado ou original) precisam estar dispostos em um formato adequado para que possam ser lidos corretamente
pelo
software.
Para isso, um exemplo de arquivo é exibido em uma caixa de texto
15
de acordo com o tipo de arquivo marcado. Caso os dados não estejam dispostos da
forma correta ou exista alguma tupla com formato inválido, a etapa de validação
realizada sobre o arquivo solicitará uma revisão do mesmo.
Para arquivos originais, é realizada uma vericação em relação aos identicadores das lojas.
A mineração de dados de lojas diferentes não é interessante, visto
que o objetivo é exatamente possibilitar sua personalização. Portanto, caso sejam
identicadas mais de uma loja na mesma base, o
software
solicitará que o usuário
escolha apenas uma das lojas contidas na base de dados para realizar as etapas
seguintes, como mostrado na Figura 10.
Figura 10: Denição da Loja Virtual
Assim que o arquivo é validado e a loja virtual é denida, um novo arquivo de
texto é gerado, agora seguindo o padrão exigido pela ferramenta Weka. O usuário
tem a opção de salvar o arquivo pré-processado e realizar a mineração em um outro
momento, ou continuar o processo.
Na etapa de mineração de dados, um suporte deve ser denido pelo usuário, e
então o arquivo de dados pré-processados é submetido ao Weka através da execução
de um arquivo batch. O retorno do Weka é escrito em um arquivo de saída, e este
arquivo será utilizado na leitura dos resultados. A Figura 11 exibe a tela com as
sequencias frequentes encontradas em um arquivo de exemplo.
Os resultados obtidos pelo Weka passam por m por uma etapa de pós-processamento
para retomar os nomes originais dos produtos. Cada sequencia frequente é exibida
através do
software, e um arquivo em formato XML contendo estes resultados pode
ser baixado.
16
Figura 11: Exibição dos resultados
17
4 Experimentos
Os dados recebidos originalmente não possuiam um formato ideal para serem
processados pelo algoritmo de mineração de dados.
Alguns erros de codicação
foram percebidos nos nomes de alguns produtos da base de dados e corrigidos antes
da etapa de pré-processamento. Esta seção descreve as modicações realizadas na
base de dados para correção dos erros, a etapa de pré-processamento dos dados envolvendo seleção e transformação dos mesmos, a etapa de mineração e por m e
etapa de pós-processamento.
A Tabela 4 apresenta parte da tabela original.
Id
cliente
Tabela 4: Tabela Original
produto
loja
data
231
31ce0f36bcc97cd440267
Manual de Cuidados do Paciente com Disfagia
C
2006-10-17
232
354cdfc4ae0bdab73b9fd
Fonoaudiologia: Surdez e Abordagem BilÃngà 14 e
C
2006-10-13
233
726967830080c48d48050
c todo das Boquinhas 1 Alfabetizaço...
MÃ
C
2006-10-08
234
726967830080c48d48050
Ponta De LÃngua Com 10 Unidades
C
2006-10-08
235
b408d92d61a21c3a8c444
100 Jogos Aplicados à Fonoaudiologia Prýtica
C
2006-10-07
236
b408d92d61a21c3a8c444
PaquÃmetro 18 cm
C
2006-10-07
237
b408d92d61a21c3a8c444
Hýbitos de Sucção Chupeta e Mamadeira
C
2006-10-07
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
979
523e6d7c883e0e47bd00e
Óleos Essenciais - Extrações e Aplicações de ...
B
2007-01-31
980
db408405e59d8379f46cf
Estojo De Inox
A
2007-01-22
981
abd8886bf73d5c1e89721
Produção de Novilhos Precoces
B
2007-02-08
982
0654aa538839765ccebb2
Processos BiolÃ?gicos no Sistema Solo-Planta
B
2007-01-30
983
8861bae48a552057a41
Manual para Inspeção da Qualidade do Leite
B
2007-02-01
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1 Correção dos erros de codicação
4.1.1 Substituição de caracteres inválidos
Nesta etapa foi realizada a identicação de todos os caracteres que representam
erro de codicação e, em seguida, a seleção das tuplas onde aparecem estes caracteres. A Tabela 5 a seguir apresenta parte dos resultados obtidos.
Tabela 5: Seleção das tuplas onde aparecem erros
Id
cliente
produto
loja
data
3155
e652f1d3f5bd4476a94c
c tica
Tratado De Acupuntura EstÃ
A
2007-07-31
3163
4b47516bc3d1027d4df2
Sistema ChinÃa s De Curas Alimentares
A
2007-07-31
CiÃa ncia
3169
5cb32d6991c52f560910
A
2007-07-31
3170
c446d8d194d93f0df5ec
Pulsologia Arte E
Acupuntura e Moxabustão...
A
2007-07-31
3171
685b79fb39e8f17b9fe3
Qigong ChinÃa s Ilustrado
A
2007-07-31
18
Do Diagnà stico...
A substituição dos caracteres inválidos por um caractere único que representasse o erro contribuiu facilitando a busca das tuplas a corrigir, além de contornar
Alfabetizaço e Alfabetiza??o foram transformaAlfabetiza??o e Alfabetiza??o, ou seja, antes da transformação seríam
problemas como: os produtos
dos em
considerados produtos diferentes pelo algoritmo de mineração de dados, mas, após
a substituição, voltam a representar um mesmo produto.
Ao nal desta etapa, a
tabela exibida anteriormente passou à seguinte forma:
Tabela 6: Erros de codicação caracterizados por um único caractere
Id
cliente
produto
loja
data
3155
e652f1d3f5bd4476a94c
Tratado De Acupuntura Est??tica
A
2007-07-31
3163
4b47516bc3d1027d4df2
Sistema Chin??es De Curas Alimentares
A
2007-07-31
3169
5cb32d6991c52f560910
Pulsologia Arte E Ci??ncia Do Diagn?stico...
A
2007-07-31
3170
c446d8d194d93f0df5ec
Acupuntura e Moxabust??o...
A
2007-07-31
3171
685b79fb39e8f17b9fe3
Qigong Chin??s Ilustrado
A
2007-07-31
3174
174d7573a655f6f1a6fd
Guia De Terapia Oriental: Moxabust??o...
A
2007-07-31
3179
c446d8d194d93f0df5ec
Zang Fu Sistemas De ?rg??os E V?sceras...
A
2007-07-31
4.1.2 Seleção e correção do caractere inválido
?
Todas as tuplas distintas que contêm o caractere inválido foram selecionadas
para a etapa de correção. Um programa em PHP foi criado para facilitar a correação
de todos os erros de codicação.
selecionadas para montar
script
Tabela 7: Parte do
Este programa utilizou os produtos das tuplas
SQL. A Tabela 7 mostra parte desta seleção.
script
SQL gerado pelo programa em PHP
UPDATE minerar SET produto = 'Tratado De Acupuntura Est??tica' WHERE produto = 'Tratado De Acupuntura Est??tica'
UPDATE minerar SET produto = 'Sistema Chin??es De Curas...' WHERE produto = 'Sistema Chin??es De Curas...'
UPDATE minerar SET produto = 'Qigong Chin??s Ilustrado' WHERE produto = 'Qigong Chin??s Ilustrado'
A substituição dos cacteres incorretos foi realizada de forma manual sobre o
script
SQL. Após essa correção, os comandos SQL foram executados e todos os
erros de codicação nos nomes dos produtos foram corrigidos de uma só vez.
Tabela 8 mostra parte dos dados após a correção desses erros.
Tabela 8: Erros de codicação caracterizados por um único caractere
Id
cliente
produto
loja
data
3155
e652f1d3f5bd4476a94c
Tratado De Acupuntura Estética
A
2007-07-31
3163
4b47516bc3d1027d4df2
Sistema Chinês De Curas Alimentares
A
2007-07-31
3169
5cb32d6991c52f560910
Pulsologia Arte E Ciência Do Diagnóstico...
A
2007-07-31
3170
c446d8d194d93f0df5ec
Acupuntura e Moxabustão...
A
2007-07-31
3171
685b79fb39e8f17b9fe3
Qigong Chinês Ilustrado
A
2007-07-31
3174
174d7573a655f6f1a6fd
Guia De Terapia Oriental: Moxabustão...
A
2007-07-31
19
A
Ao término deste processo, foi percebida uma signicativa diminuição de produtos distintos na tabela. Ao início do processo, a tabela contava com 1.501 produtos
distintos, ao nal do processo, este número caiu para 864.
4.2 Escolha da loja virtual
Como a base contém dados de várias lojas e não é a intenção deste trabalho a
manipulação simultânea dos dados de diferentes lojas, apenas uma das 5 lojas foi
escolhida para a realização do pré-processamento. Com um total de 598.114 tuplas
e 1.501 produtos distintos, a loja A foi escolhida. Nas seções seguintes, somente a
base de dados da loja A será considerada nas discussões.
4.3 Remoção de Tuplas Únicas
A base de dados pode muitas vezes conter tuplas que não contribuem para o
processo de extração de padrões. Tuplas referentes a clientes que realizam a visualização de um determinado produto e não retorna à loja virtual posteriormente para
visualizar outros produtos, representa uma tupla desnecessária na base, visto que o
objetivo do
software
é obter sequências do tipo <{X}, {Y}>, ou seja, a visualização
de Y frequentemente ocorre após o cliente ter visualizado o item X. Portanto, tuplas
únicas na base foram excluídas para que o processo de mineração de dados fosse
otimizado.
Para a realização do processo de remoção de tuplas únicas, foi realizada uma
seleção de todas as tuplas onde o cliente apareceu apenas um vez na base de dados
e, em seguida, todos os resultados retornados pela seleção foram excluídos.
DELETE FROM minerar WHERE
cliente IN (SELECT cliente FROM minerar GROUP BY cliente HAVING COUNT(*)=1). A base de dados, que antes desse processo continha
A consulta SQL utilizada neste processo foi
598.114 tuplas, após a remoção das tuplas únicas passou a ter 194.323 tuplas.
4.4 Mapeamento dos Dados
Para otimizar o processo de mineração, os dados passam por uma etapa de mapeamento, onde cada nome de produto e cada identicador de cliente é transformado
em um valor numérico diferente. Este processo é realizado para deixar a base a ser
minerada codicada, de forma que o tempo de processamento gasto na mineração
seja o menor possível.
A Tabela 9 apresenta parte dos dados da tabela original, antes de serem mapeados em valores numéricos. Os identicadores da loja virtual e as datas das visualizações foram otimidos para facilitar a visualização e comparação entre os dados da
tabela não-mapeada para a tabela mapeada.
20
Tabela 9: Tuplas de dados não-mapeados
Id
cliente
produto
82
14eb3f48fd3e410ee014
Conhecimentos para Entender a Relação entre (Linguagem e Paralisia Cerebral)
83
14eb3f48fd3e410ee014
Conhecimentos para Atender o Portador de (Doenças Neuromusculares Parkinson e Alzheimer)
84
14eb3f48fd3e410ee014
Conhecimentos para Atender a Inter-relação (Otorrinolaringologia e Fonoaudiologia)
85
c1a8c63284aab2c55f5a
Conhecimentos para Atender o Portador de (Doenças Neuromusculares Parkinson e Alzheimer)
86
c1a8c63284aab2c55f5a
Conhecimentos para Atender o Paciente com (Prótese Auditiva)
87
c1a8c63284aab2c55f5a
Conhecimentos para Atender a Inter-relação (Otorrinolaringologia e Fonoaudiologia)
88
c1a8c63284aab2c55f5a
Tratado de Geriatria e Gerontologia
A Tabela 10 apresenta os mesmos dados da tabela anterior, agora mapeados. É
perceptível a signicativa diminuição de informação que será enviada à ferramenta
Weka para realização da mineração de dados.
Tabela 10: Tuplas de dados mapeados
Id cliente produto
82
83
84
85
86
87
88
30
30
30
31
31
31
31
52
13
53
13
29
53
32
4.5 Mineração de Dados
Com os dados pré-processados, um arquivo em formato ARFF é gerado seguindo
o padrão de arquivo exigido pelo Weka. Este arquivo pode ser salvo pelo usuário
para realização dessa etapa em um momento posterior.
O
software
solicita ao usuário o suporte mínimo da mineração, e submete o
arquivo ao Weka.
Os resultados das sequências frequentes (caso houverem), são
capturados e utilizados na etapa
4.6 Pós-processamento dos Dados
Após a mineração de dados, os resultados retornados pelo Weka devem passar
por duas modicações: a primeira, se refere ao mapeamento dos dados. Os resultados estão ainda mapeados, ou seja, as sequências resultantes não informam os
nomes reais dos produtos da loja virtual. A segunda, se refere às sequências únicas
retornadas. Sequências que contém apenas um
jetivo desse
software,
de
Y visualizados após
itemsets
itemset
não contribuem para o ob-
que é encontrar padrões sequenciais que trazem informações
itemsets
X. Os resultados passam portanto por um
etapa de transformação, na qual os nomes originais são substituídos por seus valores
numéricos correspondentes, e um etapa de seleção, que captura apenas sequências
de pelo menos 2
itemsets
para serem exibidas no
21
software.
Por m, os resultados são gravados em um arquivo XML para futuras consultas
e/ou utilização em ferramentas adaptativas para a loja virtual.
4.7 Considerações nais
Os experimentos sobre a base de dados disponibilizada permitiu analisar o quanto
a etapa de pré-processamento é importante para uma eciente mineração de dados.
Estudos mostram que essa etapa pode consumir até 80% do tempo necessário para
todo processo de descoberta de conhecimento, além de ser considerada uma das
etapas mais importantes do processo como um todo [15].
22
5 Conclusões
Este trabalho apresentou uma aplicação útil para utilização em lojas virtuais,
com o objetivo de obter informações relevantes a respeito do interesse de usuários
sobre os produtos dessas lojas. A denição destes interesses foi possível a partir da
mineração de dados relacionados aos
logs
navegacionais destes usuários.
A grande quantidade de dados gerados no dia-a-dia das organizações exige mecanismos capazes de aproveitá-los, separando as informações úteis que podem ser
utilizadas em campanhas de
marketing,
adaptação do sistema para cada cliente,
envio de e-mails promocionais ou de propaganda para um público-alvo mais restrito, dentre diversas outras adaptações que podem proporcior grandes vantagens
competitivas às empresas.
O
software
aqui proposto realiza o pré-processamento e a mineração de dados de
lojas virtuais, apresentando como resultado para o vendedor (dono da loja) sequências de produtos frequentemente visualizadas por clientes. Dessa forma, o vendedor
pode planejar ações que focam por exemplo a venda do produto Y, visto que o
cliente já adquiriu o produto X.
Estudos e aplicações de mineração de dados no setor de vendas online contribuem
positivamente para a relação entre cliente e vendedor. O cliente receberá propagandas realmente direcionadas à ele e poderá visualizar uma loja virtual que se adapta
aos seus interesses.
Como os produtos oferecidos tem uma probabilidade maior
de despertaram interesse, a lucratividade para o vendedor vem como consequencia,
tanto pela venda em si, quanto pela economia gerada ao se evitar a propaganda de
determinados produtos para um público sem interesse nos mesmos.
23
Referências
[1]
PrexSpan: Mining sequential patterns eciently by prex-projected pattern
growth, volume 01, 2001.
[2] Ramakrishnan Srikant. Rakesh Agrawal. Mining sequential patterns: Genera-
Proceedings of the 5th International
Conference on Extending Database Technology, pages 317, 1996.
lizations and performance improvements.
[3] Roberto Willrich; Rafael de Moura Speroni; Christopher Viana Lima; André
Luiz de Oliveira Diaz; Sérgio Murilo Penedo.
system applied to digital libraries.
Adaptive information retrieval
Proceedings of the 12th Brazilian Symposium
on Multimedia and the web, 06:165173, 2006.
[4] José Palazzo Moreira de Oliveira; Lydia Silva Muñoz; Veronice de Freitas; Viviane P. Marçal; Isabela Gasparini; Marília Abrahão Amaral. Adaptweb: an
adaptive web-based courseware.
Annual Ariadne Conference, 3, 2003.
[5] Michael Goebel; Le Gruenwald. A survey of data mining and knowlodge discovery software tools.
SIGKDD Explorations, 1:2033, 1999.
[6] Sarabjot S. Anand; David A. Bell; John G. Hughes. The role of domain knowledge in data mining.
Baltimore, Maryland, United States, November 29-
December 02 1995.
[7] Behzad Mortazavi-Asl Jianyong Wang Helen Pinto Quiming Chen Umeshwar
Dayal Mei-Chun Hsu. Jian Pei, Jiawei Han.
pattern-growth: The prexspan approach.
Mining sequential patterns by
IEEE Transactions on Knowledge
and Data Engineering, 16(11):14241440, 2004.
[8] Ricardo Silveira Carlos Vaz de Carvalho. Joel Pinho Lucas, Constantino Martins. Ferramentas de autoria de sistemas hipermídia adaptativos para aprendizagem: Um ponto de situação.
Revista Novas Tecnologias na Educação,
3(2),
2005.
[9] Georey
Holmes
Bernhard
Mark Hall, Eibe Frank.
Pfahringer
Peter
Reutemann
Ian
H.
Witten
The WEKA Data Mining Software: An Update,
vo-
lume 11. SIGKDD Explorations, 2009.
[10] F. Masseglia. Using data mining techniques on web access logs to dynamically
improve hypertext structure.
[11] Luiz Antônio Moro Palazzo.
ACM SigWeb Letters, 3:1319, 1999.
Modelos Proativos para Hipermídia Adaptativa.
PhD thesis, UFRGS, 2000.
[12] Ramakrishnan Srikant Rakesh Agrawal. Fast algorithms for mining association
rules.
IBM Almaden Research Center, 1994.
[13] Rakesh Agrawal Ramakrishnan Srikant.
Mining sequential patterns.
pages
314, 1995.
[14] David Siegel.
seus negócios.
PULL - O futuro da Internet e o Impacto da Web Semântica em
2009.
24
[15] Reinaldo Viana. Mineração de dados: Introdução e aplicações.
SQL Magazine,
10:1625, 2004.
[16] Mohamed J. Zaki. Spade: an ecient algorithm for mining frequent sequences.
Machine Learning Journal, special issue on Unsupervised Learning,
2001.
25
42:3160,
Download