relatório de atividades - decom · instituto de ciências exatas e biológicas departamento de...
Post on 05-Jun-2020
3 Views
Preview:
TRANSCRIPT
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.
top related