CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os...

30

Transcript of CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os...

Page 1: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

CECÍLIA HENRIQUES DEVÊZA

Orientador: Luiz Henrique de Campos Merschmann

Minerando Padrões Sequenciais para Bases de Dados de

Lojas Virtuais

Ouro PretoJunho de 2011

Page 2: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

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

Monogra�a apresentada ao Curso deBacharelado em Ciência da Computaçaoda Universidade Federal de Ouro Pretocomo requisito parcial para obtenção dograu de Bacharel em Ciência da Com-putação.

Cecília Henriques Devêza

Ouro PretoJunho de 2011

Page 3: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Resumo

A Mineração de Dados é de�nida em [15] como um processo automati-zado 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 (lim-peza, 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é-processamentoautomático e mineração de dados de lojas virtuais, com o intuito de obterconhecimento útil destes para utilização em campanhas de marketing e adap-taçã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 sequenciaisatravés do algoritmo GSP proposto em [2], procurando identi�car grupos deitens Y que ocorrem após o aparecimento de grupos de itens X.

Palavras-chave: Mineração de Dados. Padrões Sequenciais. AlgoritmoGSP.

Abstract

Data Mining is de�ned in [15] as an automated process of discovering newinformation from large databases. This process is part of a larger processknown as Knowledge Discovery in Database (KDD). It can be divided intothree 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-processingans data mining from online stores, in order to obtain useful knowledge aboutthese for use in merketing campaings ans online store's adaptation accordingto the products viewed by each customer.

The suggested software uses the technique of sequential pattern extractionthrough the GSP algorithm proposed in [2], trying to identify itemsets Y thatoccur after the appearance of itemsets X.

Keywords: Data Mining, Sequential Patterns, GPS Algorithm.

3

Page 4: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Sumário

1 Introdução 1

2 Revisão Bibliográ�ca 32.1 Algoritmos para Extração de Regras de Associação . . . . . . . . . . 3

2.1.1 Algoritmo Apriori . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Algoritmos para Extração de Padrões de Sequência . . . . . . . . . . 4

2.2.1 AprioriAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2.2 Pre�xSpan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2.3 Spade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2.4 GSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Abordagem Proposta 133.1 O desenvolvimento do software . . . . . . . . . . . . . . . . . . . . . 14

4 Experimentos 184.1 Correção dos erros de codi�cação . . . . . . . . . . . . . . . . . . . . 18

4.1.1 Substituição de caracteres inválidos . . . . . . . . . . . . . . . 184.1.2 Seleção e correção do caractere inválido . . . . . . . . . . . . . 19

4.2 Escolha da loja virtual . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3 Remoção de Tuplas Únicas . . . . . . . . . . . . . . . . . . . . . . . . 204.4 Mapeamento dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . 204.5 Mineração de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.6 Pós-processamento dos Dados . . . . . . . . . . . . . . . . . . . . . . 214.7 Considerações �nais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5 Conclusões 23

Page 5: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Lista de Figuras

1 Funcionamento do Apriori com suporte mínimo de 50% . . . . . . . . 42 Iteração 1 do GSP - suporte mínimo de 50% . . . . . . . . . . . . . . 63 Iteração 2 do GSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Inserção dos itens candidatos na árvore hash . . . . . . . . . . . . . . 85 De�ne candidatos possivelmente frequentes . . . . . . . . . . . . . . . 96 De�ne candidatos possivelmente frequentes . . . . . . . . . . . . . . . 107 Iteração 3 do GSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Fluxo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Tela Inicial do Software . . . . . . . . . . . . . . . . . . . . . . . . . 1510 De�nição da Loja Virtual . . . . . . . . . . . . . . . . . . . . . . . . 1611 Exibição dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Lista de Tabelas

1 Sequencias candidadas de 2 itens . . . . . . . . . . . . . . . . . . . . 72 Tempos de Transações - Sequencia do Cliente . . . . . . . . . . . . . 103 Estrutura da tabela que armazena dados dos visitantes . . . . . . . . 144 Tabela Original . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Seleção das tuplas onde aparecem erros . . . . . . . . . . . . . . . . . 186 Erros de codi�cação caracterizados por um único caractere . . . . . . 197 Parte do script SQL gerado pelo programa em PHP . . . . . . . . . . 198 Erros de codi�cação caracterizados por um único caractere . . . . . . 199 Tuplas de dados não-mapeados . . . . . . . . . . . . . . . . . . . . . 2110 Tuplas de dados mapeados . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 6: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

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çãode ferramentas computacionais capazes de extrair informações úteis desses dados.A grande necessidade dessas organizações é justamente transformar esses dados emconhecimento.

De acordo com [6], o grande volume de dados impede a utilização dos métodostradicionais de análise, como as planilhas de cálculo e relatórios informativos. En-tretanto, uma ferramenta para análise desses dados deve considerar esse volume,pois representa justamente um maior potencial de informação. Em resposta à estanecessidade, surgiu a área de pesquisa e aplicação conhecida como Mineração deDados. A mineração de dados pode ser di�nida como o processo automatizado dedescoberta 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ícionos 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 maisespaço a cada dia, não oferecendo qualquer tipo de utilidade à empresa. A mine-ração de dados envolve o estudo de tarefas e técnicas, sendo as tarefas classes deproblemas de�nidos por estudos na área e as técnicas os grupos de soluções pararesolvê-las [15]. A mineração de dados é apenas uma das etapas de um processo maisamplo que chamamos de KDD (Knowledge Discovery in Database), ou Descobertade Conhecimento em Bases de Dados, onde são aplicados algoritmos voltados paraatingir objetivos especí�cos [5].

De acordo com Goebel e Gruenwald [5], o KDD é um processo interativo eiterativo, que envolve muitos passos e é utilizado basicamente para tornar dadosbrutos em conhecimento útil.

O processo de descoberta de conhecimento pode ser dividido em três etapasprincipais:

1. Pré-processamento de DadosOs dados muitas vezes podem conter ruídos, inconsistências e incompletudes.A etapa de pré-processamento pode tomar até 80% do tempo necessário paraa realizaçao de todo o processo, e visa sobretudo preparar os dados para quea 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 - Identi�ca apenas os dados relevantes para a aplicação da mi-neração;

• Transformação - Consolida os dados em forma apropriada para a mi-neração.

2. Mineração de DadosEtapa de obtenção das informações. Os algoritmos aplicados nesta etapa estãodiretamente relacionados ao objetivo do processo KDD. Para cada problemade mineração de dados, existem algoritmos adequados para obter uma solu-ção satisfatória. Esses algoritmos podem pertencer à dois tipos principais detarefas:

1

Page 7: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

• Tarefas Descritivas: Se concentram em encontrar padrões que descre-vam os dados de forma interpretável pelos seres humanos. As principaistarefas descritivas são a Extração de Regras de Associação e Agrupamento(Clustering).

• Tarefas Preditivas: Se concentram em inferir informações sobre osdados já existentes para predizer o comportamento de novos dados. Asprincipais tarefas preditivas são a Classi�cação e a Regressão.

3. Pós-ProcessamentoNesta etapa os resultados são veri�cados a �m de se aproveitar informaçõesúteis extraídas na etapa anterior. Duas tarefas são realizadas nesta etapa:

• Avaliação - identi�ca os padrões realmente interessantes, que represen-tam conhecimento baseado em algumas medidas de interesses.

• Apresentação - Permite a visualização do conhecimento minerado aousuário.

Este trabalho está organizado da seguinte forma. A Seção 2 contém uma revisãobibliográ�ca sobre as tarefas de extração de regras de associação e extração depadrões de sequência. A Seção 3 é dedicada à apresentação da proposta destetrabalho e como ele foi desenvolvido. Os experimentos realizados durante o trabalhosão exibidos na Seção 4. Finalmente, na Seção 5, são apresentadas as conclusõesdeste trabalho.

2

Page 8: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

2 Revisão Bibliográ�ca

Na mineração de dados a tarefa de extração de regras de associação consisteem determinar quais itens tendem a ocorrer em uma mesma transação. O exem-plo clássico é determinar quais produtos costumam ser adquiridos em uma mesmacompra em um determinado supermercado. A análise deste tipo de resultado podecontribuir no planejamento das prateleiras, disposição dos itens em um catálogo,de�nição de promoções conjuntas, e diversas outras estratégias para �convencer� ocliente 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 obteritens que aparecem constantemente juntos em uma base de dados. Entretanto, apósa criação do primeiro algoritmo capaz de realizar este cálculo, surgiu também anecessidade de relacionar estes itens à uma ordem temporal lógica, de forma que asregras 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 aseguir são apresentados alguns algoritmos para extração de regras de associação epadrõ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 algo-ritmos de extração de regras. O objetivo principal desses algoritmos é obter regrasdo tipo X => Y, onde X e Y representam conjuntos de itens, chamados itemsets. Aregra indica que a ocorrência de um itemset X implica na ocorrência de um itemset

Y. Para determinar estas regras, geralmente dois fatores são avaliados: o suporteda regra - porcentagem de transações onde os itemsets X e Y aparecem numa mesmatransação na base; e a con�ança da regra - porcentagem de transações que supor-tam o itemset 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 utilizadona mineração de padrões frequentes em bases de dados. O algoritmo é capaz de ex-trair conjuntos de itens frequentes, e a partir destes conjuntos, alguns procedimentospodem ser realizados para se obter regras de associação. O algoritmo funciona reali-zando um processo iterativo, onde cada iteração executa basicamente duas funções:

• Gerar itemsets candidatos possivelmente frequentes.

• De�nir quais itemsets canditados são realmente frequentes.

Na etapa de geração dos candidatos, é utilizada a propriedade de antimonoto-nia da relação de inclusão entre os itemsets :

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, é neces-

sá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 canditados de tamanho k são calculados a partir dositemsets frequentes de tamanho k - 1.

O ciclo do Apriori consiste basicamente em:

3

Page 9: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

• 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 Figura1).

