Mineração de Padrões Arborescentes Sandra de Amo [email protected] FACOM - UFU Mestrado em Ciência da...

31
Mineração de Padrões Mineração de Padrões Arborescentes Arborescentes Sandra de Amo Sandra de Amo [email protected] [email protected] FACOM - UFU FACOM - UFU Mestrado em Ciência da Computação

Transcript of Mineração de Padrões Arborescentes Sandra de Amo [email protected] FACOM - UFU Mestrado em Ciência da...

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

Mineração de Padrões Mineração de Padrões ArborescentesArborescentes

Sandra de AmoSandra de Amo

[email protected]@ufu.br

FACOM - UFUFACOM - UFU

Mestrado em Ciência da Computação

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

Algoritmos de Mineração de Algoritmos de Mineração de ArvoresArvores

Técnica Apriori Técnica Apriori Myahara et al. [PAKDD 2001]Myahara et al. [PAKDD 2001]

Classes de Equivalência – Busca em Classes de Equivalência – Busca em ProfundidadeProfundidade TreeMiner [M. Zaki, KDD 2002]TreeMiner [M. Zaki, KDD 2002]

Sem geração de candidatos – crescimento dos Sem geração de candidatos – crescimento dos padrõespadrões XSpanner, Chopper [Han+, PAKDD 2004]XSpanner, Chopper [Han+, PAKDD 2004]

Expansão mais à direitaExpansão mais à direita FREQT [Asai et al. ICDM 2002]FREQT [Asai et al. ICDM 2002]

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

Mineração de Mineração de ÁÁrvores – Definiçõesrvores – Definições Padrão arborescentePadrão arborescente sobre um alfabeto sobre um alfabeto = =

uma uma áárvore com labels em rvore com labels em

Tamanho de um padrãoTamanho de um padrão = =

nnúúmero de nmero de nóós do padrão.s do padrão.

Banco de dados de árvoresBanco de dados de árvores = =

conjunto de conjunto de áárvoresrvores

1

1

2

= padrão de tamanho 3

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

Inclusão de padrão numa Inclusão de padrão numa áárvorervore Padrão arborescente Padrão arborescente mergulhadomergulhado numa árvore numa árvore

de dadosde dados

01

2

23

1 2

n0

n1

n2 n5

n6

n3 n4

0 1 3 1 0 1 3 1 -1-1 2 2 -1 -1-1 -1 2 2 -1 -1-1 -1 2 2 -1-1

1

1

2

Match label = (1,3,4)Match label = (1,3,4)

MatchMatch label = (1,3,5)label = (1,3,5)

1 1 -1 2 -1

Árvore T

Padrão arborescente S

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

Suporte e FrequênciaSuporte e Frequência Suporte de um padrãoSuporte de um padrão S com relação a um S com relação a um

banco de dados de banco de dados de áárvores rvores TT

| { T em T T | S mergulhado em T } |

| TT | Suporte(S) = Suporte(S) =

Padrão Frequente Padrão Frequente com relação a um banco de dados de com relação a um banco de dados de áárvores rvores TT e um suporte me um suporte míínimo N, nimo N,

1 1 ≥ ≥ N > 0 N > 0 Suporte(S) Suporte(S) ≥ ≥ NN

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

ExemploExemplo

1

2 3

n0

n1 n2

4 n3

2

1 2

42

n0

n1

n2

n4 3 n5

1

3 5

2

n0

n1

n4

n3

1

2 3

n3

4n7

n2

T1 T2

T3

n5n6

1

2 3

n0

n1 n2

suporte(P) = 0,66

P: 3-padrão P: 3-padrão

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

Padrões Equivalentes Padrões Equivalentes 3

4

42

n1

n2 n3

n0

1 n4

3

4

42

n1

n2 n3

n0

7 n4

3

4

42

n1

n2 n3

n0

6 n4

3 4 2 -1 4 3 4 2 -1 4

3 4 2 -1 4

1 -1 -1 -1 -1 7 -1 -1

-1 -1 -1 6

3 4 2 -1 4 3 4 2 -1 4

3 4 2 -1 4

Padrões possuem o mesmo prefixo de tamanho 4

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

Como são os elementos de uma Como são os elementos de uma classe de equivalência ?classe de equivalência ?

Prefixo P comum = 3 4 2 -1 4

3

4

42

n1

n0

x

x

xx

n3n2

3 4 2 -1 4 x -1 -1 -1

3 4 2 -1 4 -1 x -1 -1

3 4 2-1 4 -1 -1 x -1

