Mineração de Padrões Arborescentes

Slides:



Advertisements
Apresentações semelhantes
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Advertisements

Inteligência Artificial
AULA 8 Profa. Sandra de Amo GBC053 – BCC
Amintas engenharia.
Exercícios PAA- Grafos
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Algoritmo polinomial para geração de uma Árvore Geradora Mínima
Engenharia de Computação.
Uma das tarefas descritivas da
Gerência de Banco de Dados 1 Apresentação da Disciplina Profa. Sandra de Amo Bacharelado em Ciência Computação 2009 – 2.
Algoritmos para Projeção eliminando Duplicatas
Cálculo Relacional Datalog não-recursivo
Generalização da Técnica Levelwise para Mineração de Padrões Sandra de Amo.
Algoritmos de Junção – Sort-Merge Join Hash Join
Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING.
SQL – Consultas Aninhadas
Algoritmos para Seleção e Projeção
Mineração de Traços de Execução
SQL – Comandos de Agregação
Correção – Completude – Performance – Escalabilidade
2/18/2014Mestrado em Ciencia da Computacao Tópicos Especiais Mineração de Dados Profa. Sandra de Amo Mestrado em Ciência da Computação Faculdade.
SQL – Consultas Aninhadas e Agregação Profa. Sandra de Amo Capitulo 5 – Livro Texto Database Management Systems Ramakrishnan - Gehrke.
Gerenciamento de Arquivos, Páginas e Registros
Mineração de Preferências (a partir de amostras superiores e inferiores) J.Pei et al. KDD 2008 AULA 18 Data Mining Profa. Sandra de Amo.
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Mineração dePreferências Contextuais A. Soulet et al AULA 19 Data Mining Profa. Sandra de Amo.
Método de Acesso Dinâmico - B-Tree AULA 14 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Algoritmos para Operação de Junção AULA 17 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Mestrado em Ciência da Computação 2008
Resolução.
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
Teste em Esquemas de Dados Maria Cláudia Figueiredo Pereira Emer Universidade Federal do Paraná Departamento de Informática Seminário.
Árvores.
Arquivos Seqüenciais Inhaúma Neves Ferraz
EXPRESSÕES ARITMÉTICAS
Artigo: ‘Mining Frequent Patterns without Candidate Generation’
A FAST APRIORI implementation
LCM: na efficient algorithm for enumerating frequent closed item sets T. Uno, T. Asai, H. Arimura Apresentação: Luiz Henrique Longhi Rossi.
Mining Frequent Patterns without Candidate Generation
Classificação e Pesquisa de Dados
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Capítulo 3 - Russell e Norvig
Programação Dinámica Análise de algoritmos UNISUL
II. M o d e l o s d e C o n h e c i m e n t o
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Grafos Árvores Geradoras.
Informática Teórica Engenharia da Computação
Compressão de Textos Juliano Palmieri Lage.
Exercícios PAA- Grafos
Resolução de problemas por meio de busca
6/7/2014 Mestrado em Ciencia da Computacao Otimização da Técnica Apriori Sandra de Amo Data Mining AULA 4.
Geração de Planos de Execução Planos para Consultas Aninhadas
Apresentação Eduardo Figueiredo 05 de Março de 2010 INF62: Informática no Ensino de Física 2Aula 01
Algorítmos e estrutura de dados III
Trie Nuno Campos N.º Nuno Campos - N.º
MODIFICAÇÕES NAS CURVAS CARACTERÍSTICAS
Site: Estatística Prof. Edson Nemer Site:
Avaliação de Clusteres Parte II
Operações de Inserção e Remoção – BTree Resumo
Mineração da Web Recuperação de Informação
CAD na UEFS Angelo Duarte Departamento de Tecnologia UEFS
CONSIDERAÇÕES SOBRE BOMBAS DE FLUXO
Pesquisa Sequencial e Binária
Geração de Código aula-12-geração-de-código.pdf.
Navegação e Controle de Robôs Móveis PLANEJAMENTO DE CAMINHOS.
Busca Combinatorial e Métodos de Heurística
Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Projetos de descobertas de conhecimento em banco de dados e mineração de dados Jacques Robin, Francisco de Assis e Paulo Adeodato CIn-UFPE.
Transcrição da apresentação:

