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

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

Mineração de Padrões Sequenciais Agrawal, R.; Srikant, R., "Mining sequential patterns," Data Engineering, 1995. Proceedings of the Eleventh International.

Apresentações semelhantes


Apresentação em tema: "Mineração de Padrões Sequenciais Agrawal, R.; Srikant, R., "Mining sequential patterns," Data Engineering, 1995. Proceedings of the Eleventh International."— 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 – 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! 2Anderson Santos e Rodrigo Wilkens

3 MP-Sequenciais Suporte mínimo: – 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 3Anderson Santos e Rodrigo Wilkens

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

5 MP-Sequenciais Definições: – 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)} 5Anderson Santos e Rodrigo Wilkens

6 MP-Sequenciais Problema: 1.Dado uma base de dados D com transações, quais as relações das transações dos clientes com o passar do tempo? 2.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. 6Anderson Santos e Rodrigo Wilkens

7 MP-Sequenciais Suporte – MP: Ocorrência do item número de transações – MP-Sequencial: Número de clientes com a transação número de clientes 7Anderson Santos e Rodrigo Wilkens

8 Fases Sort Litemset Transformation Sequence Maximal 8Anderson 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; 9Anderson Santos e Rodrigo Wilkens

10 Sort ID compradorDataItens 125/03/ /03/ /06/9310, /06/ /06/ /06/9340, 60, /06/9330, 50, /06/ /06/9340, /07/9390 ID compradorDataItens 125/03/ /03/ /06/9310, /06/ /06/9340, 60, /06/9330, 50, /06/ /06/9340, /07/ /06/ Anderson Santos e Rodrigo Wilkens

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

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

13 Litemset – Agrupamento ID compradorDataItens 125/03/ /03/ /06/9310, /06/ /06/9340, 60, /06/9330, 50, /06/ /06/9340, /07/ /06/9390 ID compradorItens 1(30) (90) 2(10, 20) (30) (40, 60, 70) 3(30, 50, 70) 4(30) (40, 70) (90) 5(90) 13Anderson Santos e Rodrigo Wilkens

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

15 Fases Sort Litemset Transformation Sequence Maximal 15Anderson 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: 1.Transformação pelo limite do minSup; (semelhante ao apriori) 2.Mapeamento; 16Anderson Santos e Rodrigo Wilkens

17 Transformation – Limite ID compradorItens 1{(30)} {(90)} 2{(30)} {(40), (70), (40, 70)} 3{(30), (70)} 4{(30)} {(40), (70), (40, 70)} {(90)} 5{(90)} ID compradorItens 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)} Suporte = 25% 17Anderson Santos e Rodrigo Wilkens

18 ID compradorItens 1 {1} {5} 2 {1} {2, 3, 4} 3 {1, 3} 4 {1} {2, 3, 4} {5} 5 {5} Transformation – Mapeamento Mapa ItemSímbolo (30)1 (40)2 (70)3 (40 70)4 (90)5 ID compradorItens 1{(30)} {(90)} 2{(30)} {(40), (70), (40, 70)} 3{(30), (70)} 4{(30)} {(40), (70), (40, 70)} {(90)} 5{(90)} 18Anderson Santos e Rodrigo Wilkens

19 Fases Sort Litemset Transformation Sequence Maximal 19Anderson 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 20Anderson Santos e Rodrigo Wilkens

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

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

23 Maximal l-sequências {1} {5} {1} {2, 3} {1} Mapa ItemSímbolo (30)1 (40)2 (70)3 (40 70)4 (90)5 L-sequências (30) (90) (30) (40 70) 23Anderson Santos e Rodrigo Wilkens

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

25 AprioriAll A cada fase gera as k-sequências grandes 1.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-sequenceSupport Anderson Santos e Rodrigo Wilkens

26 AprioriAll Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco 26Anderson 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: 1-sequenceSupport sequence Anderson Santos e Rodrigo Wilkens

28 AprioriAll Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco 28Anderson 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-sequenceSupport Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 29Anderson Santos e Rodrigo Wilkens

30 AprioriAll Gera os candidatos da próxima fase Poda os candidatos Verifica o suporte mínimo passando pelo banco 30Anderson 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. 31Anderson Santos e Rodrigo Wilkens

32 AprioriAll 2-sequenceSupport ? 32Anderson Santos e Rodrigo Wilkens

33 AprioriAll 2-sequenceSupport ? ? 33Anderson Santos e Rodrigo Wilkens

34 AprioriAll 2-sequenceSupport sequence Anderson Santos e Rodrigo Wilkens

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

36 AprioriAll 3-sequence sequenceSupport Poda as sequências que possuem sub- sequências que não estão em k-1-sequence: 36Anderson Santos e Rodrigo Wilkens

37 AprioriAll 3-sequence sequenceSupport Realizando a podagem 37Anderson Santos e Rodrigo Wilkens

38 AprioriAll 3-sequence 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 Anderson Santos e Rodrigo Wilkens

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

40 AprioriAll Agora sim! Vamos ao banco! 3-sequenceSuporte Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 40Anderson Santos e Rodrigo Wilkens

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

42 AprioriAll Continuando com o exemplo para gerar 4- sequências grandes: 4-sequence sequenceSuporte Anderson Santos e Rodrigo Wilkens

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

44 AprioriAll Podando: 4-sequence sequenceSuporte sequence Anderson Santos e Rodrigo Wilkens

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

46 AprioriAll Contando com o banco: 4-sequenceSuporte Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 46Anderson Santos e Rodrigo Wilkens

47 L4L AprioriAll Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência C3C L2L Máximas Anderson Santos e Rodrigo Wilkens

48 L4L AprioriAll Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L Máximas Sub sequências 48Anderson Santos e Rodrigo Wilkens