• A partir dos itemsets considerados frequentes na etapa anterior, criar itemsetscandidatos de tamanho 2, e novamente eliminar os que não atendem ao suportemínimo.

• Repetir o processo até que nenhum itemset seja considerado frequente na etapak-1, não gerando portanto candidatos na etapa k.

A Figura 1 exempli�ca a estratégia do algoritmo Apriori para um suporte de50%. Cada iteração k gera k-itemsets como resultado, ou seja, conjuntos de itensfrequentes de tamanho k. 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}.

Transação Itens

10 A, C, D

20 B, C, E

30 A, B, C, E

40 B, E

Banco de Dados

Itemset Sup.

{A} 2

{B} 3

{C} 3

{D} 1

{E} 2

Gera Candidatos (k=1)

Itemset Sup.

{A} 2

{B} 3

{C} 3

{E} 2

Define Frequentes (k=1)

Itemset Sup.

{A, B} 1

{A, C} 2

{A, E} 1

{B, C} 2

{B, E} 3

{C, E} 2

Gera Candidatos (k=2)

Itemset Sup.

{A, C} 2

{B, C} 2

{B, E} 3

{C, E} 2

Define Frequentes (k=2)

Itemset Sup.

{B, C, E} 2

Gera Candidatos (k=3)

Itemset Sup.