Mineração de Padrões Arborescentes Mestrado em Ciência da Computação Sandra de Amo deamo@ufu.br FACOM - UFU

Algoritmos de Mineração de Arvores Técnica Apriori Myahara et al. [PAKDD 2001] Classes de Equivalência – Busca em Profundidade TreeMiner [M. Zaki, KDD 2002] Sem geração de candidatos – crescimento dos padrões XSpanner, Chopper [Han+, PAKDD 2004] Expansão mais à direita FREQT [Asai et al. ICDM 2002]

Mineração de Árvores – Definições Padrão arborescente sobre um alfabeto  = uma árvore com labels em  Tamanho de um padrão = número de nós do padrão. Banco de dados de árvores = conjunto de árvores 1 = padrão de tamanho 3 1 2

Inclusão de padrão numa árvore Padrão arborescente mergulhado numa árvore de dados 1 1 1 -1 2 -1 n0 1 2 n1 n6 1 2 Padrão arborescente S n2 2 n5 3 Match label = (1,3,4) n3 1 2 n4 Match label = (1,3,5) 0 1 3 1 -1 2 -1 -1 2 -1 -1 2 -1 Árvore T

Suporte e Frequência Suporte de um padrão S com relação a um banco de dados de árvores T | { T em T | S mergulhado em T } | Suporte(S) = | T | Padrão Frequente com relação a um banco de dados de árvores T e um suporte mínimo N, 1 ≥ N > 0 Suporte(S) ≥ N

Exemplo T1 T2 suporte(P) = 0,66 T3 P: 3-padrão n0 n0 n0 1 1 2 n1 n3 n1 5 2 3 n4 n5 1 2 3 n2 n4 n3 2 1 n2 2 4 4 n3 T1 n5 2 T2 n6 3 n0 n7 4 1 suporte(P) = 0,66 n1 n2 T3 2 3 P: 3-padrão

Padrões Equivalentes Padrões possuem o mesmo prefixo de tamanho 4 3 3 3 n1 n1 n1 4 4 4 6 n4 2 4 n3 n3 n2 n3 n2 n2 2 4 7 n4 2 4 1 3 4 2 -1 4 3 4 2 -1 4 -1 -1 -1 6 n4 3 4 2 -1 4 3 4 2 -1 4 1 -1 -1 -1 3 4 2 -1 4 3 4 2 -1 4 -1 7 -1 -1 Padrões possuem o mesmo prefixo de tamanho 4

Como são os elementos de uma classe de equivalência ? Prefixo P comum = 3 4 2 -1 4 n0 3 x 3 4 2-1 4 -1 -1 x -1 n1 4 x n2 2 4 n3 3 4 2 -1 4 -1 x -1 -1 x x 3 4 2 -1 4 x -1 -1 -1 3 4 2 x -1 -1 4 -1 -1

Como caracterizar as posições de extensões válidas ? Nó mais à direita de um nó ni : a última folha da sub-árvore com raiz em ni Escopo(ni) = [i, r], nr = nó mais à direita de ni Nós extensíveis : escopo(ni ) = [i,k-1] k = tamanho do padrão

Exemplo Escopo de n0 = [0,3] Escopo de n1 = [1,3] x 4 x 2 4 n2 n3 x x Padrão S de tamanho k = 4

Exploração do Espaço de Busca Classe A A -1 A K = 3 Classe A B -1 A B Classe B B Classe A A K = 2 A B C K = 1

Ordem dos elementos de uma classe de equivalência 4 3 1 2 n0 n1 n2 x (x,0) n3 n0 3 n1 4 2 4 3 1 2 n0 n1 n2 x (x,1) n3 n2 4 1 n3 Classe do prefixo 3 2 4 -1 1 4 3 1 2 n0 n1 n2 x (x,3) n3 Ordem: (x,0) < (x,1) < (x,3) < (y,0) …

