Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDiego da Silva Back Alterado mais de 6 anos atrás
1
Associação: algoritmos (parte 2) prof. Luis Otavio Alvares INE/UFSC
2
CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets
Utiliza uma representação comprimida do banco de dados usando uma FP-tree Depois da construção da FP-tree utiliza a abordagem de dividir para conquistar para encontrar os conjuntos de itens fechados frequentes
3
FP-Tree FP-Tree é uma estrutura de dados compacta para a mineração eficiente de padrões freqüentes. Considere o seguinte banco de dados transacional (duas primeiras colunas) e suporte = 3: TID Itens Itens Freqüentes (Ordenados p/ frequência) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n
4
FP-Tree - Observações 1. Como somente os itens freqüentes serão importantes na mineração de padrões freqüentes, é necessário realizar uma varredura no banco de dados para identificar o conjunto de itens freqüentes. 2. O armazenamento do conjunto de itens freqüentes em uma estrutura compacta pode evitar varreduras repetidas do banco de dados. 12/05/2018
5
FP-Tree - Observações 3. Se múltiplas transações compartilham um conjunto de itens freqüentes idêntico, eles podem ser agrupados em um único conjunto com o número de ocorrências registrado em uma variável count. É fácil verificar se dois conjuntos são idênticos se os itens freqüentes de todas as transações estão ordenados conforme uma ordem fixada. 12/05/2018
6
FP-Tree - Observações 4. Se duas transações compartilham um prefixo comum, conforme uma ordenação dos itens freqüentes, as partes compartilhadas podem ser agrupadas utilizando uma única estrutura de prefixo, desde que a variável count seja computada corretamente. Se os itens freqüentes estão ordenados de forma decrescente de valores de freqüência, existem melhores chances de que mais prefixos possam ser compartilhados. 12/05/2018
7
FP-Tree - Execução 1. Primeira varredura no banco de dados para obter a lista ordenada L dos itens freqüentes: L = <(f:4), (c:4), (a:3), (b:3), (m:3), (p:3)> TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n
8
FP-Tree - Execução 2. Criação da raiz, nomeada com null. root
TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n 12/05/2018
9
FP-Tree - Execução 3. Nova varredura do BD, transação por transação:
Item Início da lista de nodos f c a b m p root f:1 c:1 a:1 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n m:1 p:1 12/05/2018
10
FP-Tree - Execução 3. Nova varredura do BD, transação por transação:
Item Início da lista de nodos f c a b m p root f:2 c:2 a:2 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n b:1 m:1 m:1 p:1 12/05/2018
11
FP-Tree - Execução 3. Nova varredura do BD, transação por transação:
Item Início da lista de nodos f c a b m p root f:3 b:1 c:2 a:2 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n b:1 m:1 m:1 p:1 12/05/2018
12
FP-Tree - Execução 3. Nova varredura do BD, transação por transação:
Item Início da lista de nodos f c a b m p root c:1 f:3 b:1 b:1 c:2 a:2 p:1 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n b:1 m:1 m:1 p:1 12/05/2018
13
FP-Tree - Execução 3. Nova varredura do BD, transação por transação:
Item Início da lista de nodos f c a b m p root c:1 f:4 b:1 b:1 c:3 a:3 p:1 TID Itens Itens Freqüentes (Ordenados) 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n b:1 m:2 m:1 p:2 12/05/2018
14
FP-Tree - Análise 2 varreduras do banco de dados:
Contar itens frequentes Gerar a FP-tree O custo para inserir uma transação Trans na FP- Tree é O(|Trans|), onde |Trans| é o número de itens freqüentes em Trans. 12/05/2018
15
FP-Tree - Análise Dado um banco de dados transacional DB e um suporte mínimo minSup, sua FP-Tree correspondente contém toda a informação necessária para a mineração de padrões freqüentes no DB (completeness). Sem considerar a raiz, o tamanho de uma FP-Tree é limitado ao total de ocorrências dos itens freqüentes no DB e a altura é limitada pelo maior número de itens freqüentes em uma transação (compactness). Diferentemente do método Apriori-like que pode gerar um número exponencial de candidatos no pior caso, sob nenhuma circunstância uma FP-Tree com um número exponencial de nodos será gerada. 12/05/2018
16
Mineração de Padrões Sequenciais
Agrawal, R.; Srikant, R., "Mining sequential patterns". Proceedings of the Eleventh International Conference on Data Engineering, pp.3-14, 1995
17
MP-Sequenciais Mineração de Padrões Mineração de Padrões Sequenciais
Quais itens são comprados juntos em uma transação? Mineração de Padrões Sequenciais Quais itens são comprados em sequência, mas em ocasiões diferentes?
18
MP-Sequenciais Suporte mínimo: Comparando
Relativo a quantidade de clientes em relação ao número total de clientes Diferente do apriori que considera a quantidade total de transações Comparando MP: Ocorrência do item número de transações MP-Sequencial: Número de clientes com a transação número total de clientes
19
MP-Sequenciais Problema:
Dado uma base de dados D com transações, quais as associações das transações dos clientes com o passar do tempo?
20
MP-Sequenciais Definições: Exemplos:
Conjunto de Itens: itens comprados ao mesmo tempo (na mesma transação) Sequência: sequência de conjuntos de itens Sequência máxima: Não está contida em nenhuma outra sequência. Exemplos: <(3) (4,5) (8)> <(3) (4,5) (8)> está contido em <(7) (3,8) (9) (4,5,6) (8)> A sequência <(3) (5)> não está contida em <(3,5)> Notação: O que está entre parênteses representa uma transação e os números representam os itens comprados. A ordem das transações é da esquerda para a direita
21
Padrões sequenciais (minsup=25%)
MP-Sequenciais Problema: Dada uma base de dados D com transações, quais as associações das transações dos clientes com o passar do tempo? Dado D, mineração de padrão sequencial é encontrar as sequências máximas entre todas as sequências que tem certo suporte mínimo. Ex: comprador Sequencia 1 (30) (90) 2 (10, 20) (30) (40, 60, 70) 3 (30, 50, 70) 4 (30) (40, 70) (90) 5 (90) Padrões sequenciais (minsup=25%) (30) (90) (30) (40, 70)
22
MP-Sequenciais Relembrando o suporte MP: MP-Sequencial:
Ocorrência do item número de transações MP-Sequencial: Número de clientes com a transação número de clientes
23
Fases Sort Litemset Transformação Sequencia Maximal
24
Sort Ordenar a base de dados por ID do comprador e por data da transação; Realizado de forma simples por um comando SQL;
25
Sort ID comprador Data Itens 1 25/03/93 30 30/03/93 90 2 10/06/93
Arquivo original Após o sort ID comprador Data Itens 1 25/03/93 30 30/03/93 90 2 10/06/93 10, 20 5 12/06/93 15/06/93 20/06/93 40, 60, 70 3 25/06/93 30, 50, 70 4 30/06/93 40, 70 25/07/93 ID comprador Data Itens 1 25/03/93 30 30/03/93 90 2 10/06/93 10, 20 15/06/93 20/06/93 40, 60, 70 3 25/06/93 30, 50, 70 4 30/06/93 40, 70 25/07/93 5 12/06/93
26
Fases Sort Litemset Transformação Sequencia Maximal
27
Litemset Encontrar o conjunto de todos os l-itemsets (itemsets frequentes). Passos: Agrupar dados por ID; Gerar itemsets frequentes;
28
Litemset – Agrupamento
ID comprador Data Itens 1 25/03/93 30 30/03/93 90 2 10/06/93 10, 20 15/06/93 20/06/93 40, 60, 70 3 25/06/93 30, 50, 70 4 30/06/93 40, 70 25/07/93 5 12/06/93 ID comprador Itens 1 <(30) (90)> 2 <(10, 20) (30) (40, 60, 70)> 3 <(30, 50, 70)> 4 <(30) (40, 70) (90)> 5 <(90)>
29
Litemset – encontrar os conjuntos frequentes
ID comprador Itens 1 <(30) (90)> 2 <(10,20) (30) (40,60, 70)> 3 <(30, 50, 70)> 4 <(30) (40, 70) (90)> 5 <(90)> Considerando minsup = 2, os conjuntos frequentes são: (30), (40), (70), (90) e (40,70)
30
Fases Sort Litemset Transformação Sequencia Maximal
31
Transformação Em uma transformação de sequência de um comprador:
Cada transação é substituída pelo conjunto de todos os l-itemsets contidos na transação; Passos: Transformação (considera minSup) Mapeamento;
32
Transformação – suporte mínimo
ID comprador Itens 1 <(30) (90)> 2 <(10,20) (30) (40, 60, 70)> 3 <(30, 50, 70)> 4 <(30) (40, 70) (90)> 5 <(90)> ID comprador Itens 1 <{(30)} {(90)}> 2 <{(30)} {(40), (70), (40 , 70)}> 3 <{(30),(70)}> 4 <{(30)} {(40), (70), (40, 70)} {(90)}> 5 <{(90)}>
33
Transformação – Mapeamento
ID comprador Itens 1 <{(30)} {(90)}> 2 <{(30)} {(40), (70), (40 70)}> 3 <{(30), (70)}> 4 <{(30)} {(40), (70), (40 70)} {(90)}> 5 <{(90)}> Mapa Item Símbolo (30) 1 (40) 2 (70) 3 (40 70) 4 (90) 5 ID comprador Itens 1 {1} {5} 2 {1} {2, 3, 4} 3 {1, 3} 4 {1} {2, 3, 4} {5} 5 {5}
34
Fases Sort Litemset Transformação Sequencia Maximal
35
Sequencia Usa o conjunto de l-itemsets para encontrar as sequências máximas desejadas. Conta todas as l-sequencias, incluindo as não máximas; Ex.: AprioriAll
36
Fases Sort Litemset Transformação Sequencia Maximal
37
Maximal Encontrar as sequências máximas entre as sequências frequentes.
38
Maximal l-sequências {1} {5} {1} {2, 3} {1} Mapa Item Símbolo
(30) 1 (40) 2 (70) 3 (40 70) 4 (90) 5 l-sequências (30) (90) (30) (40 70)
39
Exemplo de algoritmo: AprioriAll
A cada fase gera as k-sequências frequentes Recebe os dados da fase de transformação para inicializar o 1-sequência Base de exemplo (diferente da anterior): Suporte mínimo: 2 Base de Dados {1 5} {2} {3} {4} {1} {3} {4} {3 5} {1} {2} {3} {4} {1} {3} {5} {4} {5} 1-sequencia Suporte 1 4 2 2 3 4 5
40
AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco
41
AprioriAll Continuando com o exemplo para gerar
2-sequências frequentes: gera os candidatos 2-sequencia 1 1 2 5 4 4 1 2 3 1 4 5 1 3 3 2 5 1 1 4 3 3 5 2 1 5 3 4 5 3 2 1 3 5 5 4 2 2 4 1 5 5 2 3 4 2 2 4 4 3 1-sequencia Suporte 1 4 2 2 3 4 5
42
AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco
43
AprioriAll Verifica o suporte mínimo para as 2-sequências (Passando pelo banco): Retira as que não possuem o suporte mínimo: 2-sequencia Suporte 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 Base de Dados {1 5} {2} {3} {4} {1} {3} {4} {3 5} {1} {2} {3} {4} {1} {3} {5} {4} {5}
44
AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco
45
AprioriAll Continuando com o exemplo para gerar
3-sequências frequentes , inicialmente gera as 3- sequências candidatas
46
? AprioriAll 2-sequencia Suporte 1 2 2 1 3 4 1 4 3 1 5 2 3
2 4 3 4 3 5 4 5 ?
47
AprioriAll 5 2 1 ? 1 2 5 ? 2-sequencia Suporte 1 2 2 1 3 4
5 2 1 ? 2-sequencia Suporte 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 1 2 5 ?
48
AprioriAll 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5
São candidatas as 3-sequências em que as 3 sequencias de 2 itens que a formam são frequentes Ex: 1 2 3 é candidata porque 1 2, 1 3 e 2 3 são frequentes 2-sequencia Suporte 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 3-sequência 1 2 3 1 2 4 1 3 4 1 3 5 1 4 5 2 3 4 3 4 5
49
AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco
50
AprioriAll Agora sim! Vamos ao banco! 3-sequencia Suporte 1 2 3 2
1 2 4 1 3 4 3 1 3 5 1 4 5 1 2 3 4 3 4 5 Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5})
51
AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco
52
AprioriAll Continuando com o exemplo para gerar 4-sequências frequentes: 3-sequencia Suporte 1 2 3 2 1 2 4 1 3 4 3 1 3 5 2 3 4 4-sequencia
53
AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Verifica o suporte mínimo passando pelo banco
54
AprioriAll Contando com o banco: 4-sequencia Suporte 1 2 3 4 2
Base de Dados {1 5} {2} {3} {4} {1} {3} {4} {3 5} {1} {2} {3} {4} {1} {3} {5} {4} {5} 4-sequencia Suporte 2
55
AprioriAll- sequências máximas
Passos forward Remove as sequências que são sub-sequência de outra sequência C3 1 2 3 1 2 4 1 3 4 1 3 5 2 3 4 Máximas L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5
56
Remove as sequências que são sub-sequência de outra sequência
AprioriAll L4 Passos forward Remove as sequências que são sub-sequência de outra sequência L3 1 2 3 1 2 4 1 3 4 1 3 5 2 3 4 Sub-sequências Máximas L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5
57
Remove as sequências que são sub-sequência de outra sequência
AprioriAll L4 Passos forward Remove as sequências que são sub-sequência de outra sequência L3 1 3 5 L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5 Sub-sequências Máximas 1 3 5
58
Remove as sequências que são sub sequência de outra sequência
AprioriAll L4 Passos forward Remove as sequências que são sub sequência de outra sequência L3 1 3 5 L2 4 5 Máximas 1 3 5 4 5
59
Referências Agrawal, R.; Srikant, R., Mining sequential patterns. Proceedings of the Eleventh International Conference on Data Engineering, pp.3-14, Jiawei Han, Jian Pei, and Yiwen Yin. Mining Frequent Patterns without Candidate Generation , ACM-SIGMOD, 2000. Jian Pei, Jiawei Han e Runying Mao. CLOSET: An Efficient Algorithm for Mining Frequent Closed Itemsets. ACM-SIGMOD DMKD workshop, 2000.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.