• Nenhum resultado encontrado

CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de Campos Merschmann. Minerando Padrões Sequenciais para Bases de Dados de Lojas Virtuais

N/A
N/A
Protected

Academic year: 2021

Share "CECÍLIA HENRIQUES DEVÊZA Orientador: Luiz Henrique de Campos Merschmann. Minerando Padrões Sequenciais para Bases de Dados de Lojas Virtuais"

Copied!
32
0
0

Texto

(1)

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

(2)

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 Com-putação.

Cecília Henriques Devêza

Ouro Preto

Junho de 2011

(3)

UNIVERSIDADE FEDERAL DE OURO PRETO

FOLHA DE APROVAÇÃO

Minerando Padrões Sequenciais para Bases de Dados de

Lojas Virtuais

CECÍLIA HENRIQUES DEVÊZA

Monograa defendida e aprovada pela banca examinadora constituída por:

Dr. Luiz Henrique de Campos Merschmann - Orientador

Universidade Federal de Ouro Preto

Dr. Haroldo Gambini Santos

Universidade Federal de Ouro Preto

Mestre Túlio Angelo Machado Toolo

Universidade Federal de Ouro Preto

(4)

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 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 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: Mineração de Dados. Padrões Sequenciais. Algoritmo GSP.

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: preprocessing (data cleaning, data selection and data trans-formation), data mining, and post processing (evaluation and interpretation). This paper presents a software for performing the automatic preprocessing and data mining from online stores, in order to obtain useful knowledge from these data with theaim of using it in marketing campaings and online store's adaptation according to the products viewed by each customer.

The proposed software uses the sequential pattern technique through the GSP algorithm proposed in [2], to identify itemsets Y that occur after the appearance of itemsets X.

(5)

Agradecimentos

Este trabalho é fruto de muito estudo, persistência e colaboração de muitas pes-soas, para as quais dedico meus sinceros agradecimentos.

Ao meu pai Bené Devêza, pelo incentivo e apoio de sempre, por acreditar em mim e não medir esforços para que eu pudesse concluir mais essa etapa da minha vida. À minha mãe Virgínia, por ser meu exemplo de vida, dedicação e amor.

Aos meus irmãos e familiares, por estarem sempre ao meu lado.

Ao Frank, por passar comigo tanto os momentos de alegria quanto os momentos de tristeza vividos durante o curso. Pela compreensão, pelo apoio e companheirismo. Às minhas grandes amigas de Ouro Preto, por compartilharem comigo os me-lhores momentos da minha faculdade e por entenderem meus momentos de ausência. Aos amigos do curso de Ciência da Computação, pela amizade que construímos e pela cooperação e companhia nas noites mal dormidas, em especial Tales, Larissa, Angelo, Gustavo, Rodrigo, Rodolfo, Marcus e Thiago.

À GerênciaNet, por acreditar e contribuir para a efetivação desse trabalho. Ao meu orientador Luiz Merschmann, pelo ensinamento, dedicação e paciência dispensados durante toda a elaboração desse projeto. Suas sugestões foram essenci-ais para que um melhor resultado nal pudesse ser obtido.

Aos demais professores e funcionários da UFOP, que muito contribuíram para minha formação.

(6)

Sumário

1 Introdução 1

2 Revisão Bibliográca 3

2.1 Algoritmos para Extração de Regras de Associação . . . 3

2.1.1 Algoritmo Apriori . . . 3

2.2 Algoritmos para Extração de Padrões de Sequência . . . 4

2.2.1 AprioriAll . . . 5 2.2.2 PrexSpan . . . 5 2.2.3 Spade . . . 5 2.2.4 GSP . . . 6 2.3 Trabalhos Relacionados . . . 11 3 Abordagem Proposta 13 3.1 O desenvolvimento do software . . . 14 4 Experimentos 18 4.1 Correção dos erros de codicação . . . 18

4.1.1 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

(7)

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 hash . . . 8

5 Denição de candidatos possivelmente frequentes . . . 9

6 Denição de sequências frequentes . . . 10

7 Iteração 3 do GSP . . . 11

8 Fluxo de Dados . . . 13

9 Tela Inicial do Software . . . 15

10 Denição da Loja Virtual . . . 16

11 Exibição dos resultados . . . 17

Lista de Tabelas

1 Sequências candidatas de 2 itens . . . 7

2 Tempos de Transações - sequência do Cliente . . . 10

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