3 4 2 x -1 -1 4 -1 -1

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

Como caracterizar as posições de Como caracterizar as posições de extensões válidas ?extensões válidas ?

Nó mais à direita de um nó Nó mais à direita de um nó nnii : a : a úúltima ltima folha da sub-folha da sub-áárvore com raiz em rvore com raiz em nnii

Escopo(Escopo(nnii) = ) = [i, r], [i, r],

nnrr = nó mais à direita de = nó mais à direita de nnii

Nós extensíveis :Nós extensíveis : escopo( escopo(nnii ) = [i,k-1] ) = [i,k-1]

k = tamanho do padrão k = tamanho do padrão

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

ExemploExemplo

3

4

42

n1

n0

x

x

xx

n3n2

Padrão S de tamanho k = 4k = 4

Escopo de Escopo de n0 = [0,3]n0 = [0,3]

Escopo de n1 = [1,3]Escopo de n1 = [1,3]

Escopo de n2 = [2,2]

Escopo de n3 = [3,3]Escopo de n3 = [3,3]

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

Exploração do Espaço de BuscaExploração do Espaço de Busca

A B CK = 1

Classe A B -1A

B

Classe B B

Classe AA

K = 2

Classe A A -1A

A

K = 3

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

Ordem dos elementos de uma Ordem dos elementos de uma classe de equivalênciaclasse de equivalência

4

3

1

42

Classe do prefixo 3 2 4 -1 13 2 4 -1 1

n0

n1

n2

n3

4

3

1

42

n0

n1

n2

x

(x,3)

n3

Ordem:Ordem: (x,0) < (x,1) < (x,3) < (y,0) … (x,0) < (x,1) < (x,3) < (y,0) …

4

3

1

42

n0

n1

n2x

(x,1)

n3

4

3

1

42

n0

n1

n2

x

(x,0)

n3

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

Geração de CandidatosGeração de Candidatos

Expansão otimizadaExpansão otimizada evita geração de candidatos duplicados evita geração de candidatos não frequentes

c

a

c

b

a

b

4-padrão frequente

3-padrãofrequente

c

a

c

b

a

b d

a

b

a

b d

3-padrãofrequente

equivalentesequivalentes

Prefixo

a

b

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

Geração de CandidatosGeração de Candidatos

Classe de prefixo 1 21

2

3

4

1

2

(3,1)

(4,0)

1

2

3

3(3,2)

1

2

3

4

(4,0)

1

2

3 3(3,1)

4

1

2 4

(4,0)

4

1

2

4

(4,2)

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

Duplicatas não são geradasDuplicatas não são geradas

Classe de prefixo 1 21

2

3

4

1

2

(3,1)

4

1

2

33

1

2

(3,2)

(4,0)

Por que (4,0) não junta com (3,1) ?

4

1

2 3

(3,0)(3,0)(4,0)

4

1

2

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

Geração dos CandidatosGeração dos Candidatos

Regras de Junção de (x,i) com (y,j) de Regras de Junção de (x,i) com (y,j) de tamanho k, equivalentestamanho k, equivalentes (x,i) junta com (y,j) somente se i (x,i) junta com (y,j) somente se i ≥≥ j j Se i = j : dois resultados são produzidosSe i = j : dois resultados são produzidos

(y,i) (y,i) (y,k) , k = posição do n(y,k) , k = posição do nóó x em (x,i) x em (x,i)

Se i > j : um resultado é produzidoSe i > j : um resultado é produzido (y,j)(y,j)

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

ExercicioExercicio

1

2 3

1

2 4

1

2

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

T1 T2 T3

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

Cálculo do Suporte Cálculo do Suporte Lista de escopos de um padrãoLista de escopos de um padrão: guarda : guarda

informação suficiente para calcular seu suporte de informação suficiente para calcular seu suporte de forma rforma ráápida, sem varrer o banco de dados.pida, sem varrer o banco de dados.

Banco de dados sBanco de dados sóó é varrido nas iterações 1 e 2 – é varrido nas iterações 1 e 2 – onde são calculadas listas de escopos de padrões onde são calculadas listas de escopos de padrões de tamanho 2.de tamanho 2.

Listas de escopos de padrões de tamanho k, k >2 Listas de escopos de padrões de tamanho k, k >2 são calculadas são calculadas a partir da a partir da junçãojunção das listas de das listas de escoposescopos dos padrões de tamanho k-1. dos padrões de tamanho k-1.

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

Lista de escopos de um padrãoLista de escopos de um padrão

