200 likes | 319 Views
PrefixSpan e GSP. Correção – Completude – Performance – Escalabilidade. Propriedades de um algoritmo. Seja A um algoritmo que tem como objetivo calcular um conjunto de objetos F F = conjunto de todos os objetos satisfazendo um determinada propriedade P. Exemplos
E N D
PrefixSpan e GSP Correção – Completude –Performance – Escalabilidade
Propriedades de um algoritmo Seja A um algoritmo que tem como objetivo calcular um conjunto de objetos F F = conjunto de todos os objetos satisfazendo um determinada propriedade P. Exemplos • Algoritmo que retorna todos os números primos aparecendo num conjunto input N. • Algoritmo Apriori que retorna todos os itemsets frequentes aparecendo num banco de transações D
Propriedades de um algoritmo • Corretude : Todo output de A satisfaz a propriedade P que caracteriza os elementos de F ? • Completude: Para todo objeto O de F existe uma execução de A que retorna O ?
Como mostrar que GSP é correto ? • Seja s = (I1, I2, ..., In) um padrão sequencial retornado por GSP. • S é frequente ? Prova : Os padrões retornados por GSP são testados na fase do cálculo du suporte que garante que o padrão retornado é frequente.
Como mostrar que PrefixSpan é correto ? • Seja s um padrão sequencial retornado por PrefixSpan • Pergunta: s é frequentecom relação ao banco de dadosde sequências D original dado como input ? • Prova: • s é retornado por PrefixSpan como sendo frequente em relação a um banco de dados projetado D|σ • Neste caso σ é prefixo de s • s é suportado por pelo menos N sequências no banco projetado D|σ • Estas N sequências projetadas são subsequências de sequências do banco de dados original D. • Logo s é suportado por pelo menos N sequências do banco de dados original D. • Portanto, s é frequente com relação a D.
Como mostrar que GSP é completo ? • Seja S um padrão sequencial frequente de tamanho k • S é retornado por GSP ? Prova: por indução sobre k • Base da indução k = 1 : se S é frequente de tamanho 1 então S é retornado na primeira iteração de GSP. • Hipótese de indução : suponhamos que todos os padrões frequentes de tamanho inferior a k são retornados por GSP. Como S = (s1,....,sn) é frequente, então • s’ = S – (primeiro item do primeiro itemset) • s’’ = S – (último item do último itemset) São padrões frequentes de tamanho k-1. Por hipótese de indução, s’ e s’’ são retornados por GSP. Neste caso, s’ e s’’ são retornados na iteração k-1 Portanto, S será gerado na iteração k de GSP, ao se juntar s’ e s’’ obtidos na iteração precedente. Como S é frequente, S será “aprovado” na fase do cálculo do suporte, e portanto será retornado por GSP.
Como mostrar que PrefixSpan é completo ? • Seja S = (s1,...,sn) um padrão sequencial frequente de tamanho k • S é retornado por PrefixSpan ? Prova: por indução sobre k • Base da indução k = 1 : se S é frequente de tamanho 1 então S é retornado na primeira iteração de PrefixSpan • Hipótese de indução : suponhamos que todos os padrões frequentes de tamanho inferior a k são retornados por PrefixSpan • Seja b = último item do último itemset de S • S = α . b • α’ é frequente de tamanho k-1 • Por hipótese de indução, α é retornado por PrefixSpan. • O banco projetado D| αserá considerado em seguida. • S é frequente em D, logo é frequente em D| α • Portanto b é frequente em D| α • Portanto S será obtido expandido-se α com o b e será retornado ao final da etapa D| α
Performance • Pontos positivos de PrefixSpan • Não existe fase de geração de candidatos • Padrões são estendidos com o acrescimo de um item frequente obtido varrendo-se o banco projetado • No caso de GSP, os candidatos são gerados sem levar em conta o banco de dados. Somente após a geração, durante o teste do suporte, o banco de dados é levado em conta. • Os bancos de dados que são varridos são os projetados, que diminuem a cada etapa. • Pontos negativos de PrefixSpan • Construção dos bancos projetados
Estudos comparativos – GSP e PrefixSpan • PC AMD 750MHz, 512 Mb Ram, plataforma Windows 2000, Visual C++ 6.0 • Suporte = 1% PrefixSpan : 6,8 seg GSP : 772,82 seg SPADE: 20 seg • Suporte entre 0.5 e 0.75% : PrefixSpan é 2 a 3 vezes mais perfomante que GSP e Spade.
Performance DB- C10T8S8I8 10k Clients – 8items per itemset – 8itemsets per client (avg). Average pattern: 4 itemsets, 8 items per itemset
Aplicação: Mineração de padrões de navegação na Web (Web Mining) O que faz ? • Extrai padrões que representamcomportamento de navegação na web. Para que ? • Melhorar a arquitetura de um site • Distribuir material publicitário no site de forma optimal
Web Mining Dados: • Arquivo de logs de navegação • Log = sequência de páginas visitadas u1 p1 t1 u2 p2 t2 u3 p3 t3 IdUser (IP) Tempo Página < p1, p2, p3,... >
Mineração de Sequências de Sessões • Dados: Web click-streams (sequências de clicks) • Para cada usuário é associada uma sessão • Uma sessão = sequência de páginas visitadas (tempo inicial – tempo final) Dados: conjunto de sessões Sessões sequência de páginas Páginas items
A 1 12 B O 2 6 14 13 C 5 E U V 3 11 7 4 D G 8 10 9 H W Sequências de Páginas Web Visitadas = Uma sessão 15 B E H G W A O > A B C D C U O V < G
Transformação de uma Sessão Uma sessão Conjunto de Sequências Maximais < A B C D >< A B E G H >< A B E G W >< A O U > < A O V > Arquivo de Logs Sequências Maximais
Referências • Artigos: J. Han, J. Pei, B. Mortazavi-Asl, H. Pinto, U. Dayal: Mining Sequential Patterns by Pattern-Grouwth: The Prefix-Span Approach. IEEE Transactions on Knowledge and Data Engineering, Vol. 16, n. 11, 2004. M.S. Chen, J. S. Park, P.S. Yu : Efficient Data Mining for Path Traversal Patterns. IEEE Transactions on Knowledge Discovery and Data Engineering 10(2), 209-221, Mars 1998. • /