prefixspan e gsp correção – completude – performance – escalabilidade

20
PrefixSpan e GSP PrefixSpan e GSP Correção – Completude – Correção – Completude – Performance – Performance – Escalabilidade Escalabilidade

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

PrefixSpan e GSPPrefixSpan e GSP

Correção – Completude –Correção – Completude –Performance – EscalabilidadePerformance – Escalabilidade

Page 2: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Propriedades de um algoritmoPropriedades de um algoritmo

Seja Seja AA um algoritmo que tem como objetivo um algoritmo que tem como objetivo calcular um conjunto de objetos Fcalcular um conjunto de objetos F

F =F = conjunto de todos os objetos satisfazendo um conjunto de todos os objetos satisfazendo um determinada propriedade P.determinada propriedade P.

ExemplosExemplos1.1. Algoritmo que retorna todos os números Algoritmo que retorna todos os números

primos aparecendo num conjunto input N.primos aparecendo num conjunto input N.2.2. Algoritmo Apriori que retorna todos os itemsets Algoritmo Apriori que retorna todos os itemsets

frequentes aparecendo num banco de frequentes aparecendo num banco de transações Dtransações D

Page 3: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Propriedades de um algoritmoPropriedades de um algoritmo

Corretude :Corretude : Todo output de A satisfaz a Todo output de A satisfaz a propriedade P que caracteriza os propriedade P que caracteriza os elementos de F ?elementos de F ?

Completude:Completude: Para todo objeto O de F Para todo objeto O de F existe uma execução de A que retorna existe uma execução de A que retorna O ?O ?

Page 4: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Como mostrar que GSP é correto ?Como mostrar que GSP é correto ?

Seja s = (I1, I2, ..., In) um padrão Seja s = (I1, I2, ..., In) um padrão sequencial retornado por GSP.sequencial retornado por GSP.

S é frequente ?S é frequente ?

Prova :Prova : Os padrões retornados por GSP são Os padrões retornados por GSP são testados na fase do cálculo du suporte testados na fase do cálculo du suporte que garante que o padrão retornado é que garante que o padrão retornado é frequente.frequente.

Page 5: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Como mostrar que PrefixSpan é Como mostrar que PrefixSpan é correto ?correto ?

Seja Seja ss um padrão sequencial retornado por PrefixSpan um padrão sequencial retornado por PrefixSpan

Pergunta: Pergunta: ss é é frequentefrequente com relação ao banco de dadoscom relação ao banco de dados de de sequências D sequências D originaloriginal dado como input ? dado como input ?

Prova: Prova: ss é retornado por PrefixSpan como sendo frequente em relação a um é retornado por PrefixSpan como sendo frequente em relação a um

banco de dados projetado D|banco de dados projetado D|σσ Neste caso Neste caso σσ é prefixo de s é prefixo de s ss é suportado por pelo menos N sequências no banco projetado D| é suportado por pelo menos N sequências no banco projetado D|σσ Estas N sequências projetadas são subsequências de sequências do Estas N sequências projetadas são subsequências de sequências do

banco de dados original D.banco de dados original D. Logo s é suportado por pelo menos N sequências do banco de dados Logo s é suportado por pelo menos N sequências do banco de dados

original D.original D. Portanto, Portanto, s é frequente com relação a Ds é frequente com relação a D..

Page 6: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Como mostrar que GSP é completo Como mostrar que GSP é completo ??

Seja S um padrão sequencial frequente de tamanho kSeja S um padrão sequencial frequente de tamanho kS é retornado por GSP ?S é retornado por GSP ?

Prova: por indução sobre kProva: por indução sobre k Base da indução k = 1 :Base da indução k = 1 : se S é frequente de tamanho 1 então S é se S é frequente de tamanho 1 então S é

retornado na primeira iteração de GSP.retornado na primeira iteração de GSP. Hipótese de indução :Hipótese de indução : suponhamos que todos os padrões frequentes de suponhamos que todos os padrões frequentes de

