1 / 22

Algoritmo IPM2 Interaction Pattern Mining

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 )

yoland
Download Presentation

Algoritmo IPM2 Interaction Pattern Mining

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 (Recovering Software Requirements from System-user Interaction Traces – SEKE 2002) • Utiliza busca em largura • Permite erros de inserção • 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 • Elimina repetições • 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 • 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 • 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 – 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. Geração do conjunto inicial de padrões candidatos de tamanho 2 1 2 3 4 1 4 ; (s1,1,2) 4 5 ; (s1,2,3) 1 5 ; (s1,1,3) 4 6 ; (s1,2,4) 1 6 ; (s1,1,4) 4 3 ; (s1,2,5) 5 3 5 6 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

  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). • Vec = vetor de tamanho |A| (cada posição i vai armazenar lista de padrões começando por i) • Para cada traço s em S • Para cada i = 1, ..., (|s| - e – 1) • Para j = i + 1, ... , i + e + 1 • Constrói padrão p = (s[i],s[j]) • Se p não está na lista de Vec(s[i]), • insere p nesta lista • Insere (s,i,j) na lista de localizações de p • Para cada id ε A • Varre os padrões de Vec[i] e elimina aqueles com lista de localizações < sp

  9. 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 3 4 2 2 4 ; (1,1,2) 2 3 ; (1,1,3) 2 2 ; (1,1,4) (1,4,5) 3 2 ; (1,3,4) 3 4 ; (1,3,5) 4 3 ; (1,2,3) 4 2 ; (1,2,4) 4 4 ; (1,2,5) 1 2 ; (2,1,2) 1 4 ; (2,1,3) (2,1,4) (2,2,3) (2,2,5) (2,2,4)

  10. Geração de padrões candidatos mais longos Esquema geral • Results:= ɸ • Para cada id ɛ A • Para cada p ɛ Vec(id) • TempResults = Expand(p) • Results:= Results U TempResults • Results:= Results – {p | p não-maximal} • Retorna Results

  11. Geração de padrões candidatos mais longos {1,2} {2,3} {2,5} {3,5} Expand({1,2}) Expand({2,5}) Expand({2,3}) Expand({3,5}) Results4 Results2 Results3 Results1 Elimina não maximais Resultados

  12. Expand(p={p1,p2,...pk}) • ExtResults:= ɸ • Para cada padrão {pk a} • Combina-se p com (pk,a) obtendo novo padrão p3 • Constrói-se a lista de localizações de p3 • Se p3 é frequente • TempResults:= Expand(p3) • ExtResults:= ExtResults U TempResults • Se sup(p) > sup(p3)% testando se p é maximal • Se |p| ≥ comp-min e score(p) ≥ minscore • Insere p em ExtResults • Caso contrário • Remove p de ExtResults • Se p3 não é frequente • Se |p| ≥ comp-min e score(p) ≥ minscore • Insere p em ExtResults

  13. Construção de lista de localização associada a um padrão candidato Seja erro = k 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)

  14. P1 P2 ... a1 ... an b Construção de lista de localização associada a um padrão candidato Seja erro = k P1 = (a1,...,an) P2 = (an, b) P1 x P2 = (a1,...,an, b) endp2 endp1= startp2 startp1 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

  15. Exemplo s1 = 1 3 7 9 11 2 s2 = 2 1 7 9 8 11 4 2 ERRO = 2 P1 = <1, 7, 11 > (1, 1, 5) (2, 2, 6) 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, 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> )

  16. Exemplo 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 1 4 2 3 <3,2> (1,2,3) (2,2,3) <3,3> (1,2,4) (1,4,6) <3,4> (1,4,5) (2,2,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) <4,3> (1,5,6)(2,4,6) <4,1> (2,4,5) <2,3> <3,2> <1,3> <2,4> <3,4> <3,2>, <3,3> <1,3,2> <1,3,3> <1,3,4> (1,1,4) (1,1,3)

  17. Exemplo (Continuação) (1,3,4) (2,1,2) <2,3> <3,2> <3,4> <3,3> s1 = <1,3,2,3,4,3> s2 = <2,3,2,4,1,3> <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

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

  19. Exemplo (Continuação) (1,2,3) (2,2,3) <3,2> <2,4> <2,3> s1 = <1,3,2,3,4,3> s2 = <2,3,2,4,1,3> <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,4> <3,2> <3,3> <3,2,4,3,2> <3,2,4,3,4> <3,2,4,3,3> Densidade(<3,2,4,3>) = 0,80, score(<3,2,4,3>) = 1,60

  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 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

  22. 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.

More Related