Relatório de Atividades - DECOM · Instituto de Ciências Exatas e Biológicas Departamento de...

Post on 05-Jun-2020

3 views 0 download

Transcript of Relatório de Atividades - DECOM · Instituto de Ciências Exatas e Biológicas Departamento de...

Cecília Henriques Devêza

ceciliadeveza@gmail.com

Orientador: Luiz Henrique de Campos Merschmann

Ouro Preto, 13 de Junho de 2011

Minerando Padrões Sequenciais para

Bases de Dados de Lojas Virtuais

Universidade Federal de Ouro Preto

Instituto de Ciências Exatas e Biológicas

Departamento de Computação

Roteiro

Processo KDD

Tarefas de Mineração de Dados

Definição e exemplo

Objetivos

Ferramenta Computacional Dados Amostrais

Correção de caracteres

Pré-processamento

Mineração de Dados

Pós-Processamento

Aplicação

Conclusão

Processo KDD

Processo de descoberta de conhecimento em

bases de dados.

Tarefas de Mineração de Dados

Extração de regras de associação / padrões de

sequência

Classificação

Agrupamento (Clustering)

Regressão

Tarefas de Mineração de Dados

Extração de regras de associação / padrões de

sequência

Classificação

Agrupamento (Clustering)

Regressão

Definição e exemplo

Regras de Associação: representam um padrão de relacionamento

entre itens de dados. Ex: leite, pão => refrigerante.

Padrões de Sequência: conjunto de itens que ocorrem seguindo

uma ordem temporal. Ex: <{pão, leite},{cerveja}>

ID Transação Itens comprados

1 leite, pão, refrigerante

2 cerveja, carne

3 cerveja, fralda,pão, leite, refrigerante

4 cerveja, fralda, leite, pão

5 fralda, leite, refrigerante,pão

Consumidor Data / Hora Produtos

João 20/03/2010 leite, pão

João 21/03/2010 carne, cerveja

João 15/07/2010 queijo, manteiga, sal

Marcos 28/09/2010 leite, ovos, pão

Marcos 02/12/2010 queijo, manteiga, cerveja

Objetivos

Propor uma ferramenta computacional

capaz de processar dados de lojas virtuais.

Extrair padrões sequenciais de visualização

de produtos por clientes de lojas virtuais.

Obter conhecimento para adaptação

automática do ambiente virtual (site) das

lojas.

Dados das lojas virtuais

Base de dados disponibilizada

Trans. IdCliente Produto Loja Data

1 223954afbfc851101040 Mitiflex C 2010-04-05

2 af9a49394f5486385aeb Pequenas Fontes... B 2010-04-05

3 f7c191a0cd6a75c5cbe2 Surdez Processos... C 2010-04-05

4 2aw23ew3983y4thi4438 CDI Digital DAFRA... D 2010-04-05

5 t52kdi7486db5g1mnk6t8 Agulha Auricular C... A 2010-04-06

6 64dsb8dbdf8bfdb6wd65 Zumbido Avaliação... C 2010-04-07

... ... ... ... ...

3.525.926 d2f1dsg23sd1gs35ytj5ui O Pastor Alemão B 2010-04-07

Correção de Erros

Substituição de caracteres inválidos para um

caractere único: “?”.

Seleção das tuplas que contém “?” e geração de

um script SQL

Correção das manual dos caracteres no script

Execução do script para substituição completa

Trans. IdCliente Produto Loja Data

1 726967830080c48 Método das Boquinhas 1 Alfabetizaço... C 2010-04-05

2 726967830080c48 Ponta De LÃngua Com 10 Unidades B 2010-04-05

3 B408d92d61a284 J.Aplicados à Fonoaudiologia Prýtica C 2010-04-05

4 2aw23ew399thi44 PaquÃmetro 18 cm D 2010-04-05

Tela Inicial

Tela Inicial

Pré-processamento

Validação do arquivo

Pré-processamento

Seleção de dados: definição de loja virtual.

Pré-processamento

Seleção de dados: remoção de tuplas únicas.

Pré-processamento

Transformação de dados: mapeamento de

identificadores de clientes e produtos.

Clientes Produtos

5e182b89fb42e9cd6d9585 Ponto Cristal com 100 Unid

633a7f6e14b5094d116863 Óleo Hung Far Oir 30 ml

5e182b89fb42e9cd6d9585 Ventosa 19 Copos