Geração de Candidatos Expansão otimizada equivalentes evita geração de candidatos duplicados evita geração de candidatos não frequentes Prefixo a a a a a a a b b b b b b d d b c c c c 4-padrão frequente 3-padrão frequente 3-padrão frequente equivalentes

Geração de Candidatos Classe de prefixo 1 2 1 2 3 4 4 1 2 (4,2) 4 1 2 (3,1) (4,0) 4 1 2 (4,2) 4 1 2 (4,0) 1 2 3 (3,1) 1 2 3 (3,2) 1 2 3 4 (4,0)

Duplicatas não são geradas Por que (4,0) não junta com (3,1) ? Classe de prefixo 1 2 1 1 2 2 4 3 (4,0) (3,1) 1 1 1 1 2 4 2 4 3 2 4 2 3 3 (4,0) (3,0) (3,0) (3,2)

Geração dos Candidatos Regras de Junção de (x,i) com (y,j) de tamanho k, equivalentes (x,i) junta com (y,j) somente se i ≥ j Se i = j : dois resultados são produzidos (y,i) (y,k) , k = posição do nó x em (x,i) Se i > j : um resultado é produzido (y,j)

Exercicio T3 T1 T2 1. Os padrões T1, T2, T3 são equivalentes ? 4 2 T3 T1 T2 4 1. Os padrões T1, T2, T3 são equivalentes ? 2. Qual o prefixo comum de tamanho 2 ? 3. Dê a notação abreviada de cada padrão (na forma (a,n)) 4. Calcule a classe de equivalência de prefixo T1. 5. Dê a notação de cada padrão gerado de tamanho 3 na forma (a,n).

Cálculo do Suporte Lista de escopos de um padrão: guarda informação suficiente para calcular seu suporte de forma rápida, sem varrer o banco de dados. Banco de dados só é varrido nas iterações 1 e 2 – onde são calculadas listas de escopos de padrões de tamanho 2. Listas de escopos de padrões de tamanho k, k >2 são calculadas a partir da junção das listas de escopos dos padrões de tamanho k-1.

Lista de escopos de um padrão T = banco de dados de árvores P = k-padrão Lista de escopos de P com relação a T = conjunto de triplas (t,m,s): t = Id. de árvore T  T onde P ocorre m = match label da ocorrência do prefixo (k-1) de P s = escopo da ocorrência do último nó de P dentro de T

Exemplo T2 T1 (1, (0,1) , [2,3] ) (3, (0,2) , [6,7] ) T3 n0 n0 2 n0 1 1 n1 n4 n5 n1 1 2 3 n3 n1 n2 3 5 2 3 n3 n2 2 4 n2 2 1 n4 4 n3 T2 T1 n5 2 n6 3 n0 (1, (0,1) , [2,3] ) 1 n7 4 n1 n2 (3, (0,2) , [6,7] ) 2 T3 3 (3, (4,5) , [6,7] ) P: 3-padrão

Junção de listas de escopos 1 n0 Árvore 1 1 2 x y 1 1 n7 n1 2 2 2 y n8 n9 n2 x y P2 P1 x n4 n11 n3 n10 (1, (0,1), [4,6])  L(P1) n6 (1, (0,1), [9,11])  L(P2) n5 (1, (0 1), [4,6] ) X (1, (0,1), [9,11] ) = (1, (0 1 4), [9,11] ) O nó y está fora do escopo do nó x, à direita Y é primo de x, à direita (ambos são descendentes de um mesmo nó) Teste : 6 < 9 Intervalo [4,6] vem antes do intervalo [9,11]