49 L4L AprioriAll Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L Máximas Sub sequências 49Anderson Santos e Rodrigo Wilkens

50 L4L AprioriAll Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L2 4 5 Máximas 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; 51Anderson 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. 52Anderson Santos e Rodrigo Wilkens

53 AprioriSome Heurística hit k =|L k |/|C k | – hit k < 0,666 k+1 – hit k < 0,75 k+2 – hit k < 0,80 k+3 – hit k < 0,85 k+4 – hit k 0,85 k+5 53Anderson 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; 54Anderson Santos e Rodrigo Wilkens

55 AprioriSome Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) Passos backward Conta C 1 e cria L 1 Conta C 2 e cria L 2 Gera C 3 Gera a C 4 partir de C 3 Realiza a poda em C 4 e cria L 4 Gera C 5 |C 5 = 1-sequenceSupport Anderson Santos e Rodrigo Wilkens

56 1-sequenceSupport AprioriSome Passos backward Conta C 1 e cria L 1 Conta C 2 e cria L 2 Gera C 3 Gera a C 4 partir de C 3 Realiza a poda em C 4 e cria L 4 Gera C 5 |C 5 = 2-sequenceSupport k = 1 56Anderson Santos e Rodrigo Wilkens

57 2-sequenceSupport AprioriSome Passos backward Conta C 1 e cria L 1 Conta C 2 e cria L 2 Gera C 3 Gera a C 4 partir de C 3 Realiza a poda em C 4 e cria L 4 Gera C 5 |C 5 = C3C f(k) = 2k k = 2 57Anderson Santos e Rodrigo Wilkens

58 C3C AprioriSome Passos backward Conta C 1 e cria L 1 Conta C 2 e cria L 2 Gera C 3 Gera a C 4 partir de C 3 Realiza a poda em C 4 e cria L 4 Gera C 5 |C 5 = C4C Anderson Santos e Rodrigo Wilkens

59 C4C AprioriSome Passos backward Conta C 1 e cria L 1 Conta C 2 e cria L 2 Gera C 3 Gera a C 4 partir de C 3 Realiza a poda em C 4 e cria L 4 Gera C 5 |C 5 = L4L Anderson Santos e Rodrigo Wilkens

60 L4L AprioriSome Passos backward Conta C 1 e cria L 1 Conta C 2 e cria L 2 Gera C 3 Gera a C 4 partir de C 3 Realiza a poda em C 4 e cria L 4 Gera C 5 |C 5 = C5C5 60Anderson Santos e Rodrigo Wilkens

61 L4L AprioriSome Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência C3C L2L Máximas L1L Anderson Santos e Rodrigo Wilkens

62 L4L AprioriSome Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L Máximas Remove por não ter suporte L1L Anderson Santos e Rodrigo Wilkens

63 L4L AprioriSome Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L Máximas Sub sequências L1L Anderson Santos e Rodrigo Wilkens

64 L4L AprioriSome Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L Máximas Anderson Santos e Rodrigo Wilkens

65 L4L AprioriSome Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L Máximas Sub sequências L1L Anderson Santos e Rodrigo Wilkens

66 L4L AprioriSome Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L2 4 5 Máximas L1L Anderson Santos e Rodrigo Wilkens

67 L4L AprioriSome Passos forward Remove as sequências sem suporte mínimo ou que são sub sequência de outra sequência L3L L2L2 4 5 Máximas L1L Sub sequências 67Anderson Santos e Rodrigo Wilkens

68 DynamicSome Definições: – Passo n : 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á C 6 baseado no join de L 3 com L 3, para C 9 é feito o join de L 6 com L 3 (utilizando otf-generate). Intermediate – Seguindo o exemplo acima, serão gerados C 8 e C 7 depois de deletar as sequências não máximas (backward phase), o processo é repetido para C 4 e C 5 (na implementação atual a fase intermediária é mesclada com a fase de retorno (backward) por questões de desempenho – Utiliza o apriori-generate 68Anderson Santos e Rodrigo Wilkens

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

70 DynamicSome Exemplificado: – Utilizando o banco de exemplo anterior. – Passo = 2. O processo: Inicializa como o aprioriall até L 2 2-sequenceSupport Anderson Santos e Rodrigo Wilkens

71 DynamicSome Forward – Pula para geração de C 4. – É encontrado a partir dos dados (usando o otf-generate): SequênciaInícioFim Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 4-sequenceSuporte sequenceSupport Anderson Santos e Rodrigo Wilkens

72 DynamicSome Forward – Pula para geração de C 4. – É encontrado a partir dos dados (usando o otf-generate): L k e L j são L 2. SequênciaInícioFim Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 4-sequenceSuporte sequenceSupport Anderson Santos e Rodrigo Wilkens

73 DynamicSome Forward – Pula para geração de C 4. – É encontrado a partir dos dados (usando o otf-generate): SequênciaInícioFim Base de Dados {1 5} {2} {3} {4}) {1} {3} {4} {3 5}) {1} {2} {3} {4}) {1} {3} {5}) {4} {5}) 4-sequenceSuporte sequenceSupport Anderson Santos e Rodrigo Wilkens

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

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

76 Performance - Relativa Gerou-se 4 BD com sequências de usuários. 76Anderson 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 77Anderson Santos e Rodrigo Wilkens

78 Performance - Escalabilidade 78Anderson Santos e Rodrigo Wilkens

79 Performance - Escalabilidade 79Anderson 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 %) 80Anderson Santos e Rodrigo Wilkens

81 Performance - Escalabilidade 81Anderson 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 Agrawal, R.; Srikant, R., "Mining sequential patterns," Data Engineering, 1995. Proceedings of the Eleventh International."

Apresentações semelhantes


Anúncios Google