{B, C, E} 2

Define Frequentes (k=3)

*

*

*

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 conjuntosde itens que aparecem numa mesma transação com uma determinada frequênciaem uma base de dados. Entretanto, para uma determinada aplicação, pode serimportante também a ordem de ocorrência dos itemsets. Sendo assim, se uma basede 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

Page 10: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

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 de�nir por exemplo, clientes poten-

ciais à 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 pa-

drões de sequência. Alguns algoritmos, como o AprioriAll e GSP foram baseados natécnica Apriori descrita anteriormente, já outros como o Pre�xSpan e o Spade uti-lizam técnicas alternativas para contornar o problema das consecutivas varredurasno banco de dados. O algoritmo GSP terá uma ênfase maior, visto que foi escolhidopara 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, bus-cando atender à necessidade de manter a sequencia dos dados.

O objetivo neste algoritmo é encontrar sequências de itens que ocorrem com umadeterminada frequência na base de dados. Neste contexto, a base de dados necessitade uma nova informação: uma data ou algum identi�cador temporal para as transa-ções. O AprioriAll identi�ca sequencias de itens que podem ser representadas como<X, Y, Z> onde X, Y e Z são itemsets frequentes que ocorrem segundo a ordemapresentada.

Para selecionar apenas os itens que ocorreram sequencialmente, a base de dadosdeve possuir necessariamente uma informação temporal relacionada às transações. Abase de dados deverá passar por uma transformação inicial que traduz as sequênciasde itens, em sequencias de clientes. Para realizar este procedimento, as transaçõesde cada cliente passam a ser representadas em uma mesma tupla, por exemplo: <{20, 30}, {10}, {4, 12} >. Esta sequencia indica que um mesmo cliente visualizouos itens 20 e 30 em um determinado momento, posteriormente, o cliente visualizouo 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 Pre�xSpan

O algoritmo Pre�xSpan proposto em [7] utiliza uma técnica diferente da em-pregada no Apriori. Ao invés de realizar consecutivas iterações para gerar e podarcandidatos, o Pre�xSpan se baseia em projeções consecutivas da própria base dedados, a �m de se obter padrões sequenciais diretamente da base, sem passar pelaetapa de geração e poda de candidatos. O algoritmo tem um custo signi�cativo paraa construção dessas projeções, visto que ele projeta e particiona recursivamente abase de dados, logo, se existe uma grande quantidade de padrões frequentes, o custopode ser muito alto. Por outro lado, ele reduz os esforços de geração de candidatose reduz substancialmente o tamanho das bases de dados [1].

2.2.3 Spade

O algoritmo SPADE proposto em [16] utiliza propriedades combinatórias paradecompor o problema original em sub-problemas menores, que podem ser resolvidosde forma independente na memória principal. Para realizar as divisões o algoritmo

5

Page 11: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

utiliza e�cientes 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 candida-tos. Nesta última, são podados muito mais candidatos por iteração, devido à umaotimização na construção de seus pré-candidatos.

Na fase de geração de candidatos:

• No algoritmo AprioriAll, em cada iteração k, os conjuntos Lk e Ck (Itemsetsfrequentes e itemsets candidatos) são constituídos de sequências de k itemsets.

• No algoritmo GSP, em cada iteração k os conjuntos Lk e Ck (Itemsets fre-quentes e itemsets candidatos) são constituídos de sequencias de k itens. Ouseja, os itemsets frequentes <{A}> e <{B}> dão origem, no AprioriAll, aocandidato <{A}, {B}>. Já no algoritmo GSP, os mesmos dão origem à doiscandidatos: <{A},{ B}> e <{A, B}>. Ao invés de darem origem a um candi-dato que possui dois itemsets, dá origem a dois candidatos que possuem doisitens, estejam eles em itemsets distintos ou não.

O ciclo do GSP se resume basicamente em: gerar candidatos, calcular suporte epodar 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 1-itemset é calculado, da mesma forma comoocorre no AprioriAll. Neste exemplo, o suporte mínimo estipulado é de 50%. AFigura 2 exibe a base de dados utilizada neste exemplo e o suporte de cada 1-

itemset. Nas iterações seguintes, tanto o cálculo do suporte quanto a geração doscandidatos 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

Page 12: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

2.2.4.2 Iteração 2 - Geração de candidatos

Neste momento, a geração de candidatos se difere do AprioriAll. Cada itemset écombinado à ele mesmo e todos os outros 1-itemsets da tabela, gerando não somenteitemsets 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 mesmoitemset ou não. A Figura 3 exempli�ca este passo.

Itemset

{1}

{2}

{3}

{4}

{5}

{6}

{7}

L1 X L1

<{1}> <{1}>

<{2}> <{2}>

<{3}> <{3}>

<{4}> <{4}>

<{5}> <{5}>

<{6}> <{6}>

<{7}> <{7}>

Transação Produtos

1 <{1, 1}>, <{1}, {1}>

2 <{1, 2}>, <{1}, {2}>

