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

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

Mineração de Padrões Sequenciais

Apresentações semelhantes


Apresentação em tema: "Mineração de Padrões Sequenciais"— Transcrição da apresentação:

1 Mineração de Padrões Sequenciais
Agrawal, R.; Srikant, R., "Mining sequential patterns," Data Engineering, Proceedings of the Eleventh International Conference on , vol., no., pp.3-14, 6-10 Mar 1995 Apresentado por Anderson Santos e Rodrigo Wilkens Descoberta de Conhecimentos de Base de Dados – UFRGS 2009

2 MP-Sequenciais Mineração de Padrões Mineração de Padrões Sequenciais
Quais itens são comprados juntos em um transação? Mineração de Padrões Sequenciais Quais são os itens comprados em sequência, mas em dias diferentes? Sujeira entre sequências! Anderson Santos e Rodrigo Wilkens

3 MP-Sequenciais Suporte mínimo: Comparando
Relativo a quantidade de clientes pelo número de clientes total 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 de clientes total Anderson Santos e Rodrigo Wilkens

4 MP-Sequenciais Problema:
Dado uma base de dados D com transações, quais as relações das transações dos clientes com o passar do tempo? Anderson Santos e Rodrigo Wilkens

5 MP-Sequenciais Definições: Exemplos:
Conjunto de Itens: itens comprados ao mesmo tempo 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)} Anderson Santos e Rodrigo Wilkens

6 MP-Sequenciais Problema:
Dado uma base de dados D com transações, quais as relações das transações dos clientes com o passar do tempo? Dado D, mineração de padrão sequencial é encontrar a sequência máxima entre todas as sequências que tem certo suporte mínimo. Anderson Santos e Rodrigo Wilkens

7 MP-Sequenciais 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 Anderson Santos e Rodrigo Wilkens

8 Fases Sort Litemset Transformation Sequence Maximal
Anderson Santos e Rodrigo Wilkens

9 Sort Ordenar a base de dados por ID do comprador e por data da transação; Realizado de forma simples por um comando SQL; Anderson Santos e Rodrigo Wilkens

10 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 Anderson Santos e Rodrigo Wilkens

11 Fases Sort Litemset Transformation Sequence Maximal
Anderson Santos e Rodrigo Wilkens

12 Litemset Encontrar o conjunto de todos os litemsets. Passos:
Encontrando o conjunto de todas as grandes sequências (powerset das sequências). Passos: Agrupar dados por ID; Geração das sub-transações; Anderson Santos e Rodrigo Wilkens

13 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) Anderson Santos e Rodrigo Wilkens

14 Litemset – Sub-transações
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 {(10)} {(20)} {(10, 20)} {(30)} {(40)} {(60)} {(70)} {(40, 60)} {(40, 70)} {(60, 70)} ... 3 {(30)} {(50)} {(70)} {(30), (50), (30 50)} {(30 50)} {(30), (70), (30 70)} {(30 70)} {(50), (70), (50 70)} {(50 70)} ... 4 {(30)} {(40)} {(70)} {(40 70)} {(40), (70), (40 70)} {(90)} 5 {(90)} Anderson Santos e Rodrigo Wilkens

15 Fases Sort Litemset Transformation Sequence Maximal
Anderson Santos e Rodrigo Wilkens

16 Transformation 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 pelo limite do minSup; (semelhante ao apriori) Mapeamento; Anderson Santos e Rodrigo Wilkens

17 Transformation – Limite
ID comprador Itens 1 {(30)} {(90)} 2 {(10)} {(20)} {(10, 20)} {(30)} {(40)} {(60)} {(70)} {(40, 60)} {(40, 70)} {(60, 70)} ... 3 {(30)} {(50)} {(70)} {(30), (50), (30 50)} {(30 50)} {(30), (70), (30 70)} {(30 70)} {(50), (70), (50 70)} {(50 70)} ... 4 {(30)} {(40)} {(70)} {(40 70)} {(40), (70), (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)} Suporte = 25% Anderson Santos e Rodrigo Wilkens

18 Transformation – 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} Anderson Santos e Rodrigo Wilkens

19 Fases Sort Litemset Transformation Sequence Maximal
Anderson Santos e Rodrigo Wilkens

20 Sequence Usa o conjunto de l-itemsets para encontrar as sequências grandes desejadas. Algoritmos: Cont All Conta todas as l-sequencias, incluindo as não máximas; Ex.: AprioriAll Cont Some Interesse é nas l-sequências máximas, então, não conta sequências que não são contidas em um l-sequência; Ex.: AprioriSome e DynamicSome Anderson Santos e Rodrigo Wilkens