TT = banco de dados de = banco de dados de áárvoresrvores P = k-padrãoP = k-padrão Lista de escopos de P com relação a Lista de escopos de P com relação a T T = =

conjunto de triplas conjunto de triplas (t,m,s):(t,m,s): t t = Id. de = Id. de áárvore T rvore T TT onde P ocorre onde P ocorre mm = match label da ocorrência do prefixo (k-1) = match label da ocorrência do prefixo (k-1)

de Pde P ss = escopo da ocorrência do = escopo da ocorrência do úúltimo nltimo nóó de P de P

dentro de T dentro de T

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

ExemploExemplo

1

2 3

n0

n1 n2

4 n3

2

1 2

42

n0

n1

n2

n4 3 n5

1

3 5

2

n0

n1

n4

n3

1

2 3

n3

4n7

n2

T1T2T2

T3T3

n5n6

1

2 3

n0

n1 n2

P: 3-padrão P: 3-padrão

(1, (0,1) , [2,3] )

(3, (0,2) , [6,7] )

(3, (4,5) , [6,7] )

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

Junção de listas de escoposJunção de listas de escopos1

2

x

y

1

2

1

2

x

y

Árvore 1n0

n1

n2

n3 n4

n5n6

n7

n8 n9

n10n11

(1, (0 1), [4,6][4,6] ) X (1, (0,1), [9,11][9,11] ) = (1, (0 1 44), [9,11][9,11] )

P1 P2

(1, (0,1), [9,11]) L(P2)

(1, (0,1), [4,6]) L(P1)

O nó y está fora do escopofora do escopo do nó x, à direitaY é primo de x, à direita (ambos são descendentes de um mesmo nó)Teste : 6 < 96 < 9 Intervalo [4,6] vem antesantes do intervalo [9,11]

1

2

x

y

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

Junção de listas de escoposJunção de listas de escopos1

2

x y

1

2

1

2

y

Árvore 1n0

n1

n2

n3

n5n4

n6

n8

(1, (0 1), [2,8][2,8] ) X (1, (0,1), [3,5][3,5] ) = (1, (0 1 22), [3,5][3,5] )

P1 P2

(1, (0,1), [3,5]) L(P2)

(1, (0,1), [2,8]) L(P1)

O nó y está dentro do escopodentro do escopo do nó x y é descendente de xTeste : 2 2 ≤≤ 3 e 8 3 e 8 ≥≥ 5 : 5 : intervalo [3,5] ocorre intervalo [3,5] ocorre durantedurante intervalo [3,5] intervalo [3,5]

1

2

x

y

x

n7

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

ExercicioExercicio1

2 3

n0

n1 n2

4 n3

2

1 2

42

n0

n1

n2

n4 3 n5

1

3 5

2

n1

n4

n3

1

2 3

n3

4n7

n2

T1T2 n5

n6

1

2 3

n0

n1 n21

2 4

n0

n1 n2

T3

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.

P1 P2

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

ExercicioExercicioP1 = (3,0) P2 = (4,0)P1 = (3,0) P2 = (4,0) L(P1) = (T1, (01), L(P1) = (T1, (01), [2,3]) L(P2) = (T1, (01), [2,3])[2,3]) L(P2) = (T1, (01), [2,3]) (T3, (02), [6,7]) (T3, (45), [7,7]) (T3, (02), [6,7]) (T3, (45), [7,7]) (T3, (45), [6,7]) (T3, (02), [7,7])(T3, (45), [6,7]) (T3, (02), [7,7]) (T2, (12), [3,3])(T2, (12), [3,3]) L(P1) x L(P1) = L(P1) x L(P1) = ɸɸ L(P1) x L(P2) = L(P1) x L(P2) =

[2,3] est[2,3] está dentro de [2,3] , [7,7] está dentro de [6,7]á dentro de [2,3] , [7,7] está dentro de [6,7] Logo, L(P1) x L(P2) = (T1, (012), [2,3])Logo, L(P1) x L(P2) = (T1, (012), [2,3]) (T3, (026), [7,7])(T3, (026), [7,7]) (T3, (456), [7,7])(T3, (456), [7,7]) lista de escopos de padrões compostos de P1 com P2 quando y lista de escopos de padrões compostos de P1 com P2 quando y é descendente de xé descendente de x

L(P2) x L(P2) L(P2) x L(P2) = = ɸɸ L(P2) x L(P1) =L(P2) x L(P1) = ɸ ɸ

[7,7] não vem antes de [6,7] [7,7] não vem antes de [6,7] [7,7] não contém [6,7][7,7] não contém [6,7]

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