3 <{1, 3}>, <{1}, {3}>

4 <{1, 4}>, <{1}, {4}>

5 <{1, 5}>, <{1}, {5}>

6 <{1, 6}>, <{1}, {6}>

7 <{1, 7}>, <{1}, {7}>

8 <{2, 1}>, <{2}, {1}>

9 <{2, 2}>, <{2}, {2}>

10 ...

Itemsetsfreqüentes

da iteração 1: L1 Combinação entre L1 e L1

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çãode uma árvore hash. Este tipo de estrutura permite uma poda mais e�ciente deelementos a cada iteração.

Para construir a árvore hash, é preciso de�nir 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 de�nido com valor 3, e N com valor 2. Cada item queaparece na base recebe um valor da função hash, que pode variar de 1 à N.

Tabela 1: Sequencias candidadas de 2 itensSequencia<{1, 3}>

<{1}, {3}>

<{2},{3}>

<{3},{3}>

<{2, 3}>

<{1},{4}>

Supondo que a iteração 2 tenha gerado como candidatos os itemsets exibidosna Tabela 1, nesta etapa, cada candidato deverá ser inserido na árvore. O nó

7

Page 13: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

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óximocandidato, a função indica em qual nó o itemset deve ser inserido, exceto quandoa inserção está sendo realizada na raiz e esta ainda não precisou ser dividida. AFigura 4 ilustra a inserção dos dados anteriores na árvore hash.

<{1, 3}><{1}, {3}><{2}, {3}>

Inserção dos 3 primeiros Inserção o 4º e 5º candidato

<{1, 3}><{1}, {3}><{3}, {3}>

h(1) = 1

h(2) = 1

h(3) = 1

<{2}, {3}><{2, 3}>

h(2) = 2

h(2)=2

(Função hash não interfere) (Função hash indica posicionamento de acordo com o 1º item)

Inserção do 6º candidato

<{1, 3}><{1}, {3}><{3}, {3}>

h(3) = 1

h(3) = 1

h(3) = 1

<{2}, {3}><{2, 3}>

h(2) = 2

h(2)=2

<{1}, {4}> 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 frequen-cia destes candidatos, para de�nir se devem ser podados ou não. Toda a base dedados é percorrida e, para cada sequência de cliente, o processo exibido na Figura 5é realizado. Nessa etapa, de�ne-se quais folhas contém candidatos possivelmente su-portados pela sequência de cliente que está sendo analisada. Fluxo de procedimentosrealizados para determinação dos itemsets frequentes:

• Calcula-se a função hash 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 procedi-mento Include.

• Se o nó a que se chegou não é folha: Aplica-se a função hash a todos os itensda sequencia que sucedem o item i que está sendo analisado, dirigindo-se aonó indicado pela função.

Ao �nal desta execução, somente os itemsets que pertencerem a um nó marcadocomo INCLUDE poderão ainda ser considerados frequentes, todos os outros sãopodados. A sequência de cliente utilizada como exemplo na Figura 5 é d = <{1, 5},{1}, {2}>.

8

Page 14: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

<{2}, {3}><{2, 3}>

<{1}, {4}>INCLUDE

d = <{1, 5}, {1}, {2}>

h(1) = 1

h(5) = 1 <{2}, {3}><{2, 3}>

<{1}, {4}>INCLUDE

d = <{1, 5}, {1}, {2}>

h(1) = 1

h(1) = 1

<{2}, {3}><{2, 3}>

INCLUDEINCLUDE

d = <{1, 5}, {1}, {2}>

h(1) = 1

h(2) = 2<{2}, {3}><{2, 3}>

INCLUDEINCLUDE

d = <{1, 5}, {1}, {2}>

h(5) = 1

h(1) = 1

<{2}, {3}><{2, 3}>

INCLUDE

d = <{1, 5}, {1}, {2}>

h(5) = 1

h(2) = 2 <{2}, {3}><{2, 3}>

INCLUDEINCLUDE

d = <{1, 5}, {1}, {2}>

h(1) = 1

h(2) = 2

INCLUDE

Figura 5: De�ne candidatos possivelmente frequentes

2.2.4.3.1 Procedimento INCLUDE - De�nição dos candidatos frequentes

A função INCLUDE é realizada sobre cada um dos elementos presentes nosnó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 passopodem 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 itemsets das se-quencias encontram-se em ordem cronológica, o primeiro itemset pertence ao tempo1, o segundo ao tempo 2, e assim por diante. A Tabela 2 exibe os tempos dasequencia do cliente.

Cada candidato possivelmente frequente tem seus tempos de transações compa-rados aos da sequencia do cliente. A Figura 6 ilustra este processo.

Após a veri�cação de todas as sequencias de clientes, a árvore hash encontra-secom 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

Page 15: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Tabela 2: Tempos de Transações - Sequencia do ClienteItem Tempo1 [1, 4]2 [1, 4, 6]3 [3, 5]4 [2, 6]5 [ ]6 [2, 7]7 [7]

[1, 4, 6] e [2, 6]

Sequência candidata: <{2, 4} ,{6, 7}>

Tempos correspondentes a cada itemset:

{2, 4} {6, 7}

Verificação do 1º itemset

Verificação do 2º itemset

[2, 7] e [7]

[1, 4, 6]

[2, 6]

[1, 4, 6]

[2, 6]

1 < 2 2 < 4[1, 4, 6]

[2, 6]

4 < 6[1, 4, 6]

[2, 6]

