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
1. Algoritmo que retorna todos os números
primos aparecendo num conjunto input N.
2. 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 é frequente com relação ao banco de dados de
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 – 8 items per itemset – 8 itemsets 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 representam comportamento 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
u2
u3
IdUser (IP)
p1
p2
p3
t1
t2
t3
Página
< p1, p2, p3, ... >
Tempo
Exemplo – um arquivo de logs
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
Sequências de Páginas Web
Visitadas = Uma sessão
A
1
B
2
3
D
12
O
6
5
C
13
E
U
15
V
11
7
4
14
G
8
10
9
H
W
< A B C D C B E G HG W A O U O V >
Transformação de uma Sessão
Uma sessão
Conjunto de Sequências Maximais
<ABCD> <AB EGH> <ABEGW> <AOU > <AOV >
Arquivo de Logs
Sequências Maximais
Intelligent Miner – Janela
Principal
Mineração
Resultados da Mineração
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.
/
Download

Slides