21 Fases Sort Litemset Transformation Sequence Maximal
Anderson Santos e Rodrigo Wilkens

22 Maximal Encontrar a sequência máxima entre os conjuntos de maior sequência. Anderson Santos e Rodrigo Wilkens

23 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) Anderson Santos e Rodrigo Wilkens

24 Fases Sort Litemset Transformation Sequence Maximal
Anderson Santos e Rodrigo Wilkens

25 AprioriAll A cada fase gera as k-sequências grandes
Recebe os dados da fase de transformação para inicializar o 1-sequência Base de exemplo: Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 1-sequence Support 1 4 2 2 3 4 5 Anderson Santos e Rodrigo Wilkens

26 AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco Anderson Santos e Rodrigo Wilkens

27 AprioriAll Continuando com o exemplo para gerar 2-sequências grandes:
Para tal, ele realiza um join com k-1 anterior: 2-sequence 1 2 3 1 5 2 1 3 3 2 5 3 1 4 3 4 5 4 1 5 3 5 2 1 4 1 2 2 4 2 2 3 4 3 2 4 4 5 2 5 5 1 1-sequence Support 1 4 2 2 3 4 5 Anderson Santos e Rodrigo Wilkens

28 AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco Anderson Santos e Rodrigo Wilkens

29 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-sequence Support 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}) Anderson Santos e Rodrigo Wilkens

30 AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco Anderson Santos e Rodrigo Wilkens

31 AprioriAll Continuando com o exemplo para gerar 3-sequências grandes (apriori-generate) : Para tal, ele realiza um join com (k-1)-sequências anterior, considerando as sequências similares Depois poda as sequências geradas baseando-se na lista anterior (k-1)-sequências. Anderson Santos e Rodrigo Wilkens

32 ? AprioriAll 2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3
2 4 3 4 3 5 4 5 ? Anderson Santos e Rodrigo Wilkens

33 AprioriAll 5 2 1 ? 1 2 5 ? 2-sequence Support 1 2 2 1 3 4
1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 1 2 5 ? Anderson Santos e Rodrigo Wilkens

34 AprioriAll 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5
2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 3-sequence 1 2 3 1 4 5 1 2 4 1 5 2 1 2 5 1 5 3 1 3 2 1 5 4 1 3 4 2 3 4 1 3 5 2 4 3 1 4 2 3 4 5 1 4 3 3 5 4 Anderson Santos e Rodrigo Wilkens

35 AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco Anderson Santos e Rodrigo Wilkens

36 AprioriAll Poda as sequências que possuem sub-sequências que não estão em k-1-sequence: 2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 3-sequence 1 2 3 1 4 5 1 2 4 1 5 2 1 2 5 1 5 3 1 3 2 1 5 4 1 3 4 2 3 4 1 3 5 2 4 3 1 4 2 3 4 5 1 4 3 3 5 4 Anderson Santos e Rodrigo Wilkens

37 AprioriAll Realizando a podagem 1 2 2 1 3 4 1 4 3 1 5 2 3
2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 3-sequence 1 2 3 1 4 5 1 2 4 1 5 2 1 2 5 1 5 3 1 3 2 1 5 4 1 3 4 2 3 4 1 3 5 2 4 3 1 4 2 3 4 5 1 4 3 3 5 4 Anderson Santos e Rodrigo Wilkens

38 AprioriAll Se não utilizasse a tática do join, o número de podas seria maior e não seria somente necessário verificar a sub-sequencia final! 3-sequence 1 2 3 1 4 5 1 2 4 1 5 2 1 2 5 1 5 3 1 3 2 1 5 4 1 3 4 2 3 4 1 3 5 2 4 3 1 4 2 3 4 5 1 4 3 3 5 4 3-sequence 1 2 3 1 2 4 1 3 4 1 3 5 1 4 5 2 3 4 3 4 5 Anderson Santos e Rodrigo Wilkens

39 AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco Anderson Santos e Rodrigo Wilkens

40 AprioriAll Agora sim! Vamos ao banco! 3-sequence 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}) Anderson Santos e Rodrigo Wilkens

41 AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco Anderson Santos e Rodrigo Wilkens

42 AprioriAll Continuando com o exemplo para gerar 4-sequências grandes:
3-sequence Suporte 1 2 3 2 1 2 4 1 3 4 3 1 3 5 2 3 4 4-sequence         Anderson Santos e Rodrigo Wilkens

43 AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco Anderson Santos e Rodrigo Wilkens

44 AprioriAll Podando: 3-sequence Suporte 1 2 3 2 1 2 4 1 3 4 3
1 3 5 2 3 4 4-sequence         4-sequence   Anderson Santos e Rodrigo Wilkens

