Mineração de Padrões Sequenciais Agrawal, R.; Srikant, R., "Mining sequential patterns," Data Engineering, 1995. 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
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
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
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
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
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
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
Fases Sort Litemset Transformation Sequence Maximal Anderson Santos e Rodrigo Wilkens
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
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
Fases Sort Litemset Transformation Sequence Maximal Anderson Santos e Rodrigo Wilkens
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
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
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
Fases Sort Litemset Transformation Sequence Maximal Anderson Santos e Rodrigo Wilkens
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
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
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
Fases Sort Litemset Transformation Sequence Maximal Anderson Santos e Rodrigo Wilkens
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
Fases Sort Litemset Transformation Sequence Maximal Anderson Santos e Rodrigo Wilkens
Maximal Encontrar a sequência máxima entre os conjuntos de maior sequência. Anderson Santos e Rodrigo Wilkens
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
Fases Sort Litemset Transformation Sequence Maximal Anderson Santos e Rodrigo Wilkens
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
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
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
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
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
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
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
? 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
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
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
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
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
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
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
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
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
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
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 1 2 3 4 1 2 4 3 1 3 4 5 1 3 5 4 Anderson Santos e Rodrigo Wilkens
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
AprioriAll Podando: 3-sequence Suporte 1 2 3 2 1 2 4 1 3 4 3 1 3 5 2 3 4 4-sequence 1 2 3 4 1 2 4 3 1 3 4 5 1 3 5 4 4-sequence 1 2 3 4 Anderson Santos e Rodrigo Wilkens
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
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 1 2 3 4 2 Anderson Santos e Rodrigo Wilkens
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 1 2 3 4 L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5 Anderson Santos e Rodrigo Wilkens
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 1 2 3 4 L2 1 2 1 3 1 4 1 5 2 3 2 4 3 4 3 5 4 5 Anderson Santos e Rodrigo Wilkens
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 2 3 4 1 3 5 Anderson Santos e Rodrigo Wilkens
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 2 3 4 1 3 5 4 5 Anderson Santos e Rodrigo Wilkens
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
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
AprioriSome Heurística hitk =|Lk|/|Ck| hitk < 0,666 k+1 Anderson Santos e Rodrigo Wilkens
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
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
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
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
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 1 2 3 4 1 3 4 5 Anderson Santos e Rodrigo Wilkens
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 1 2 3 4 1 3 4 5 L4 1 2 3 4 Anderson Santos e Rodrigo Wilkens
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 1 2 3 4 C5 Anderson Santos e Rodrigo Wilkens
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 1 2 3 4 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 ...
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 1 2 3 4 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
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 1 2 3 4 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
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 2 3 4 1 3 5 Anderson Santos e Rodrigo Wilkens
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 2 3 4 1 3 5 L1 1 2 3 4 5 Anderson Santos e Rodrigo Wilkens
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 2 3 4 1 3 5 4 5 Anderson Santos e Rodrigo Wilkens
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 2 3 4 1 3 5 4 5 Sub sequências Anderson Santos e Rodrigo Wilkens
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
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
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
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 2 3 4 1 Anderson Santos e Rodrigo Wilkens
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 3 4 5 1 Anderson Santos e Rodrigo Wilkens
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 2 3 4 2 Anderson Santos e Rodrigo Wilkens
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 1 2 3 4 2 1 3 4 5 1 Anderson Santos e Rodrigo Wilkens
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 2 3 4 1 3 5 4 5 Anderson Santos e Rodrigo Wilkens
Performance - Relativa Gerou-se 4 BD com sequências de usuários. Anderson Santos e Rodrigo Wilkens
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
Performance - Escalabilidade Anderson Santos e Rodrigo Wilkens
Performance - Escalabilidade Anderson Santos e Rodrigo Wilkens
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
Performance - Escalabilidade Anderson Santos e Rodrigo Wilkens
Mineração de Padrões Sequenciais Agrawal, R.; Srikant, R., "Mining sequential patterns," Data Engineering, 1995. 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