6 = 6No tempo 6, o itemset {2, 4}

ocorreu.

[2, 7]

[7]

[2, 7]

[7]

2 < 7 7 = 7No tempo 7, o itemset {6, 7}

ocorreu.

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}.

Figura 6: De�ne 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 deveser seguida na geração dos candidatos: �Os candidatos só podem ser gerados a partirde duas sequências ligáveis�.

Duas sequências s =< s1, s2, s3, s4, ..., sn > e t =< t1, t2, t3, t4, ..., tm > sãoditas ligáveis se, retirando-se o primeiro item de s1 e o último item de tm, assequências resultantes são iguais. Neste caso, s e t podem ser ligadas e produzir asequência V, onde:

• Se tm não é unitário (itemset de apenas um item): v =< s1, s2, s3, ..., sn∪t′ >,ondet′ é o último item de tm.

10

Page 16: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

• Se tm é unitário: v =< s1, s2, s3, ..., sn, tm >

Dessa forma, a Figura 7 exibe os candidatos frequentes do exemplo utilizado.

Sequencia

<{1}, {2}>

<{1}, {3}>

<{1}, {4}>

<{1, 5}>

<{2}, {6}>

<{2, 6}>

<{6}, {7}>

<{4},{6}>

<{3, 7}>

<{5, 6}>

<{4, 7}>

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}>

Sequenciasfreqüentes

