algoritmo ipm2 interaction pattern mining aula 21 data mining

22
Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Upload: internet

Post on 17-Apr-2015

124 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Algoritmo IPM2 Interaction Pattern Mining

AULA 21

DATA MINING

Page 2: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Problema de Mineração de Traços de Interação Dados

Conjunto de traços de interação Um critério de qualificação

C= (comp-min, minsup, maxerror, minscore)

Determinar todos os padrões maximais p satisfazendo o critério de qualificação C |p| ≥ comp-min Sup(p) ≥ minsup com relação a maxerror Score(p) ≥ minscore

Page 3: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Algoritmos IPM (Interaction Pattern Mining) Primeiro algoritmo desenvolvido (Mining System-User Interaction

Traces for Use Case Models – IWPC 2002) Padrões não permitem erros de inserção Técnica Apriori

IPMIPM (Recovering Software Requirements from System-user Interaction Traces – SEKE 2002) Utiliza busca em largura Permite erros de inserção

IPM2IPM2 (From Run-time behavior to Usage Scenarios: An Interaction-Pattern Mining Approach – ACM SIGKDD 2002) Utiliza busca em profundidade Evita multiplas varridas no banco de dados, guardando as listas de

localizações (técnica parecida com a do TreeMiner)

Page 4: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Algoritmo IPM2 – Fases principaisAlgoritmo IPM2 – Fases principais Pré-processamentoPré-processamento

Elimina repetições Descoberta de padrões (Mineração)Descoberta de padrões (Mineração)

Minera os padrões sobre o banco de dados pré-processado que verificam o critério de qualificação especificado pelo usuário

Análise dos padrões mineradosAnálise dos padrões minerados Ajuste no critério de qualificação para identificar padrões de

interação que realmente correspondem a requisitos funcionais do sistema legado.

Quanto mais longos os traços de execução e quanto mais estrito o critério c mais provável que os padrões minerados correspondam a requisitos funcionais do sistema legado real.

Um usuário com conhecimento do dominio da aplicação deve decidir quais dos padrões minerados correspondem a funcionalidades do sistema legado.

Page 5: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Fase de Pré-processamento Um traço de interação normalmente contém repetições

4 5 6 6 6 6 6 6 6 6 7 Usuário acessou diversas vezes consecutivamente a tela 6 (por

exemplo, no software de uma biblioteca, acessou diversas vezes a mesma instância da tela de consulta do catálogo)

Repetições podem impedir que certos padrões interessantes sejam detectados 4 5 6 7 não é suportado se o MaxError ≤ 4

Padrão é transformado em 4 5 (8) 6 7

Contador do identificador 6 – armazenadoem separado

Page 6: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Fase de Mineração Geração do conjunto inicial de padrões candidatos

de tamanho 2 Padrão candidato = satisfaz minsup e maxerror Gerados exaustivamente a partir do banco de dados Listas de localização são produzidas

Geração de padrões candidatos mais longos Junta-se padrões de tamanho k com padrões de tamanho 2 Geração é feita em profundidade no espaço dos padrões.

Construção de lista de localização associada a um padrão candidato

Page 7: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

S1 = 1 4 5 6 3 3 4 5 6 8 1 9 11 23 34 56 32 32 23 35 56 49 32 4 5 3 6

S2 = 2 3 5 6 2 3 3 4 5 8 6 1 9 11 4 34 5 7 8 6 35 56 49 32 4 5 3 6

α = 2

Geração do conjunto inicial de padrões candidatos de tamanho 2

1 2 3

1 4 ; (s1,1,2)1 5 ; (s1,1,3)1 6 ; (s1,1,4)

4

4 5 ; (s1,2,3)4 6 ; (s1,2,4)4 3 ; (s1,2,5)

5 35 6

Page 8: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Geração do conjunto inicial de padrões candidatos de tamanho 2Input: Um alfabeto A, um critério C= (c,sp,e,sc), um conjunto de sequências S