Clientes Produtos

34 261

93 92

22 170

Pré-processamento

Geração do arquivo .arff

Mineração de Dados

Execução

Mineração de Dados

Algoritmo GSP

Geração de

candidatos

Poda de candidatosDefinição de

frequentes

Propriedade: Para uma sequencia ser frequente, todas suas

subsequencias também devem ser frequentes.

Pós-processamento

Mapeamento dos dados

Sequencias

<{261}{246}>

<{92}{140}{170}>

<{0}{3}{4}>

Sequencias Mapeadas

<{...com Fecho De Velcro} {...com Fecho De Metal}>

<{Acuspointer...}{Sikuro Ds100jr}{Wq 10}>

<{Ponto Cristal...}{Mapa De Auriculoterapia...}{Orelhas com Ponto...}>

Apresentação dos resultados

Exibição das sequencias na tela

Salvar arquivo de soluções

Apresentação dos resultados

Exemplo de utilização para arquivo XML

Aplicação

Conclusão

Foi apresentado um software capaz de

extrair padrões sequenciais de uma base

de dados de loja virtual.

Resultados obtidos:

Induzem o consumidor à compra de outros itens.

Oferecem ao cliente produtos condizentes com

sua expectativa.

Perguntas?

Fim

Anexo - GSP

Algoritmo GSP – Iteração 1GERAÇÃO DE PRÉ-CANDIDATOS E CÁLCULO DE SUPORTE

TID Produtos

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

Prods. Suporte

<{1}> 4

<{2}> 4

<{3}> 3

<{4}> 4

<{5}> 4

<{6}> 2

<{7}> 2

<{8}> 1

<{9}> 1

Supondo suporte mínimo igual a 50%, todos os itens são

considerados frequentes nesta iteração exceto o {8} e {9}.

Algoritmo GSP – Iteração 2GERAÇÃO DE PRÉ-CANDIDATOS

(k=1)

<{1}>

<{2}>

<{3}>

<{4}>

<{5}>

<{6}>

<{7}>

L1 X L1

<{1}> <{1}>

<{2}> <{2}>

<{3}> <{3}>

<{4}> <{4}>

<{5}> <{5}>

<{6}> <{6}>

<{7}> <{7}>

Na segunda iteração, são criados todos os conjuntos possíveis de 2 itens.

Os conjuntos que possuem o mesmo elemento, na mesma transação,

sempre possuem frequência 0. (Ex.: <{1, 1}>).

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

Algoritmo GSP – Iteração 2DEFINIÇÃO DOS FREQUENTES

Tendo todos os candidatos possíveis de 2 itens, é necessário

verificar quais atendem ao suporte mínimo especificado.

Esta verificação será mostrada posteriormente.

Algoritmo GSP – Iteração 3

A partir desta iteração, é preciso ficar atento para a seguinte regra:

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: v = <s1, s2, s3, ..., sn U t’>, onde t’ é o último item

de tm.

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

Algoritmo GSP – Iteração 3GERAÇÃO DE PRÉ-CANDIDATOS

(k=2)

<{1}, {2}>

<{1}, {3}>

<{1}, {4}>

<{1, 5}>

<{2}, {6}>

<{2, 6}>

<{6}, {7}>

<{4},{6}>

<{3, 7}>

<{5, 6}>

<{4, 7}>

TID Produtos

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

Suponha que as 2-sequências mostradas abaixo atingiram o suporte mínimo.

Algoritmo GSP – Iteração 3FASE DE PODA DOS PRÉ-CANDIDATOS

(k=2)

<{1}, {2}>

<{1}, {3}>

<{1}, {4}>

<{1, 5}>

<{2}, {6}>

<{1, 6}>

<{6}, {7}>

<{4},{6}>

<{3, 7}>

<{5, 6}>

<{4},{7}>

(K=3)

<{1, 5, 6}>

<{4}, {6}, {7}>

TID Produtos

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

Para uma sequencia S ser frequente, então toda subsequência de S deve ser

frequente.

A subsequência

<{1}, {6}> não

pertence à Lk=2

Algoritmo GSP – Iteração 3DEFINIÇÃO DOS FREQUENTES

Novamente, é feito o cálculo do suporte para os candidatos que

permaneceram após a poda. Este cálculo é mostrado a seguir.

Definição das sequencias frequentesGERAÇÃO DA ÁRVORE-HASH

Suponha as seguintes 2-sequências candidatas:

(k=2)

<{1, 3}>

<{1}, {3}>

<{2}, {3}>

<{3}, {3}>

<{2, 3}>

<{1}, {4}>

Para construir a árvore hash, é preciso definir 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-filhos que um nó pode possuir.

Neste exemplo, usaremos M=3, N=2.

GSP - Cálculo do Suporte

Inserindo as 3 primeiras sequências na árvore:

<{1, 3}>

<{1}, {3}>

<{2}, {3}>

Na hora de inserir a quarta sequência <{3}, {3}>, o nó-raiz está cheio!

Primeiramente, definimos as funções de hash para cada item que aparece

na base:

h(1) = 1; h(2) = 2; h(3) = 1; h(4) = 2; h(5) = 1. (Variam de acordo com N).

<{1, 3}>

<{1}, {3}>

<{3}, {3}>

<{2}, {3}>

GSP - Cálculo do Suporte

Inserindo a sequência <{2, 3}> na árvore:

<{1, 3}>

<{1}, {3}>

<{3}, {3}>

<{2}, {3}>

<{2, 3}>

Na hora de inserir <{1}, {4}> seu nó de destino encontra-se cheio!

Inserindo a sequência <{1}, {4}> na árvore:

<{1, 3}>

<{1}, {3}>

<{3}, {3}>

<{2}, {3}>

<{2, 3}>

<{1}, {4}>

GSP - Cálculo do Suporte

INCLUDE

<{2}, {3}>

<{2, 3}>

<{1}, {4}>

CONTANDO AS FREQUÊNCIAS A PARTIR DA ÁRVORE HASH

Supondo a seguinte sequência de cliente: c = <{1, 5}, {1}, {3}>

h(1) = 1; h(2) = 2; h(3) = 1; h(4) = 2; h(5) = 1

GSP - Cálculo do Suporte

INCLUDE

<{2}, {3}>

<{2, 3}>

<{1}, {4}>

CONTANDO AS FREQUÊNCIAS A PARTIR DA ÁRVORE HASH

Supondo a seguinte sequência de cliente: c = <{1, 5}, {1}, {3}>

h(1) = 1; h(2) = 2; h(3) = 1; h(4) = 2; h(5) = 1

GSP - Cálculo do Suporte

INCLUDE

<{2}, {3}>

<{2, 3}>

<{1}, {4}>

CONTANDO AS FREQUÊNCIAS A PARTIR DA ÁRVORE HASH

Supondo a seguinte sequência de cliente: c = <{1, 5}, {1}, {3}>

h(1) = 1; h(2) = 2; h(3) = 1; h(4) = 2; h(5) = 1

GSP - Cálculo do Suporte

INCLUDE

<{2}, {3}>

<{2, 3}>

<{1}, {4}>

CONTANDO AS FREQUÊNCIAS A PARTIR DA ÁRVORE HASH

Supondo a seguinte sequência de cliente: c = <{1, 5}, {1}, {3}>

h(1) = 1; h(2) = 2; h(3) = 1; h(4) = 2; h(5) = 1

GSP - Cálculo do Suporte

INCLUDE

<{2}, {3}>

<{2, 3}>

<{1}, {4}>

CONTANDO AS FREQUÊNCIAS A PARTIR DA ÁRVORE HASH

Supondo a seguinte sequência de cliente: c = <{1, 5}, {1}, {3}>

h(1) = 1; h(2) = 2; h(3) = 1; h(4) = 2; h(5) = 1

GSP - Cálculo do Suporte

INCREMENTANDO O CONTADOR DOS NÓS FREQUENTES

Temos como entrada uma sequencia S (presente no Nó) e C (cliente)

S = <{2, 4}, {6, 7}>

C = <{1, 2}, {4, 6}, {3}, {1, 2}, {3}, {2, 4}, {6, 7}>

Em seguida, construímos a tabela de tempos:

GSP - Função INCLUDE

Itens Tempo

1 [1, 4]

2 [1, 4, 6]

3 [3, 5]

4 [2, 6]

5 [ ]

6 [2, 7]

7 [7]

GSP - Função INCLUDE

Sendo C uma sequencia de cliente, e S uma

sequencia contida no nó, faça:

Gera lista de tempos para os itemsets de C.

Se C contém S, incrementa contador de frequencia

para S.

Retira da árvore as sequencias S que atendem

ao suporte mínimo.