45 AprioriAll Verifica o suporte mínimo passando pelo banco
Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco Anderson Santos e Rodrigo Wilkens

46 AprioriAll Contando com o banco: 4-sequence 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-sequence Suporte   2 Anderson Santos e Rodrigo Wilkens

47 AprioriAll L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou 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 Anderson Santos e Rodrigo Wilkens

48 AprioriAll L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou 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 Anderson Santos e Rodrigo Wilkens

49 AprioriAll L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou 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 Anderson Santos e Rodrigo Wilkens

50 AprioriAll L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3 1 3 5 L2 4 5 Máximas   1 3 5 4 5 Anderson Santos e Rodrigo Wilkens

51 AprioriSome Conta apenas as sequências de tamanho k;
Diminui tempo desperdiçado: Conta sequências não máximas; Conta extensões de pequenas sequências candidatas; Anderson Santos e Rodrigo Wilkens

52 AprioriSome Comportamentos Extremos:
Incremento de K pelo seu sucessor  transforma-se no aprioriAll Incremento por multiplicação extrema  corta as sequências não máximas e as candidatas de tamanho pequeno. Anderson Santos e Rodrigo Wilkens

53 AprioriSome Heurística hitk =|Lk|/|Ck| hitk < 0,666  k+1
Anderson Santos e Rodrigo Wilkens

54 AprioriSome Geração de candidatos: Utiliza o aprioriGenerate forward
Realiza a produção de candidatos Remove as sequências encontradas que não são máximas. backward Conta sequências para tamanhos não contados na fase forward; Remove as sequências contidas em sequências maiores; Anderson Santos e Rodrigo Wilkens

55 AprioriSome Passos backward Conta C1 e cria L1 Conta C2 e cria L2
Gera C3 Gera a C4 partir de C3 Realiza a poda em C4 e cria L4 Gera C5|C5 =  Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 1-sequence Support 1 4 2 2 3 4 5 Anderson Santos e Rodrigo Wilkens

56 AprioriSome Passos backward Conta C1 e cria L1 Conta C2 e cria L2
Gera C3 Gera a C4 partir de C3 Realiza a poda em C4 e cria L4 Gera C5|C5 =  1-sequence Support 1 4 2 2 3 4 5 k = 1 2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 Anderson Santos e Rodrigo Wilkens

57 AprioriSome Passos backward Conta C1 e cria L1 Conta C2 e cria L2
Gera C3 Gera a C4 partir de C3 Realiza a poda em C4 e cria L4 Gera C5|C5 =  2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 f(k) = 2k k = 2 C3 1 2 3 1 2 4 1 3 4 1 3 5 2 3 4 3 4 5 Anderson Santos e Rodrigo Wilkens

58 AprioriSome Passos backward Conta C1 e cria L1 Conta C2 e cria L2
Gera C3 Gera a C4 partir de C3 Realiza a poda em C4 e cria L4 Gera C5|C5 =  C3 1 2 3 1 2 4 1 3 4 1 3 5 2 3 4 3 4 5 C4     Anderson Santos e Rodrigo Wilkens

59 AprioriSome Passos backward Conta C1 e cria L1 Conta C2 e cria L2 C4
Gera C3 Gera a C4 partir de C3 Realiza a poda em C4 e cria L4 Gera C5|C5 =  C4     L4   Anderson Santos e Rodrigo Wilkens

60 AprioriSome Passos backward Conta C1 e cria L1 Conta C2 e cria L2
Gera C3 Gera a C4 partir de C3 Realiza a poda em C4 e cria L4 Gera C5|C5 =  L4   C5 Anderson Santos e Rodrigo Wilkens

61 AprioriSome L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou 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 3 4 5 Máximas   L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5 Anderson Santos e Rodrigo Wilkens L1 ...

62 AprioriSome L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou 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 Máximas   Remove 3 4 5 por não ter suporte L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5 L1 ... Anderson Santos e Rodrigo Wilkens

63 AprioriSome L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou 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 L1 ... Anderson Santos e Rodrigo Wilkens

64 AprioriSome L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou 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 Máximas   1 3 5 Anderson Santos e Rodrigo Wilkens

65 AprioriSome L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou 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 L1 1 2 3 4 5 Anderson Santos e Rodrigo Wilkens

66 AprioriSome L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3 1 3 5 L2 4 5 L1 1 2 3 4 5 Máximas   1 3 5 4 5 Anderson Santos e Rodrigo Wilkens

67 AprioriSome L4 Passos forward 1 2 3 4
Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3 1 3 5 L2 4 5 L1 1 2 3 4 5 Máximas   1 3 5 4 5 Sub sequências Anderson Santos e Rodrigo Wilkens