Junção de listas de escopos 1 Árvore 1 n0 1 1 1 n1 2 2 2 2 x x y n2 x P1 P2 n6 y n3 y (1, (0,1), [2,8])  L(P1) n7 n8 (1, (0,1), [3,5])  L(P2) n4 n5 (1, (0 1), [2,8] ) X (1, (0,1), [3,5] ) = (1, (0 1 2), [3,5] ) O nó y está dentro do escopo do nó x y é descendente de x Teste : 2 ≤ 3 e 8 ≥ 5 : intervalo [3,5] ocorre durante intervalo [3,5]

Exercicio n0 n0 1 1 2 n1 n3 n1 n2 n1 3 5 2 3 n4 n5 1 2 3 n3 n2 2 1 n4 n2 2 4 T1 4 n3 T3 T2 n5 2 n6 3 P1 n0 P2 n0 n7 1 4 1 n1 n2 2 3 n2 n1 2 4 1. Calcular listas de escopos de cada padrão com respeito a T1, T2, T3 2. Calcular a lista de escopos dos padrões obtidos combinando-se os padrões L1 e L2 dois a dois.

Exercicio P1 = (3,0) P2 = (4,0) L(P1) = (T1, (01), [2,3]) L(P2) = (T1, (01), [2,3]) (T3, (02), [6,7]) (T3, (45), [7,7]) (T3, (45), [6,7]) (T3, (02), [7,7]) (T2, (12), [3,3]) L(P1) x L(P1) = ɸ L(P1) x L(P2) = [2,3] está dentro de [2,3] , [7,7] está dentro de [6,7] Logo, L(P1) x L(P2) = (T1, (012), [2,3]) (T3, (026), [7,7]) (T3, (456), [7,7]) lista de escopos de padrões compostos de P1 com P2 quando y é descendente de x L(P2) x L(P2) = ɸ L(P2) x L(P1) = ɸ [7,7] não vem antes de [6,7] [7,7] não contém [6,7]

Algoritmo TreeMiner [KDD 2002] TreeMiner(D,minsup) F1= {1- padrões frequentes} F2= {Classes [P] de 2-padrões frequentes} L = vazio For all X em F2 do let L(X) = lista de escopos de X L := L + {L(X)} For all [P] em F2 do Enumera-Freq([P],L);

Algoritmo TreeMiner Enumera-Freq([P],L) [Px] = vazio; Lx = vazio; for each (x,i) em [P] do [Px] = vazio; Lx = vazio; for each (y,j) em [P] do R = Junta((x,i), (y,j)); L(R) = Junta-listas(L(x,i), L(y,j)) R = R – {p in R: p não é frequente} Lx = Lx + { L(r) : r em R } [Px] = [Px] + R Enumera-Freq([Px], Lx)

Exercício Execute o algoritmo TreeMiner no banco de dados {T1,T2,T3} até obter todos os padrões de tamanho 3. Suporte minimo = 2/3

Busca: Largura x Profundidade TreeMinerH : Variante de TreeMiner com busca em largura tipo Apriori A cada iteração todos os padrões candidatos são gerados e seus suportes calculados. A poda de candidatos é importante neste caso. O cálculo do suporte é feito varrendo-se o banco de dados a cada iteração – não se utiliza listas de escopos.

Implementação - Testes Testes em dados reais (logs de navegação) Para suporte ≥ 0,5% TreeMiner é até 2 vezes mais rápido do que TreeMinerH Para suporte 0,25% TreeMiner é 20 vezes mais rápido do que TreeMinerH Implementação: disponível em http://www.cs.rpi.edu/~zaki/software/

Aplicação: Web Mining LOGML [Zaki et al. 2001] Documento LOGML LOGML: aplicação XML para descrição de logs web provenientes de servidores web Expressa o conteúdo dos arquivos de logs de uma forma compactada. Transforma arquivo de logs num documento LOGML Documento LOGML Um grafo principal Sumário de estatisticas (top hosts, n° de bytes acessados, etc) Lista de sessões de usuários (subgrafos do grafo principal) Sessões do usuário : uma ou várias árvores Cada nova URL entrada corresponde a uma nova raiz

Referências M. J. Zaki. “Efficiently mining frequent trees in a forest”, KDD'02