A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Associação: algoritmos (parte 2) prof. Luis Otavio Alvares INE/UFSC

Apresentações semelhantes


Apresentação em tema: "Associação: algoritmos (parte 2) prof. Luis Otavio Alvares INE/UFSC"— Transcrição da apresentação:

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.


Carregar ppt "Associação: algoritmos (parte 2) prof. Luis Otavio Alvares INE/UFSC"

Apresentações semelhantes


Anúncios Google