Algoritmo TreeMiner [KDD 2002]Algoritmo TreeMiner [KDD 2002]TreeMiner(D,minsup)TreeMiner(D,minsup)

F1= {1- padrões frequentes}F1= {1- padrões frequentes}

F2= {Classes [P] de 2-padrões frequentes}F2= {Classes [P] de 2-padrões frequentes}

L = vazioL = vazio

For allFor all X em F2 X em F2 dodo

let L(X) = lista de escopos de Xlet L(X) = lista de escopos de X

L := L + {L(X)} L := L + {L(X)}

For allFor all [P] em F2 [P] em F2 do do Enumera-Freq([P],L);Enumera-Freq([P],L);

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

Algoritmo TreeMinerAlgoritmo TreeMinerEnumera-Freq([Enumera-Freq([PP],],LL))

for eachfor each (x,i) em [P] (x,i) em [P] do do [P[Pxx] = vazio;] = vazio; LLx x = vazio;= vazio; for eachfor each (y,j) em [P] (y,j) em [P] dodo R = R = JuntaJunta((x,i), (y,j));((x,i), (y,j));

L(R) L(R) = = Junta-listasJunta-listas(L(x,i), L(y,j)) (L(x,i), L(y,j)) R = R – {p in R: p não é frequente}R = R – {p in R: p não é frequente} LLx x = L= Lx x + { L(r) : r em R }+ { L(r) : r em R }

[P[Pxx] = [P] = [Pxx] + R] + R Enumera-Freq([PEnumera-Freq([Pxx], L], Lxx) )

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

ExercícioExercício

Execute o algoritmo TreeMiner no banco Execute o algoritmo TreeMiner no banco de dados {T1,T2,T3} até obter todos os de dados {T1,T2,T3} até obter todos os padrões de tamanho 3. padrões de tamanho 3.

Suporte minimo = 2Suporte minimo = 2/3/3

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

Busca: Largura x ProfundidadeBusca: Largura x Profundidade

TreeMinerH :TreeMinerH : Variante de TreeMiner Variante de TreeMiner com busca em com busca em larguralargura tipo Apriori tipo Apriori A cada iteração A cada iteração todostodos os padrões candidatos os padrões candidatos

são gerados e seus suportes calculados.são gerados e seus suportes calculados. A poda de candidatos é importante neste A poda de candidatos é importante neste

caso.caso. O cO cáálculo do suporte é feito varrendo-se o lculo do suporte é feito varrendo-se o

banco de dados a cada iteração – não se banco de dados a cada iteração – não se utiliza listas de escopos.utiliza listas de escopos.

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

Implementação - TestesImplementação - Testes Testes em dados reais (logs de navegação) Testes em dados reais (logs de navegação)

Para suporte ≥ 0,5% TreeMiner é até 2 vezes Para suporte ≥ 0,5% TreeMiner é até 2 vezes mais rmais ráápido do que TreeMinerHpido do que TreeMinerH

Para suporte 0,25% TreeMiner é 20 vezes mais Para suporte 0,25% TreeMiner é 20 vezes mais rráápido do que TreeMinerHpido do que TreeMinerH

ImplementaçãoImplementação: dispon: disponível em ível em

http://www.cs.rpi.edu/~zaki/software/http://www.cs.rpi.edu/~zaki/software/

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

Aplicação: Web MiningAplicação: Web Mining LOGML [Zaki et al. 2001]LOGML [Zaki et al. 2001]

LOGML: aplicação XML para descrição de logs web LOGML: aplicação XML para descrição de logs web provenientes de servidores webprovenientes de servidores web

Expressa o conteExpressa o conteúúdo dos arquivos de logs de uma forma do dos arquivos de logs de uma forma compactada.compactada.

Transforma arquivo de logs num documento LOGMLTransforma arquivo de logs num documento LOGML

Documento LOGMLDocumento LOGML1.1. Um grafo principalUm grafo principal2.2. SumSumáário de estatisticas (top hosts, n° de bytes acessados, etc)rio de estatisticas (top hosts, n° de bytes acessados, etc)3.3. Lista de sessões de usuLista de sessões de usuáários (subgrafos do grafo principal)rios (subgrafos do grafo principal)

Sessões do usuSessões do usuáário : uma ou vrio : uma ou váriasárias áárvoresrvores Cada nova URL entrada corresponde a uma nova raizCada nova URL entrada corresponde a uma nova raiz

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

ReferênciasReferências

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