tamanho inferior a k são retornados por GSP.tamanho inferior a k são retornados por GSP. Como S = (s1,....,sn) é frequente, então Como S = (s1,....,sn) é frequente, então

s’ = S – (primeiro item do primeiro itemset)s’ = S – (primeiro item do primeiro itemset)s’’ = S – (último item do último itemset)s’’ = S – (último item do último itemset)

São padrões frequentes de tamanho k-1.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’’ 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-1são retornados na iteração k-1Portanto, S será gerado na iteração k de GSP, ao se juntar s’ e s’’ obtidos na Portanto, S será gerado na iteração k de GSP, ao se juntar s’ e s’’ obtidos na

iteração precedente.iteração precedente.Como S é frequente, S será “aprovado” na fase do cálculo do suporte, e Como S é frequente, S será “aprovado” na fase do cálculo do suporte, e

portanto será retornado por GSP.portanto será retornado por GSP.

Page 7: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Como mostrar que PrefixSpan é Como mostrar que PrefixSpan é completo ?completo ?

Seja S = (s1,...,sn) um padrão sequencial frequente de tamanho kSeja S = (s1,...,sn) um padrão sequencial frequente de tamanho kS é retornado por PrefixSpan ?S é retornado por PrefixSpan ?

Prova: por indução sobre kProva: por indução sobre k Base da indução k = 1 :Base da indução k = 1 : se S é frequente de tamanho 1 então S é se S é frequente de tamanho 1 então S é

retornado na primeira iteração de PrefixSpanretornado na primeira iteração de PrefixSpan Hipótese de indução :Hipótese de indução : suponhamos que todos os padrões frequentes de suponhamos que todos os padrões frequentes de

tamanho inferior a k são retornados por PrefixSpantamanho inferior a k são retornados por PrefixSpanSeja Seja bb = último item do último itemset de S = último item do último itemset de SS = S = αα . . bb αα’ é frequente de tamanho k-1’ é frequente de tamanho k-1Por hipótese de indução, Por hipótese de indução, αα é retornado por PrefixSpan é retornado por PrefixSpan. . O banco projetado D| O banco projetado D| αα será considerado em seguida.será considerado em seguida.S é frequente em D, logo é frequente em D| S é frequente em D, logo é frequente em D| αα Portanto b é frequente em D| Portanto b é frequente em D| αα Portanto S será obtido expandido-se Portanto S será obtido expandido-se αα com o com o bb e será retornado ao final da e será retornado ao final da etapa D| etapa D| αα

Page 8: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Performance Performance

Pontos positivos de PrefixSpanPontos positivos de PrefixSpan Não existe fase de geração de candidatosNão existe fase de geração de candidatos Padrões são estendidos com o acrescimo de um item Padrões são estendidos com o acrescimo de um item

frequente obtido varrendo-se o banco projetadofrequente obtido varrendo-se o banco projetado No caso de GSP, os candidatos são gerados sem No caso de GSP, os candidatos são gerados sem

levar em conta o banco de dados. Somente após a levar em conta o banco de dados. Somente após a geração, durante o teste do suporte, o banco de geração, durante o teste do suporte, o banco de dados é levado em conta.dados é levado em conta.

Os bancos de dados que são varridos são os Os bancos de dados que são varridos são os projetados, que diminuem a cada etapa.projetados, que diminuem a cada etapa.

Pontos negativos de PrefixSpanPontos negativos de PrefixSpan Construção dos bancos projetadosConstrução dos bancos projetados

Page 9: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Estudos comparativos – GSP e Estudos comparativos – GSP e PrefixSpanPrefixSpan

PC AMD 750MHz, 512 Mb Ram, PC AMD 750MHz, 512 Mb Ram, plataforma Windows 2000, Visual C++ 6.0plataforma Windows 2000, Visual C++ 6.0Suporte = 1%Suporte = 1%