da iteração 2: L2

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 aocandidato <{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 focandoseus próprios interesses. Hoje em dia o mercado on-line exige uma mudança deestratégia. Com tanta opção disponível, a empresa que foca no comprador é aquelaque ganhará o mercado e a �delização do cliente. Atualmente o usuário é quem ditaas regras para a lucratividade dessas empresas [14]. Nesta seção serão apresentadostrabalhos relacionados à Sistemas Hipermídia Adaptativos - sistemas trabalhadospara adaptar conteúdo, interface e navegação de acordo com as características e ne-cessidades de cada usuário, com o objetivo de facilitar a navegação e apresentaçãodo conteúdo, passando para o usuário �nal uma interface personalizada com infor-mações relevantes e descartando informações menos interessantes ou inúteis [11] [8].

Um ambiente de ensino-aprendizagem adaptativo chamado AdaptWeb foi pro-posto em [4]. Esse ambiente é voltado para a autoria e apresentação adaptativade disciplinas integrantes de cursos de EAD (Educação a Distância) na Web. Oambiente permite a adequação de táticas e formas de apresentação de conteúdo deacordo com o estilo de aprendizagem de cada aluno, procurando atender as prefe-rências individuais dos mesmos e facilitar a absorção de conhecimento promovendoum melhor desempenho dos alunos.

O trabalho apresentado em [3] propõe um sistema de Recuperação de InformaçãoAdaptativa aplicado a bibliotecas digitais. Neste sistema, o per�l do usuário é au-tomaticamente atualizado com base nas características dos documentos consultadospor ele, assim, os documentos que satisfazem o critério de busca são organizados em

11

Page 17: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

grupos de relevância e ordenados por um determinado critério. Tanto o critério deagrupamento quanto de ordenação são escolhidos pelo próprio usuário.

Um sistema integrado chamado WebTool foi proposto em [10], com o objetivode aplicar técnicas de mineração de dados em arquivos de logs da web. O sistemapropõe possiblidades de melhoria de desempenho e reestruração de sites através daanálise de pedrões contidos em dados armazenados por servidores web.

12

Page 18: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

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 marketing empre-sarial. Diversos algoritmos foram propostos para extrair informações de bases dedados, entretanto, a realização de todo o processo de descoberta de conhecimentoengloba diversos outros fatores que o algoritmo é incapaz de resolver.

O software aqui proposto visa facilitar o processo de obtenção de informaçãocom foco em bases de dados de lojas virtuais. O algoritmo escolhido para a etapade mineração de dados foi o GSP - Generalized Sequence Patterns - e a plataformautilizada para a realização da mineração é o Weka [9]. A Figura 8 exibe o �uxo dosdados no software.

VALIDAÇÃO VALIDAÇÃO

PRÉ-PROCESSAMENTO

MINERAÇÃO DE DADOS (Algoritmo GSP do Software Weka)

Arquivo Pré-processado Arquivo Original

Arquivo Pré-processado

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 arquivoem formato ARFF (formato adotado pela ferramenta Weka) já pré-processado, eo segundo, é um arquivo de texto que precisa ainda passar pela etapa de pré-processamento, mais precisamente, pelos processos de seleção e transformação dosdados. No caso deste último, o próprio software se encarrega de gerar o arquivo emformato ARFF no �nal do pré-processamento.

Uma validação é realizada sobre os tipos de arquivo. Esta validação veri�ca se osdados 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 software. A

13

Page 19: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

tela inicial do software mostra um exemplo de cada um destes formatos quando ousuá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 é submetidoao Weka para a realização da mineração dos dados. Os resultados gerados pelaferramenta são salvos em um arquivo de texto que é analisado pelo software. Essaanálise captura as sequências frequentes (se houverem) e exibe ao usuário.

Por �m, um arquivo em formato XML contendo as sequencias frequentes retor-nadas é gerado para ser utilizado posteriormente em ferramentas de adaptação daloja virtual.

As seções a seguir descrevem mais detalhadamente como o software funciona,que tipo de veri�cações e manipulações são realizadas nos dados de entrada e comoos 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 umaempresa situada em Ouro Preto, chamada GerênciaNet. A empresa trabalha comcomércio on-line, mais precisamente, efetuando intermediação entre seus clientes eos bancos, possibilitando a emissão de boletos, carnês e transações por cartão aseus 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 daempresa 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,modi�car a aparência da loja virtual, dentre outras aplicações. Cada modi�caçãofeita é associada ao login exclusivo do cliente, ou seja, o banco de dados de todas aslojas também é o mesmo.

Após a criação deste sistema de gestão, a empresa criou uma tabela em um bancode dados para receber informações sobre os visitantes das lojas, visualizando umapossivel utilização destes dados no futuro. A tabela construída possui a seguinteestrutura:

Tabela 3: Estrutura da tabela que armazena dados dos visitantesNome da Coluna Signi�cado

id Identi�cador da tupla

cliente E-mail do Cliente

produto Nome do produto que foi visualizado pelo cliente

loja Nome da loja que contém o produto visualizado

data Data da visualização do produto (dd/mm/aaaa)

Durante cerca de 2 anos, cada visualização de produto em cada loja virtualgerou um novo registro na tabela apresentada anteriormente. Entretanto, o armaze-namento destes dados tornou-se inviável, visto que o povoamento desta tabela faziaparte da própria estrutura operacional do sistema, dividindo custos de processa-

14

Page 20: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

mento tanto para a gestão própria oferecida à loja virtual, quanto para armazena-mento de informações que não estavam sendo utilizadas até então.

Desse modo, a empresa optou por pausar o povoamento da tabela até estudarmedidas ideiais para armazenamento de dados históricos. Parte dos dados armazena-dos foram cedidos para iniciar este estudo. A empresa realizou algumas alteraçõesa �m de proteger a imagem do cliente e manter sigilo sobre os visitantes da lojavirtual.

Os dados cedidos pela empresa apresentam informações de 5 lojas virtuais eestão dispostos em um arquivo de texto, onde cada linha possui um identi�cadordo cliente, o nome do produto visualizado, o identi�cador da loja virtual ea data da transação.

As informações contidas no arquivo de texto disponibilizado não divulgam qual-quer dado pessoal do visitante ou dono da loja, entretanto são su�cientes para aaplicação de técnicas de mineração de dados que buscam a extração de padrões desequência. Os dados do arquivo de texto foram repassados a um banco de dadoslocal para a realização dos experimentos.

A tabela construída a partir dos dados recebidos possui 3.525.926 linhas, tota-lizando 385,4 MB de dados. A Seção 4 mostra como os dados dessa tabela forammanipulados 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 per�lde cada cliente, seja na exibição dos produtos na loja virtual ou no oferecimentodestes através de e-mails (marketing direcionado). A Figura 9 mostra a tela inicialdo software.

Figura 9: Tela Inicial do Software

Os dados de cada tipo de arquivo de entrada (pré-processado ou original) preci-sam estar dispostos em um formato adequado para que possam ser lidos corretamentepelo software. Para isso, um exemplo de arquivo é exibido em uma caixa de texto

15

Page 21: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

de acordo com o tipo de arquivo marcado. Caso os dados não estejam dispostos daforma correta ou exista alguma tupla com formato inválido, a etapa de validaçãorealizada sobre o arquivo solicitará uma revisão do mesmo.

Para arquivos originais, é realizada uma veri�cação em relação aos identi�cado-res das lojas. A mineração de dados de lojas diferentes não é interessante, vistoque o objetivo é exatamente possibilitar sua personalização. Portanto, caso sejamidenti�cadas mais de uma loja na mesma base, o software solicitará que o usuárioescolha apenas uma das lojas contidas na base de dados para realizar as etapasseguintes, como mostrado na Figura 10.

Figura 10: De�nição da Loja Virtual

Assim que o arquivo é validado e a loja virtual é de�nida, um novo arquivo detexto é gerado, agora seguindo o padrão exigido pela ferramenta Weka. O usuáriotem a opção de salvar o arquivo pré-processado e realizar a mineração em um outromomento, ou continuar o processo.

Na etapa de mineração de dados, um suporte deve ser de�nido pelo usuário, eentão o arquivo de dados pré-processados é submetido ao Weka através da execuçãode um arquivo batch. O retorno do Weka é escrito em um arquivo de saída, e estearquivo será utilizado na leitura dos resultados. A Figura 11 exibe a tela com assequencias frequentes encontradas em um arquivo de exemplo.

Os resultados obtidos pelo Weka passam por �m por uma etapa de pós-processamentopara retomar os nomes originais dos produtos. Cada sequencia frequente é exibidaatravés do software, e um arquivo em formato XML contendo estes resultados podeser baixado.

16

Page 22: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Figura 11: Exibição dos resultados

17

Page 23: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

4 Experimentos

Os dados recebidos originalmente não possuiam um formato ideal para seremprocessados pelo algoritmo de mineração de dados. Alguns erros de codi�caçãoforam percebidos nos nomes de alguns produtos da base de dados e corrigidos antesda etapa de pré-processamento. Esta seção descreve as modi�cações realizadas nabase 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 eetapa de pós-processamento.

A Tabela 4 apresenta parte da tabela original.

Tabela 4: Tabela OriginalId cliente produto loja data231 31ce0f36bcc97cd440267 Manual de Cuidados do Paciente com Disfagia C 2006-10-17

232 354cdfc4ae0bdab73b9fd Fonoaudiologia: Surdez e Abordagem BilÃngà 14e C 2006-10-13

233 726967830080c48d48050 Mà c©todo das Boquinhas 1 Alfabetizaço... 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 8861�bae48a552057a41 Manual para Inspeção da Qualidade do Leite B 2007-02-01

......

......

...

4.1 Correção dos erros de codi�cação

4.1.1 Substituição de caracteres inválidos

Nesta etapa foi realizada a identi�cação de todos os caracteres que representamerro de codi�cação e, em seguida, a seleção das tuplas onde aparecem estes caracte-res. A Tabela 5 a seguir apresenta parte dos resultados obtidos.

Tabela 5: Seleção das tuplas onde aparecem errosId cliente produto loja data3155 e652f1d3f5bd4476a94c Tratado De Acupuntura Està c©tica A 2007-07-31

3163 4b47516bc3d1027d4df2 Sistema ChinÃas De Curas Alimentares A 2007-07-31

3169 5cb32d6991c52f560910 Pulsologia Arte E CiÃancia Do Diagnà stico... A 2007-07-31

3170 c446d8d194d93f0df5ec Acupuntura e Moxabustão... A 2007-07-31

3171 685b79fb39e8f17b9fe3 Qigong ChinÃas Ilustrado A 2007-07-31

18

Page 24: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

A substituição dos caracteres inválidos por um caractere único que represen-tasse o erro contribuiu facilitando a busca das tuplas a corrigir, além de contornarproblemas como: os produtos Alfabetizaço e Alfabetiza??o foram transforma-dos em Alfabetiza??o e Alfabetiza??o, ou seja, antes da transformação seríamconsiderados produtos diferentes pelo algoritmo de mineração de dados, mas, apósa substituição, voltam a representar um mesmo produto. Ao �nal desta etapa, atabela exibida anteriormente passou à seguinte forma:

Tabela 6: Erros de codi�cação caracterizados por um único caractereId cliente produto loja data3155 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 selecionadaspara a etapa de correção. Um programa em PHP foi criado para facilitar a correaçãode todos os erros de codi�cação. Este programa utilizou os produtos das tuplasselecionadas para montar script SQL. A Tabela 7 mostra parte desta seleção.

Tabela 7: Parte do script SQL gerado pelo programa em PHPUPDATE 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 oscript SQL. Após essa correção, os comandos SQL foram executados e todos oserros de codi�cação nos nomes dos produtos foram corrigidos de uma só vez. ATabela 8 mostra parte dos dados após a correção desses erros.

Tabela 8: Erros de codi�cação caracterizados por um único caractereId cliente produto loja data3155 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

Page 25: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Ao término deste processo, foi percebida uma signi�cativa diminuição de produ-tos distintos na tabela. Ao início do processo, a tabela contava com 1.501 produtosdistintos, 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 amanipulação simultânea dos dados de diferentes lojas, apenas uma das 5 lojas foiescolhida para a realização do pré-processamento. Com um total de 598.114 tuplase 1.501 produtos distintos, a loja A foi escolhida. Nas seções seguintes, somente abase 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 oprocesso de extração de padrões. Tuplas referentes a clientes que realizam a visuali-zação de um determinado produto e não retorna à loja virtual posteriormente paravisualizar outros produtos, representa uma tupla desnecessária na base, visto que oobjetivo do software é obter sequências do tipo <{X}, {Y}>, ou seja, a visualizaçãode 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 fosseotimizado.

Para a realização do processo de remoção de tuplas únicas, foi realizada umaseleção de todas as tuplas onde o cliente apareceu apenas um vez na base de dadose, em seguida, todos os resultados retornados pela seleção foram excluídos.

A consulta SQL utilizada neste processo foiDELETE FROMminerar WHEREcliente IN (SELECT cliente FROM minerar GROUP BY cliente HA-VING COUNT(*)=1). A base de dados, que antes desse processo continha598.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 ma-peamento, onde cada nome de produto e cada identi�cador de cliente é transformadoem um valor numérico diferente. Este processo é realizado para deixar a base a serminerada codi�cada, de forma que o tempo de processamento gasto na mineraçãoseja o menor possível.

A Tabela 9 apresenta parte dos dados da tabela original, antes de serem mapea-dos em valores numéricos. Os identi�cadores da loja virtual e as datas das visuali-zações foram otimidos para facilitar a visualização e comparação entre os dados databela não-mapeada para a tabela mapeada.

20

Page 26: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Tabela 9: Tuplas de dados não-mapeadosId cliente produto82 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 signi�cativa diminuição de informação que será enviada à ferramentaWeka para realização da mineração de dados.

Tabela 10: Tuplas de dados mapeadosId cliente produto82 30 52

83 30 13

84 30 53

85 31 13

86 31 29

87 31 53

88 31 32

4.5 Mineração de Dados

Com os dados pré-processados, um arquivo em formato ARFF é gerado seguindoo padrão de arquivo exigido pelo Weka. Este arquivo pode ser salvo pelo usuáriopara realização dessa etapa em um momento posterior.

O software solicita ao usuário o suporte mínimo da mineração, e submete oarquivo ao Weka. Os resultados das sequências frequentes (caso houverem), sãocapturados e utilizados na etapa

4.6 Pós-processamento dos Dados

Após a mineração de dados, os resultados retornados pelo Weka devem passarpor duas modi�cações: a primeira, se refere ao mapeamento dos dados. Os resul-tados estão ainda mapeados, ou seja, as sequências resultantes não informam osnomes reais dos produtos da loja virtual. A segunda, se refere às sequências únicasretornadas. Sequências que contém apenas um itemset não contribuem para o ob-jetivo desse software, que é encontrar padrões sequenciais que trazem informaçõesde itemsets Y visualizados após itemsets X. Os resultados passam portanto por umetapa de transformação, na qual os nomes originais são substituídos por seus valoresnuméricos correspondentes, e um etapa de seleção, que captura apenas sequênciasde pelo menos 2 itemsets para serem exibidas no software.

21

Page 27: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Por �m, os resultados são gravados em um arquivo XML para futuras consultase/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 quantoa etapa de pré-processamento é importante para uma e�ciente mineração de dados.Estudos mostram que essa etapa pode consumir até 80% do tempo necessário paratodo processo de descoberta de conhecimento, além de ser considerada uma dasetapas mais importantes do processo como um todo [15].

22

Page 28: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

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áriossobre os produtos dessas lojas. A de�nição destes interesses foi possível a partir damineração de dados relacionados aos logs navegacionais destes usuários.

A grande quantidade de dados gerados no dia-a-dia das organizações exige me-canismos capazes de aproveitá-los, separando as informações úteis que podem serutilizadas 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 res-trito, dentre diversas outras adaptações que podem proporcior grandes vantagenscompetitivas às empresas.

O software aqui proposto realiza o pré-processamento e a mineração de dados delojas virtuais, apresentando como resultado para o vendedor (dono da loja) sequên-cias de produtos frequentemente visualizadas por clientes. Dessa forma, o vendedorpode planejar ações que focam por exemplo a venda do produto Y, visto que ocliente já adquiriu o produto X.

Estudos e aplicações de mineração de dados no setor de vendas online contribuempositivamente para a relação entre cliente e vendedor. O cliente receberá propagan-das realmente direcionadas à ele e poderá visualizar uma loja virtual que se adaptaaos seus interesses. Como os produtos oferecidos tem uma probabilidade maiorde despertaram interesse, a lucratividade para o vendedor vem como consequencia,tanto pela venda em si, quanto pela economia gerada ao se evitar a propaganda dedeterminados produtos para um público sem interesse nos mesmos.

23

Page 29: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

Referências

[1] Pre�xSpan: Mining sequential patterns e�ciently by pre�x-projected pattern

growth, volume 01, 2001.

[2] Ramakrishnan Srikant. Rakesh Agrawal. Mining sequential patterns: Genera-lizations and performance improvements. Proceedings of the 5th International

Conference on Extending Database Technology, pages 3�17, 1996.

[3] Roberto Willrich; Rafael de Moura Speroni; Christopher Viana Lima; AndréLuiz de Oliveira Diaz; Sérgio Murilo Penedo. Adaptive information retrievalsystem applied to digital libraries. Proceedings of the 12th Brazilian Symposium

on Multimedia and the web, 06:165�173, 2006.

[4] José Palazzo Moreira de Oliveira; Lydia Silva Muñoz; Veronice de Freitas; Vi-viane P. Marçal; Isabela Gasparini; Marília Abrahão Amaral. Adaptweb: anadaptive web-based courseware. Annual Ariadne Conference, 3, 2003.

[5] Michael Goebel; Le Gruenwald. A survey of data mining and knowlodge disco-very software tools. SIGKDD Explorations, 1:20�33, 1999.

[6] Sarabjot S. Anand; David A. Bell; John G. Hughes. The role of domain kno-wledge in data mining. Baltimore, Maryland, United States, November 29-December 02 1995.

[7] Behzad Mortazavi-Asl Jianyong Wang Helen Pinto Quiming Chen UmeshwarDayal Mei-Chun Hsu. Jian Pei, Jiawei Han. Mining sequential patterns bypattern-growth: The pre�xspan approach. IEEE Transactions on Knowledge

and Data Engineering, 16(11):1424�1440, 2004.

[8] Ricardo Silveira Carlos Vaz de Carvalho. Joel Pinho Lucas, Constantino Mar-tins. Ferramentas de autoria de sistemas hipermídia adaptativos para aprendi-zagem: Um ponto de situação. Revista Novas Tecnologias na Educação, 3(2),2005.

[9] Geo�rey Holmes Bernhard Pfahringer Peter Reutemann Ian H. WittenMark Hall, Eibe Frank. 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 dynamicallyimprove hypertext structure. ACM SigWeb Letters, 3:13�19, 1999.

[11] Luiz Antônio Moro Palazzo. Modelos Proativos para Hipermídia Adaptativa.PhD thesis, UFRGS, 2000.

[12] Ramakrishnan Srikant Rakesh Agrawal. Fast algorithms for mining associationrules. IBM Almaden Research Center, 1994.

[13] Rakesh Agrawal Ramakrishnan Srikant. Mining sequential patterns. pages3�14, 1995.

[14] David Siegel. PULL - O futuro da Internet e o Impacto da Web Semântica em

seus negócios. 2009.

24

Page 30: CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de … · Seleção - Identi ca apenas os dados relevantes para a aplicação da mi-neração; ransformaçãoT - Consolida os

[15] Reinaldo Viana. Mineração de dados: Introdução e aplicações. SQL Magazine,10:16�25, 2004.

[16] Mohamed J. Zaki. Spade: an e�cient algorithm for mining frequent sequences.Machine Learning Journal, special issue on Unsupervised Learning, 42:31�60,2001.

25