(8)

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. En-tretanto, uma ferramenta para análise desses dados deve considerar esse volume, pois representa justamente um maior potencial de informação. Em resposta a esta necessidade, surgiu a área de pesquisa e aplicação conhecida como Mineração de Dados. A mineração de dados pode ser denida 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 mine-raçã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 mi-neraçã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 a dois tipos principais de tarefas:

(9)

• 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 represen-tam conhecimento baseado em algumas medidas de interesses.

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

Este trabalho está organizado da forma descrita a seguir. 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.

(10)

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 a uma ordem temporal lógica, de forma que as regras extraídas estariam diretamente ligadas ao momento em que cada item ocorreu. Este processo cou conhecido como extração de padrões sequenciais. 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 algo-ritmos de extração de regras. O objetivo principal desses algoalgo-ritmos é obter regras do tipo X → Y, onde X e Y representam conjuntos de itens, chamados itemsets. A regra 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 suporte da regra - porcentagem de transações onde os itemsets X e Y aparecem numa mesma transação na base; e a conança da regra - porcentagem de transações que supor-tam o itemset Y dentre todas as transações que suporsupor-tam 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 ex-trair conjuntos de itens frequentes e a partir destes conjuntos, alguns procedimentos podem 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.

• Denir quais itemsets candidatos 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 candidatos de tamanho k são calculados a partir dos itemsets frequentes de tamanho k - 1.

(11)

• Calcular o suporte de todos os itemsets possíveis 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 item-sets candidatos de tamanho 2 e, novamente, eliminar os que não atendem ao suporte mínimo.

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

A Figura 1 exemplica a estratégia do algoritmo Apriori para um suporte de 50%. Cada iteração k gera k-itemsets como resultado, ou seja, conjuntos de itens frequentes 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 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

(12)

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 poten-ciais à realização de uma compra dos itens pertencentes ao itemset Y, visto que ele já adquiriu os itens do itemset 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 na técnica Apriori descrita anteriormente, já outros como o PrexSpan e o Spade uti-lizam 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, bus-cando atender à necessidade de manter a sequência 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 sequências 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 sequências de itens, em sequências de clientes. 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 sequência 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 sequência 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 em-pregada 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

(13)

de forma independente na memória principal. Para realizar as divisões o algoritmo 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 na 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 a uma otimizaçã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 (Itemsets frequentes 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 sequências de k itens. Ou seja, os itemsets frequentes <{A}> e <{B}> dão origem, no AprioriAll, ao 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-dato que possui dois itemsets, dá origem a dois candicandi-datos que possuem dois itens, estejam eles em itemsets distintos ou não.

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 1-itemset é calculado, da mesma forma como ocorre no AprioriAll. Neste exemplo, o suporte mínimo estipulado é de 50%. A Figura 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 dos candidatos são realizados de forma diferente.

Id Cliente Sequência 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%

(14)

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 somente itemsets de tamanho 2, como também sequências de 2 itemsets. O importante aqui é que os candidatos devem possuir 2 itens, sejam eles pertencentes a um mesmo itemset ou não. A Figura 3 exemplica 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 ... Itemsets freqü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çã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 a N.

Tabela 1: Sequências candidatas 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. O nó

(15)

de destino de cada candidato é 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. A Figura 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 frequên-cia 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. Segue o uxo de procedimentos realizados para determinação dos itemsets frequentes:

• Calcula-se a função hash para cada item da sequência, e verica-se qual é o nó indicado pela função.

• Se o nó é folha, aplica-se a cada elemento da folha o procedimento Include. • Se o nó não é folha: aplica-se a função hash a todos os itens da sequência que

sucedem o item i 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}>.

(16)

<{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}> INCLUDE INCLUDE d = <{1, 5}, {1}, {2}> h(1) = 1 h(2) = 2 <{2}, {3}> <{2, 3}> INCLUDE INCLUDE 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}> INCLUDE INCLUDE d = <{1, 5}, {1}, {2}> h(1) = 1 h(2) = 2 INCLUDE

Figura 5: Denição de 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 sequência de cliente: d =<{1, 2}, {4, 6}, {3}, {1, 2}, {3}, {2, 4}, {6, 7}>.

• Exemplo de sequência candidata: <{2, 4}, {6, 7}>.

Uma tabela de tempo de transação deve ser construída. Como os itemsets das sequências encontram-se em ordem cronológica, o primeiro itemset pertence ao tempo 1, o segundo ao tempo 2, e assim por diante. A Tabela 2 exibe os tempos da sequência do cliente.

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

Após a vericação de todas as sequências de clientes, a árvore hash encontra-se com as sequências candidatas marcadas de acordo com suas frequências. A árvore é percorrida e são retiradas as sequências que atingem o suporte mínimo. Todo este