Output: Todos os padrões candidatos de tamanho 2 (frequentes com relação a (sp, e).

1. Vec = vetor de tamanho |A| (cada posição i vai armazenar lista de padrões começando por i)

2. Para cada traço s em S

3. Para cada i = 1, ..., (|s| - e – 1)

4. Para j = i + 1, ... , i + e + 1

5. Constrói padrão p = (s[i],s[j])

6. Se p não está na lista de Vec(s[i]),

7. insere p nesta lista

8. Insere (s,i,j) na lista de localizações de p

9. Para cada id ε A

10. Varre os padrões de Vec[i] e elimina aqueles com lista de localizações < sp

Page 9: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Exemplo A = {1, 2, 3, 4} S1 = 2 4 3 2 4, S2 = 1 2 4 2 3, S3 = 3 2 4 2 4 α = 2 , sp = 2

1 2 3 4

2 4 ; (1,1,2)

2 3 ; (1,1,3)2 2 ; (1,1,4)

4 3 ; (1,2,3)4 2 ; (1,2,4)4 4 ; (1,2,5)

3 2 ; (1,3,4)3 4 ; (1,3,5)

1 2 ; (2,1,2)1 4 ; (2,1,3) (2,2,3)

(2,2,4)

(1,4,5)

(2,2,5)

(2,1,4)

Page 10: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Geração de padrões candidatos mais longosEsquema geral1. Results:= ɸ2. Para cada id ɛ A3. Para cada p ɛ Vec(id)4. TempResults = Expand(p)5. Results:= Results U TempResults 6. Results:= Results – {p | p não-maximal}7. Retorna Results

Page 11: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Geração de padrões candidatos mais longos

{1,2} {2,3} {2,5} {3,5}

Expand({1,2}) Expand({2,3}) Expand({2,5}) Expand({3,5})

Results1 Results2 Results3 Results4

Resultados

Elimina não maximais

Page 12: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Expand(p={p1,p2,...ppkk})1. ExtResults:= ɸ

2. Para cada padrão {ppkk a}3. Combina-se p com (pk,a) obtendo novo padrão p34. Constrói-se a lista de localizações de p35. Se p3 é frequente6. TempResults:= Expand(p3)7. ExtResults:= ExtResults U TempResults8. Se sup(p) > sup(p3) % testando se p é maximal% testando se p é maximal 9. Se |p| ≥ comp-min e score(p) ≥ minscore10. Insere p em ExtResults 11. Caso contrário 12. Remove p de ExtResults13. Se p3 não é frequente14. Se |p| ≥ comp-min e score(p) ≥ minscore15. Insere p em ExtResults

Page 13: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Seja erro = kP1 = (a1,...,an) P2 = (an, bb)P1 x P2 = (a1,...,an, b) (i, startp1, endp1) ɛ Loc(P1) (j, startp2, endp2) ɛ Loc(P2)

i = j endp1 = startp2 endp2 ≤ startp1 + erro + tamanho(P1)

Então : (i, startp1, endp2) ɛ Loc(P1 x P2)

Construção de lista de localização associada a um padrão candidato

Page 14: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Construção de lista de localização associada a um padrão candidato

Entre as posições startp1 e endp2 no máximopodemos ter posições para os elementos de P1 epara um número de casas correspondente ao erro máximo

...a1 an

P1 P2

... b

startp1 endp1= startp2 endp2

Seja erro = kP1 = (a1,...,an) P2 = (an, bb)P1 x P2 = (a1,...,an, b)

Page 15: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Exemplos1 = 1 3 7 9 11 2 s2 = 2 1 7 9 8 11 4 2 ERRO = 2

P1 = <1, 7, 11 > (1, 1, 5)

P2 = < 11, 2 > (1, 5, 6)

Testando se (1,1,5) pode ser combinado com (1,5,6) para produzir (1,1,6)

startp1+ |P1| + erro = 1 + 3 + 2 = 6 = endp2

Logo (1, 1, 6) pertence a Loc(<1,7,11,2>)

(2, 2, 6)

(2, 6, 8)

Testando se (2,2,6) pode ser combinado com (2,6,8) para produzir (2,2,8)

startp1+ |P1| + erro = 2 + 3 + erro = 2 + 3 + 2 = 7 < 8 = endp2

Logo (2, 2, 8) não pertence a Loc (<1, 7, 11, 2> )

Page 16: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Exemplo

1 2 3 4

<1,2> (1,1,3)<1,3> (1,1,2) (2,4,6)

<2,1> (2,3,5)<2,2> (2,1,3)<2,3> (1,3,4) (2,1,2)<2,4> (1,3,5) (2,3,4)

A = {1,2,3,4}, S = {s1,s2}. S1 = <1,3,2,3,4,3>, s2 = <2,3,2,4,1,3>, compmin= 3, minsup=2,maxError = 1, minscore = 0

<3,2> (1,2,3) (2,2,3)<3,3> (1,2,4) (1,4,6)<3,4> (1,4,5) (2,2,4)

<4,3> (1,5,6)(2,4,6)<4,1> (2,4,5)

<1,3> <2,3> <2,4> <3,2>

<3,2>,<3,3>

<3,4>

<1,3,2> <1,3,3> <1,3,4>

(1,1,3) (1,1,4)

Page 17: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Exemplo (Continuação)<2,3>

<3,2><3,3>

<3,4>

<2,3,2>(2,1,3)

<2,3,3>(1,3,6)

<2,3,4>(1,3,5)(2,1,4)

<4,3>

<2,3,4,3>(1,3,6)

Densidade (<2,3,4>) = 0,86 score(<2,3,4>) = 1,36

(1,3,4) (2,1,2)

s1 = <1,3,2,3,4,3>

s2 = <2,3,2,4,1,3>

Page 18: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Exemplo (Continuação)<2,4>

<4,3>

<2,4,3>(1,3,6)(2,3,6)

<2,4,3,2> <2,4,3,3> <2,4,3,4>

<3,4><3,3>

<3,2>

(1,3,5) (2,3,4)

s1 = <1,3,2,3,4,3>

s2 = <2,3,2,4,1,3>

Page 19: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Exemplo (Continuação)<3,2>

<2,3> <2,4>

<3,2,3>(1,2,4)

<3,2,4>(1,2,5)(2,2,4)

<4,3>

<3,2,4,3>(1,2,6)(2,2,6)

<3,2,4,3,2>

<3,2>

<3,2,4,3,3>

<3,3>

<3,2,4,3,4>

<3,4>

Densidade(<3,2,4,3>) = 0,80, score(<3,2,4,3>) = 1,60

(1,2,3) (2,2,3)

s1 = <1,3,2,3,4,3>

s2 = <2,3,2,4,1,3>

Page 20: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Pós MineraçãoIdentificação de funcionalidades nos padrões minerados

Ajuste dos critérios de qualificação – novas execuções de IPM2Quanto mais longos forem os traços de interação e mais estrito o critério de qualificação, maior a possibilidade dos padrões minerados corresponderem a funcionalidades do sistema.

Compactação: remoção de padrões que são subpadrões de outros (minerados) Necessidade de um usuário com conhecimento do domínio da aplicação para

decidir quais dos padrões minerados correspondem efetivamente a cenários de uso, a funcionalidades da interface.

A lista de localização dos padrões dentro dos traços de interação são analisadas a fim de se construir o modelo da funcionalidade correspondente ao padrão minerado.

Page 21: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Estudo de caso realizadoSistema legado : LOCIS (Library of Congress

Information System http://www.loc.gov 4 traços de interação com o mesmo usuário

|s1| = 454, |s2| = 185, |s3| = 369, |s4| = 410 |A| = 26 (26 identificadores de telas) Critério de qualificação (6, 9, 1, 7)

Comp-min = 6, minsup = 9 , maxerror = 1, minscore = 7

Page 22: Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

Referências M. El-Ramly, E. Stroulia, P. Sorenson:

From Run-time behavior to Usage Scenarios: An Interaction-Pattern Mining Approach

ACM SIGKDD 2002. Cypher, A. :

Watch What I do: Programming by Demonstration, MIT Press, Cambridge, MA, 1993.

Kapoor, R. Stroulia, E. : Simultaneous Legacy Interface Migration to Multiple Platforms. Proc. 9th Int. Conf. On Human-Computer Interaction., Vol. 1, 51-55, 2001.