68 DynamicSome Definições: Fases:
Passon: De quantas em quantas n-sequências irá pular. Fases: Inicialização Realiza a produção de candidatos como aprioriall até a n-sequência (utiliza apriori-generate). Forward Apenas encontra as k-sequências multiplas de n. Ex: Passo = 3, encontrará C6 baseado no join de L3 com L3, para C9 é feito o join de L6 com L3 (utilizando otf-generate). Intermediate Seguindo o exemplo acima, serão gerados C8 e C7 depois de deletar as sequências não máximas (backward phase), o processo é repetido para C4 e C5 (na implementação atual a fase intermediária é mesclada com a fase de retorno (backward) por questões de desempenho Utiliza o apriori-generate Anderson Santos e Rodrigo Wilkens

69 DynamicSome Fases: otf-generate
Argumentos: Lk e Lj e as sequências dos usuários. Realiza o join entre Lk e Lj encontrados dentro de cada sequência de usuário. Anderson Santos e Rodrigo Wilkens

70 DynamicSome Exemplificado: O processo:
Utilizando o banco de exemplo anterior. Passo = 2. O processo: Inicializa como o aprioriall até L2 2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 Anderson Santos e Rodrigo Wilkens

71 DynamicSome Forward Pula para geração de C4.
É encontrado a partir dos dados (usando o otf-generate): Sequência Início Fim 1 2 1 2 1 3 3 1 4 4 2 3 2 4 3 4 Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 4-sequence Suporte   1 Anderson Santos e Rodrigo Wilkens

72 DynamicSome Forward Pula para geração de C4.
É encontrado a partir dos dados (usando o otf-generate): Lk e Lj são L2. Sequência Início Fim 1 3 1 2 3 1 4 4 1 5 3 4 3 5 4 5 2-sequence Support 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}) 4-sequence Suporte   1 Anderson Santos e Rodrigo Wilkens

73 DynamicSome Forward Pula para geração de C4.
É encontrado a partir dos dados (usando o otf-generate): Sequência Início Fim 1 2 1 2 1 3 3 1 4 4 2 3 2 4 3 4 Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 2-sequence Support 1 2 2 1 3 4 1 4 3 1 5 2 3 2 4 3 4 3 5 4 5 4-sequence Suporte   2 Anderson Santos e Rodrigo Wilkens

74 DynamicSome Forward Pula para geração de C4.
É encontrado a partir dos dados (usando o otf-generate): Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 4-sequence Suporte   2   1 Anderson Santos e Rodrigo Wilkens

75 DynamicSome Backward Não são geradas e nem contadas as sequências não máximas de C3: 1 2 3; 1 2 4; 1 3 4; Então somente 1 3 5 é gerado e contada no banco em C3. As 2-sequências não máximas são eliminadas como no AprioriAll e AprioriSome. Gerando o resultado: Máximas   1 3 5 4 5 Anderson Santos e Rodrigo Wilkens

76 Performance - Relativa
Gerou-se 4 BD com sequências de usuários. Anderson Santos e Rodrigo Wilkens

77 Performance - Relativa
Não foi possível mostrar execuções do DynamicSome para suporte menor que 0.2% Devido a geração exagerada de candidatos O DynamicSome obteve o pior desempenho A vantagem do AprioriSome sobre o AprioriAll é devido a não contar sequências não máximas. Para pequenos suportes que geram sequências longas tem-se melhor desempenho com o AprioriSome Anderson Santos e Rodrigo Wilkens

78 Performance - Escalabilidade
Anderson Santos e Rodrigo Wilkens

79 Performance - Escalabilidade
Anderson Santos e Rodrigo Wilkens

80 Performance - Escalabilidade
Aumento de dados (por fatores independentes) Aumento de transações por usuário, mantendo a média de itens por transação Aumento da média de itens por transação mantendo o número de transações por usuário Suporte mínimo fixo pela quantidade de usuários (não pela %) Anderson Santos e Rodrigo Wilkens

81 Performance - Escalabilidade
Anderson Santos e Rodrigo Wilkens

82 Mineração de Padrões Sequenciais
Agrawal, R.; Srikant, R., "Mining sequential patterns," Data Engineering, Proceedings of the Eleventh International Conference on , vol., no., pp.3-14, 6-10 Mar 1995 Apresentado por Anderson Santos e Rodrigo Wilkens Descoberta de Conhecimentos de Base de Dados – UFRGS 2009


Carregar ppt "Mineração de Padrões Sequenciais"

Apresentações semelhantes


Anúncios Google