(17)

Tabela 2: Tempos de Transações - sequência do Cliente Item Tempo 1 [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 = 6 No tempo 6, o itemset {2, 4} ocorreu. [2, 7] [7] [2, 7] [7] 2 < 7 7 = 7 No 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: Denição de sequências 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 t =< t1, t2, t3, t4, ..., tm > são ditas ligáveis se, retirando-se o primeiro item de s1 e o último item de tm, as sequências resultantes são iguais. Neste caso, s e t podem ser ligadas e produzir a sequência V, onde:

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

(18)

• 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}> Sequencias freqü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 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 trabalhou 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 ne-cessidades 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 infor-mações relevantes e descartando inforinfor-maçõ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 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 prefe-rê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 é au-tomaticamente 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

(19)

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 registros históricos da web. O sistema propõe possibilidades de melhoria de desempenho e reestruturação de sites através da análise de padrões contidos em dados armazenados por servidores web.

(20)

3 Abordagem Proposta

A proposta deste projeto é construir um software capaz de receber dados de uma base, processá-los e gerar como saída as sequências frequentes de itens dessa base. Atualmente, a extração de informações sobre dados vem ganhando espaço no mar-keting empresarial. 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.

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 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 as exigências de formato de arquivo da ferramenta Weka, e o arquivo não pré-processado (arquivo original) deve seguir as exigências

(21)

de formato exigidas pelo próprio 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. 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 existirem) e exibe-as para o usuário.

Por m, um arquivo em formato XML contendo as sequências frequentes retor-nadas é 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 apresentados para o 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 Signicado

id Identicador 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 virtual gerou um novo registro na tabela apresentada anteriormente. Entretanto, o armaze-namento destes dados tornou-se inviável, visto que o povoamento desta tabela fazia

(22)

parte da própria estrutura operacional do sistema, dividindo custos de processa-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é estudar medidas ideiais para armazenamento de dados históricos. Parte dos dados arma-zenados foi cedida para iniciar este estudo. A empresa realizou algumas alterações a m de proteger a imagem do cliente e manter sigilo sobre os visitantes das lojas virtuais.

Os dados cedidos pela empresa apresentam informações de 5 lojas virtuais e estão dispostos em um arquivo de texto, onde cada linha possui um identicador do cliente, o nome do produto visualizado, o identicador da loja virtual e a 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 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, tota-lizando 385,4 MB de dados. A Seção 4 mostra como os dados dessa tabela foram manipulados até chegarem 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 objetivo 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 destes através de e-mails (marketing direcionado). A Figura 9 mostra a tela inicial do 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 pospreci-sam ser lidos corretamente pelo software. Para isso, um exemplo de arquivo é exibido em uma caixa de texto

(23)

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 identicado-res das lojas. A mineração de dados de lojas diferentes não é inteidenticado-ressante, 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 mínimo deve ser denido pelo usuário. Em seguida, o arquivo de dados pré-processado é 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 é utilizado na leitura dos resultados. A Figura 11 exibe a tela com as sequências frequentes encontradas em um arquivo de exemplo.

Por m, os resultados obtidos pelo Weka passam por uma etapa de pós-processamento para torná-los adequados para serem exibidos pelo software. Cada sequência fre-quente é exibida através do software e, além disso, um arquivo em formato XML contendo estes resultados pode ser salvo.

(24)
(25)

4 Experimentos

Os dados recebidos originalmente não possuíam 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, a etapa de pós-processamento.

A Tabela 4 apresenta parte da tabela original.

Tabela 4: Tabela Original

Id cliente produto loja data

231 31ce0f36bcc97cd440267 Manual de Cuidados do Paciente com Disfagia C 2006-10-17 232 354cdfc4ae0bdab73b9fd Fonoaudiologia: Surdez e Abordagem BilÃngÃ1

4e 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 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 caracte-res. 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 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

(26)

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 contornar problemas como: os produtos Alfabetizaço e Alfabetiza??o foram transforma-dos em Alfabetiza??o e Alfabetiza??o, ou seja, antes da transformação seriam 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 à forma apresentada na Tabela 6.

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 correção de todos os erros de codicação. Este programa utilizou os produtos das tuplas selecionadas para montar script SQL. A Tabela 7 mostra parte desta seleção.

Tabela 7: Parte do 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. A 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

(27)

