A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING.

Apresentações semelhantes


Apresentação em tema: "Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING."— Transcrição da apresentação:

1 Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING

2 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

3 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 IPM IPM (Recovering Software Requirements from System-user Interaction Traces – SEKE 2002) Utiliza busca em largura Permite erros de inserção IPM2 IPM2 (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)

4 Algoritmo IPM2 – Fases principais Pré-processamento Pré-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 minerados Aná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.

5 Fase de Pré-processamento Um traço de interação normalmente contém repetições 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 não é suportado se o MaxError 4 Padrão é transformado em 4 5 (8) 6 7 Contador do identificador 6 – armazenado em separado

6 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

7 S1 = S2 = α = 2 Geração do conjunto inicial de padrões candidatos de tamanho ; (s1,1,2) 1 5 ; (s1,1,3) 1 6 ; (s1,1,4) ; (s1,2,3) 4 6 ; (s1,2,4) 4 3 ; (s1,2,5)

8 Geração do conjunto inicial de padrões candidatos de tamanho 2 Input: 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 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

9 Exemplo A = {1, 2, 3, 4} S1 = , S2 = , S3 = α = 2, sp = ; (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)

10 Geração de padrões candidatos mais longos Esquema geral 1. Results:= ɸ 2. Para cada id ɛ A 3. 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

11 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 Results2Results3 Results4 Resultados Elimina não maximais

12 p k Expand(p={p 1,p 2,...p k }) 1. ExtResults:= ɸ p k 2. Para cada padrão {p k a} 3. Combina-se p com (p k,a) obtendo novo padrão p3 4. Constrói-se a lista de localizações de p3 5. Se p3 é frequente 6. TempResults:= Expand(p3) 7. ExtResults:= ExtResults U TempResults % testando se p é maximal 8. Se sup(p) > sup(p3) % testando se p é maximal 9. Se |p| comp-min e score(p) minscore 10. Insere p em ExtResults 11. Caso contrário 12. Remove p de ExtResults 13. Se p3 não é frequente 14. Se |p| comp-min e score(p) minscore 15. Insere p em ExtResults

13 Seja erro = k b P1 = (a1,...,an) P2 = (an, b) 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

14 Entre as posições startp1 e endp2 no máximo podemos ter posições para os elementos de P1 e para um número de casas correspondente ao erro máximo... a1 an P1P2... b startp1 endp1= startp2 endp2 Seja erro = k b P1 = (a1,...,an) P2 = (an, b) P1 x P2 = (a1,...,an, b)

15 Exemplo s1 = s2 = ERRO = 2 P1 = (1, 1, 5) P2 = (1, 5, 6) Testando se (1,1,5) pode ser combinado com (1,5,6) para produzir (1,1,6) startp1+ |P1| + erro = = 6 = endp2 Logo (1, 1, 6) pertence a Loc( ) (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 = erro = = 7 < 8 = endp2 Logo (2, 2, 8) não pertence a Loc ( )

16 Exemplo (1,1,3) (1,1,2) (2,4,6) (2,3,5) (2,1,3) (1,3,4) (2,1,2) (1,3,5) (2,3,4) A = {1,2,3,4}, S = {s1,s2}. S1 =, s2 =, compmin= 3, minsup=2, maxError = 1, minscore = 0 (1,2,3) (2,2,3) (1,2,4) (1,4,6) (1,4,5) (2,2,4) (1,5,6)(2,4,6) (2,4,5), (1,1,3) (1,1,4)

17 Exemplo (Continuação) (2,1,3) (1,3,6) (1,3,5) (2,1,4) (1,3,6) Densidade ( ) = 0,86 score( ) = 1,36 (1,3,4) (2,1,2) s1 = s2 =

18 Exemplo (Continuação) (1,3,6) (2,3,6) (1,3,5) (2,3,4) s1 = s2 =

19 Exemplo (Continuação) (1,2,4) (1,2,5) (2,2,4) (1,2,6)(2,2,6) Densidade( ) = 0,80, score( ) = 1,60 (1,2,3) (2,2,3) s1 = s2 =

20 Pós Mineração Identificação de funcionalidades nos padrões minerados Ajuste dos critérios de qualificação – novas execuções de IPM2 Quanto 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.

21 Estudo de caso realizado Sistema legado : LOCIS (Library of Congress Information System 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

22 Referências M. El-Ramly, E. Stroulia, P. Sorenson: From Run-time behavior to Usage Scenarios: An Interaction-Pattern Mining Approach ACM SIGKDD Cypher, A. : Watch What I do: Programming by Demonstration, MIT Press, Cambridge, MA, 1993.Watch What I do: Programming by Demonstration Kapoor, R. Stroulia, E. : Simultaneous Legacy Interface Migration to Multiple Platforms. Proc. 9th Int. Conf. On Human-Computer Interaction., Vol. 1, 51-55, 2001.Simultaneous Legacy Interface Migration to Multiple Platforms


Carregar ppt "Algoritmo IPM2 Interaction Pattern Mining AULA 21 DATA MINING."

Apresentações semelhantes


Anúncios Google