PrefixSpan : 6,8 segPrefixSpan : 6,8 seg GSP : 772,82 segGSP : 772,82 seg SPADE: 20 segSPADE: 20 seg

Suporte entre 0.5 e 0.75% : PrefixSpan é Suporte entre 0.5 e 0.75% : PrefixSpan é 2 a 3 vezes mais perfomante que GSP e 2 a 3 vezes mais perfomante que GSP e Spade.Spade.

Page 10: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Performance DB- C10T8S8I8Performance DB- C10T8S8I8

10k Clients – 8 items per itemset – 8 itemsets per client (avg). Average patternAverage pattern: 4 itemsets, 8 items per itemset

Page 11: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Aplicação: Mineração de Aplicação: Mineração de padrões de navegação na Web padrões de navegação na Web

(Web Mining)(Web Mining)O que faz ? O que faz ?

Extrai padrões que reprExtrai padrões que representamesentam comportamento de comportamento de navegaçãonavegação na web. na web.

Para que ?Para que ?

Melhorar a arquitetura de um siteMelhorar a arquitetura de um site

Distribuir material publicitário no site de forma optimalDistribuir material publicitário no site de forma optimal

Page 12: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Web MiningWeb Mining

Dados: Dados: Arquivo de logs de navegaçãoArquivo de logs de navegação Log = sequência de pLog = sequência de páginas visitadaságinas visitadas

uu11 p p1 1 t t11

uu22 p p22 t t22

uu33 p p33 t t33

IdUser (IP)IdUser (IP) PáginaPágina TempoTempo

< p1, p2, p3, ... >

Page 13: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Exemplo – um arquivo de logsExemplo – um arquivo de logs

Page 14: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Mineração de SMineração de Seequências de quências de SessõesSessões

• Dados: Web click-streams (sequências de clicks)

• Para cada usuário é associada uma sessãosessão

• Uma sessãosessão = sequência de páginas visitadas (tempo inicial – tempo final)

Dados: conjunto de sessõesSessões sequência de páginasPáginas items

Page 15: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

SSeequências de Pquências de Páginaságinas Web Web VisitVisitadasadas = Uma sessão = Uma sessão

B O

A

C

D

E

G

H W

U V

1

2

4

35

6

7

8

910

11

12

1314 15

< A B C D EBC G WH AG O U O V >

Page 16: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Transformação de uma SessãoTransformação de uma Sessão

Conjunto de Sequências MaximaisMaximais

< < A B C D >A B C D > < A B E G H >< A B E G H > < A B E G W >< A B E G W > < A O U >< A O U > < A O V >

Arquivo de Logs Sequências Maximais

Uma sessão

Page 17: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

Intelligent Miner – Janela Intelligent Miner – Janela PrincipalPrincipal

Page 18: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

MineraçãoMineração

Page 19: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

RReesultados da Mineraçãosultados da Mineração

Page 20: PrefixSpan e GSP Correção – Completude – Performance – Escalabilidade

ReferênciasReferências

Artigos:Artigos:

J. Han, J. Pei, B. Mortazavi-Asl, H. Pinto, U. Dayal: J. Han, J. Pei, B. Mortazavi-Asl, H. Pinto, U. Dayal: Mining Sequential Mining Sequential

Patterns by Pattern-Grouwth: The Prefix-SpanPatterns by Pattern-Grouwth: The Prefix-Span Approach. IEEE Approach. IEEE

Transactions on Knowledge and Data Engineering, Vol. 16, n. 11, Transactions on Knowledge and Data Engineering, Vol. 16, n. 11,

2004.2004.

M.S. Chen,  J. S. Park, P.S. Yu : M.S. Chen,  J. S. Park, P.S. Yu : Efficient Data Mining for Path Efficient Data Mining for Path Traversal PatternsTraversal Patterns.. IEEE Transactions on Knowledge Discovery and IEEE Transactions on Knowledge Discovery and Data Engineering 10(2), 209-221, Mars 1998. Data Engineering 10(2), 209-221, Mars 1998.

//