Ao término deste processo, foi percebida uma signicativa diminuição de produ-tos distinprodu-tos na tabela. Ao início do processo, a tabela contava com 1.501 produprodu-tos distintos e, 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 visuali-zação de um determinado produto e não retornam à loja virtual posteriormente para visualizar outros produtos representam tuplas desnecessárias 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 itemset 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.

A consulta SQL utilizada neste processo foi DELETE FROM minerar WHERE cliente IN (SELECT cliente FROM minerar GROUP BY cliente HA-VING COUNT(*)=1). A base de dados, que antes desse processo continha 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 ma-peamento, 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 omitidos para facilitar a visualização e comparação entre os dados da tabela não-mapeada e da tabela mapeada.

(28)

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, mas agora mapeados.

Tabela 10: Tuplas de dados mapeados Id cliente produto 82 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 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 para realizar a mineração e submete o arquivo de dados ao Weka. Os resultados das sequências frequentes (se houver), são capturados e utilizados na etapa de pós-processamento.

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 resul-tados 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 itemset não contribuem para o ob-jetivo desse trabalho, que é encontrar padrões sequenciais que trazem informações de itemsets Y visualizados após itemsets X. Sendo assim, os resultados passam por uma etapa de transformação, na qual os valores numéricos são substituídos por seus nomes originais, e uma etapa de seleção, que captura apenas sequências com pelo menos 2 itemsets para serem exibidas no 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.

(29)

4.7 Considerações nais

Os experimentos sobre a base de dados disponibilizada permitiram comprovar 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].

A execução do pré-processamento é realizada em 42 segundos em média. De-nindo 1% para o valor de suporte, as etapas de mineração e pós-processamento juntas executam em aproximadamente 5 segundos e são encontradas 39 sequências frequentes, sendo 36 sequências de tamanho 2, e 3 sequências de tamanho 3. Di-minuindo o valor do suporte para 0,5% o tempo da mineração e pós-processamento sobe para 13 segundos e são encontradas 1049 sequências frequentes, que variam de tamanho 2 até tamanho 8.

(30)

5 Conclusões

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 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 res-trito, dentre diversas outras adaptações que podem proporcionar grandes vantagens competitivas às empresas.

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 desses interesses foi possível a partir da mineração de dados relacionados aos registros navegacionais desses usuários.

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ên-cias 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á visualizou o produto X.

Estudos e aplicações de mineração de dados no setor de vendas online contri-buem positivamente para a relação entre cliente e vendedor. O cliente receberá propagandas realmente direcionadas a ele e poderá visualizar uma loja virtual que se adapta aos seus interesses. Como os produtos oferecidos têm uma probabili-dade maior de despertaram interesse, a lucrativiprobabili-dade 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.

(31)

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-lizations and performance improvements. Proceedings of the 5th International Conference on Extending Database Technology, pages 317, 1996.

[3] Roberto Willrich; Rafael de Moura Speroni; Christopher Viana Lima; André Luiz de Oliveira Diaz; Sérgio Murilo Penedo. Adaptive information retrieval system applied to digital libraries. 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; Vi-viane 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 disco-very software tools. SIGKDD Explorations, 1:2033, 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 Umeshwar Dayal Mei-Chun Hsu. Jian Pei, Jiawei Han. Mining sequential patterns by pattern-growth: The prexspan approach. IEEE Transactions on Knowledge and Data Engineering, 16(11):14241440, 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] Georey Holmes Bernhard Pfahringer Peter Reutemann Ian H. Witten Mark 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 dynamically improve hypertext structure. ACM SigWeb Letters, 3:1319, 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 association rules. IBM Almaden Research Center, 1994.

[13] Rakesh Agrawal Ramakrishnan Srikant. Mining sequential patterns. pages 314, 1995.

(32)

[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, 42:3160, 2001.

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

Eventos como a criação de um depósito de prisioneiros de guerra na ilha Terceira; o ataque do U ‑155 e a instalação de uma base aeronaval americana em Ponta Delgada;

Com o intuito de aperfeic¸oar a realizac¸˜ao da pesquisa O/D, o objetivo do presente trabalho ´e criar um aplicativo para que os usu´arios do transporte p´ublico informem sua origem

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

Os resultados permitiram concluir que a cultivar Conquista apresentou a maior produtividade de grãos, no conjunto dos onze ambientes avaliados; entre as linhagens

(a) uma das formas para compatibilizar direitos consagrados na Constituição Federal de 1988 diretamente relacionados com a dignidade da pessoa humana – como o respeito à vida privada

Tendo em nossos apontamentos aqui evidenciados, concluímos e deixamos até mesmo como reflexão em estudos futuros que, o fator fundamental no processo de aprendizagem com a