Dado um conjunto de transações, achar regras que prevejam a ocorrência de um item baseado nas ocorrências de outros itens na transação Market-Basket transactions TID Items 1 Bread, Milk 2 Bread, Diaper, Beer, Eggs 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer 5 Bread, Milk, Diaper, Coke Exemplo de Regras de Associação {Diaper} {Beer}, {Milk, Bread} {Eggs,Coke}, {Beer, Bread} {Milk}, Implicação significa co-occurrência, não causalidade!
Conjunto de itens Uma coleção de um ou mais itens Exemplo: {Milk, Bread, Diaper} Conjunto de k itens Um conjunto de itens que contém k itens Contagem de suporte (σ) Freqüência de ocorrência de um conjunto de itens E.g. σ({milk, Bread,Diaper}) = 2 Suporte Fração das transações que contém um conjunto de itens E.g. s({milk, Bread, Diaper}) = 2/5 Conjunto de itens freqüentes Um conjunto de itens cujo suporte é maior ou igual a um limiar minsup TID Items 1 Bread, Milk 2 Bread, Diaper, Beer, Eggs 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer 5 Bread, Milk, Diaper, Coke
Regra de Associação Uma expressão de implicação da forma X Y, em que X e Y são conjuntos de itens Exemplo: {Milk, Diaper} {Beer} Métricas de Avaliação de Regras Suporte Fração das transações que contém tanto X quanto Y Confiança Mede quão freqüentemente itens em Y aparecem em transações que contém X TID Exemplo: Items 1 Bread, Milk 2 Bread, Diaper, Beer, Eggs 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer 5 Bread, Milk, Diaper, Coke { Milk, Diaper} (Milk, Diaper, Beer) s = σ = T σ (Milk,Diaper,Beer) c = = σ (Milk, Diaper) 2 3 2 5 Beer = 0.4 = 0.67
Dado um conjunto de transações T, o objetivo da mineração de regras de associação é encontrar todas as regras que tenham suporte liminar minsup confiança limiar minconf Abordagem de força bruta: Listar todas as possíveis regras de associação Calcular o suporte e confiança para cada regra Podar regras que não atendem aos limiares de minsup e minconf Computacionalmente proibitivo!
TID Items 1 Bread, Milk 2 Bread, Diaper, Beer, Eggs 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer 5 Bread, Milk, Diaper, Coke Exemplo de Regras: {Milk,Diaper} {Beer} (s=0.4, c=0.67) {Milk,Beer} {Diaper} (s=0.4, c=1.0) {Diaper,Beer} {Milk} (s=0.4, c=0.67) {Beer} {Milk,Diaper} (s=0.4, c=0.67) {Diaper} {Milk,Beer} (s=0.4, c=0.5) {Milk} {Diaper,Beer} (s=0.4, c=0.5) Observações: Todas as regras acima são partições binárias do mesmo conjunto de itens: {Milk, Diaper, Beer} Regras originadas do mesmo conjunto de itens tem suporte idêntico mas podem ter confiança diferentes Então, pode-se desacoplar os requisitos de suporte e confiança
Abordagem em dois passos: 1. Geração de Conjuntos de Itens Freqüentes Gerar todos os conjuntos de itens com suporte minsup 2. Geração de Regras Gerar regras com alta confiança a partir de cada conjunto de itens freqüente, em que cada regra é uma partição binária de um conjunto de itens freqüente Geração de conjuntos de itens freqüentes ainda é computacionalmente cara
null A B C D E AB AC AD AE BC BD BE CD CE DE ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE ABCD ABCE ABDE ACDE BCDE ABCDE Dados d itens, há 2 d possíveis conjuntos de itens candidatos
Abordagem por força bruta: Cada conjunto de itens no reticulado é um candidato a conjunto de itens freqüentes Contar o suporte de cada candidato baseado nos dados N Transações TID Items 1 Bread, Milk 2 Bread, Diaper, Beer, Eggs 3 Milk, Diaper, Beer, Coke 4 Bread, Milk, Diaper, Beer 5 Bread, Milk, Diaper, Coke w Lista de Candidatos Avaliar cada transição em relação a cada candidato Complexidade ~ O(NMw) => Caro pois M = 2 d!!! M
!"! Dados d itens únicos: Número total conjuntos de itens = 2 d Número total de possíveis regras de associação: 1 2 3 1 1 1 1 + = = + = = d d d k k d j j k d k d R Se d=6, R = 602 regras
#$ Reduzir o número de candidatos (M) Busca Completa: M = 2 d Usar técnicas de poda para reduzir M Reduzir o número de transações (N) Reduzir tamanho de N conforme crescem o conjuntos de itens Usado por DHP e algoritmos de mineração vertical-based Reduzir o número de comparações (NM) Usar estruturas de dados eficientes para armazenar os candidatos ou transações Sem necessidade de comparar todos os candidatos com todas as transações
% &' Princípio Apriori: Se um conjunto de itens é freqüente, então todos os seus subconjuntos também devem ser freqüentes Princípio Apriori se mantém devido à seguinte propriedade das medidas de suporte: X, Y : ( X Y ) s( X ) s( Y ) Suporte de um conjunto de itens nunca excede o suporte de seus subconjuntos Conhecido como propriedade anti-monótona de suporte
()!! Encontrado como não freqüente Super-conjuntos podados
()!! Item Count Bread 4 Coke 2 Milk 4 Beer 3 Diaper 4 Eggs 1! Itemset Count {Bread,Milk} 3 {Bread,Beer} 2 {Bread,Diaper} 3 {Milk,Beer} 2 {Milk,Diaper} 3 {Beer,Diaper} 3 "# $ % & % & %!' "$ %&%&! Ite m s e t C o u n t {B re a d,m ilk,d ia p e r} 3
! Método: Faça k = 1 Gerar conjuntos de itens freqüentes de tamanho 1 Repetir até não haver novos conjuntos de itens freqüentes Gerar conjuntos de itens candidatos de tamanho (k +1) a partir de conjuntos de itens freqüentes de tamanho k Podar conjuntos de itens candidatos contendo subconjuntos de tamanho k que não são freqüentes Contar o suporte de cada candidato na base de dados Eliminar candidatos que não sejam freqüentes, deixando somente aqueles que são freqüentes
!" Escolha do limiar do suporte mínimo Baixando limiar do suporte resulta em conjuntos de itens mais freqüentes Isto pode aumentar o número de candidatos e o comprimento máximo dos conjuntos de itens freqüentes Dimensionalidade (número de itens) do conjunto de dados É preciso mais espaço para guardar contagem de suporte de cada item Se número de itens freqüentes também aumenta, tanto os custos de cálculo quanto de I/O também podem aumentar Tamanho da base de dados Como Apriori realiza múltiplas passadas, tempo de execução do algoritmo pode aumentar com o número de transações Largura média da transação Largura da transação aumenta em conjuntos de dados mais densos Isto pode aumentar o comprimento máximo dos conjuntos de itens freqüentes e caminho na árvore de hash (número de subconjuntos em uma transação aumenta com sua largura)
!! Alguns conjuntos de itens são redundantes pois tem suporte idêntico ao de seus super-conjuntos TID A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 Número de conjuntos de itens freqüentes É preciso uma representação compacta = 10 = 3 10 k 1 k
" Um conjunto de itens é freqüente máximo se nenhum seu superconjunto imediato é freqüente Conjuntos de itens Máximos Conjuntos de itens nãofreqüentes Fronteira
* Um conjunto de itens é fechado se nenhum de seus super-conjuntos imediatos tem o mesmo suporte que o conjunto de itens TID Itens 1 {A,B} 2 {B,C,D} 3 {A,B,C,D} 4 {A,B,D} 5 {A,B,C,D} Conjunto de itens {A} 4 {B} 5 {C} 3 {D} 4 {A,B} 4 {A,C} 2 {A,D} 3 {B,C} 3 {B,D} 4 {C,D} 3 Suporte Conjunto de itens Suporte {A,B,C} 2 {A,B,D} 3 {A,C,D} 2 {B,C,D} 3 {A,B,C,D} 2
" +* TID Itens 1 ABC 2 ABCD 3 BCE 4 ACDE 5 DE null ID da Transação 124 123 1234 245 345 A B C D E 12 124 24 4 123 2 3 24 34 45 AB AC AD AE BC BD BE CD CE DE 12 2 24 4 4 2 3 4 ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE 2 4 ABCD ABCE ABDE ACDE BCDE Não suportado por qualquer transação ABCDE
" +* Suporte mínimo = 2 null Fechado mas não máximo 124 123 1234 245 345 A B C D E Fechado e máximo 12 124 24 4 123 2 3 24 34 45 AB AC AD AE BC BD BE CD CE DE 12 2 24 4 4 2 3 4 ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE 2 4 ABCD ABCE ABDE ACDE BCDE # Fechado = 9 # Máximo = 4 ABCDE
" +* Conjuntos de Itens Freqüentes Conjuntos de Itens Freqüentes Fechados Conj. Itens Freqüentes Máximo
$ +! Cruzamento do Reticulado do Conjunto de Itens Geral para específico versus Específico para geral Borda dos Conj. Itens Freqüentes nulo nulo Borda dos Conj. Itens Freqüentes nulo............ {a 1,a 2,...,a n } {a 1,a 2,...,a n } Borda dos Conj. Itens Freqüentes {a 1,a 2,...,a n } (a) Geral para específico (b) Específico para geral (c) Bi-direcional
$ +! Cruzamento do Reticulado do Conjunto de Itens Classes Equivalentes null null A B C D A B C D AB AC AD BC BD CD AB AC BC AD BD CD ABC ABD ACD BCD ABC ABD ACD BCD ABCD ABCD (a) Árvore de Prefixos (b) Árvore de Sufixos
$ +! Cruzamento do Reticulado do Conjunto de Itens Largura Primeiro versus Profundidade Primeiro (a) Largura Primeiro (b) Profundidade Primeiro
$ +! Representação da Base de Dados Leiaute horizontal versus vertical dos dados Leiaute Horizontal dos Dados TID Items 1 A,B,E 2 B,C,D 3 C,E 4 A,C,D 5 A,B,C,D 6 A,E 7 A,B 8 A,B,C 9 A,C,D 10 B Leiaute Vertical dos Dados A B C D E 1 1 2 2 1 4 2 3 4 3 5 5 4 5 6 6 7 8 9 7 8 9 8 10 9
Dado um conjunto de itens freqüente L, achar todos os subconjuntos não-vazios f L tal que f L f satisfaz o requisito de confiança mínima Se {A,B,C,D} é um conjuntos de itens freqüente, regras candidatas: ABC D, ABD C, ACD B, BCD A, A BCD, B ACD, C ABD, D ABC AB CD, AC BD, AD BC, BC AD, BD AC, CD AB Se L = k, então há 2 k 2 regras de associação candidatas (ignorando L e L)
Como gerar regras eficientemente a partir de conjuntos de itens freqüentes? Em geral a confiança não tem uma propriedade anti-monótona c(abc D) pode ser maior ou menor que c(ab D) Mas confiança de regras geradas do mesmo conjunto de itens tem uma propriedade de anti-monotonia e.g., L = {A,B,C,D}: c(abc D) c(ab CD) c(a BCD) Confiança é anti-monótona com relação ao número de itens do lado direito da regra
!! Reticulado de regras Regra de Baixa Confiança Regras Podadas
!! Regra candidata é gerada misturando 2 regras que partilham mesmo prefixo no conseqüente da regra join(cd=>ab,bd=>ac) produziria a regra candidata D => ABC CD=>AB BD=>AC Podar regra D=>ABC se seus subconjuntos AD=>BC não tem alta confiança D=>ABC
#, -! Como ajustar o limiar minsup apropriado? Se minsup é ajustado muito alto, pode-se perder conjuntos de itens envolvendo itens raros interessants (e.g., produtos caros) Se minsup é ajustado muito baixo, é caro computacionalmente e o número de conjuntos de itens é muito grande Usando um único limiar mínimo de suporte pode não ser efetivo
+ (. Algoritmos de regras de associação tendem a produzir regras em demasia muitas delas são redundantes ou não interessantes redundante se {A,B,C} {D} e {A,B} {D} tem o mesmo suporte e confiança Medidas de interessabilidade podem ser usadas para podar/ordenar os padrões derivados Na formulação original de regras de associação, suporte e confiança são únicas medidas usadas
!, Medidas de Interessabilidade Padrões Conhecimento Pós-processamento Dados Préprocessados Dados Selecionados Featur Featur e Featur e Featur e Featur Featur e Featur e e Featur e Featur e Featur e e Prod uct uct Prod uct Prod uct Prod uct Prod uct Prod Prod uct Prod uct Prod uct Prod uct Mineração Dados Pré-processamento Seleção
, Dada uma regra X Y, informação necessária para calcular medida de interessabilidade pode ser obtida de tabela de contingência Tabela de Contingência para X Y X X Y f 11 Y f 10 f 01 f 00 f o+ f +1 T f +0 f 1+ f 11 : suporte de X e Y f 10 : suporte de X e Y f 01 : suporte de X e Y f 00 : suporte de X e Y Usada para definir várias medidas suporte, confiança, lift, Gini, J-measure, etc.
+ Coffee Coffee Tea 15 5 20 Tea 75 5 80 90 10 100 ()*+, - -*! -.!/012 -!/03 "-*$# -.!/0312
! /#) População de 1000 estudantes 600 estudantes sabem nadar (S) 700 estudantes sabem andar de bicicleta (B) 420 estudantes sabem nadar e andar de bicicleta (S,B) P(S B) = 420/1000 = 0.42 P(S) P(B) = 0.6 0.7 = 0.42 P(S B) = P(S) P(B) => Independência Estatística P(S B) > P(S) P(B) => Positivamente correlacionados P(S B) < P(S) P(B) => Negativamente correlacionados
, #) Medidas que levam em conta a dependência estatística )] ( )[1 ( )] ( )[1 ( ) ( ) ( ), ( ) ( ) ( ), ( ) ( ) ( ), ( ) ( ) ( Y P Y P X P X P Y P X P Y X P coefficient Y P X P Y X P PS Y P X P Y X P Interest Y P X Y P Lift = = = = φ
#"!01 Coffee Coffee Tea 15 5 20 Tea 75 5 80 90 10 100 ()*+, - -*! -.!/012 -!/03 4-! /0125/03!/067$8
+ 0 2 Y Y Y Y X 10 0 10 X 90 0 90 X 0 90 90 X 0 10 10 10 90 100 90 10 100 0.1 Lift = = 10 0.9 Lift = = 1. 11 (0.1)(0.1) (0.9)(0.9) Independência Estatística: Se P(X,Y) = P(X)P(Y) => Lift = 1
Há muitas medidas propostas na literatura Algumas medidas são boas para certas aplicações, mas não para outras Que critério deve-se usar para saber se uma medida é boa ou ruim? E a poda baseada no suporte no estilo Apriori? Como ela afeta estas medidas?
-,+, Medida Objetiva: Ordenar padrões baseado em estatísticas calculadas a partir dos dados e.g., 21 medidas de associação (suporte, confiança, Laplace, Gini, informação mútua, Jaccard, etc). Medida Subjetiva: Ordenar padrões de acordo com interpretação do usuário Um padrão é subjetivamente interessante se ele contradiz a expectativa de um usuário (Silberschatz & Tuzhilin) Um padrão é subjetivamente interessante se ela é utilizável (Silberschatz & Tuzhilin)
10,)3 Como aplicar a formulação de análise de associação a variáveis binárias não-assimétricas? Session Id Country Session Length (sec) Number of Web Pages viewed Gender Browser Type Buy 1 USA 982 8 Male IE No 2 China 811 10 Female Netscape No 3 USA 2125 45 Female Mozilla Yes 4 Germany 596 4 Male IE Yes 5 Australia 123 9 Male Mozilla No Exemplo de Regra de Associação: {Number of Pages [5,10) (Browser=Mozilla)} {Buy = No}
!,3 Transformar atributos categóricos em variáveis binárias assimétricas Introduzir um novo item para cada par atributovalor distinto Exemplo: substituir o atributo Browser Type por Browser Type = Internet Explorer Browser Type = Mozilla Browser Type = Mozilla
!,3 Questões potenciais Se o atributo tem muitos valores possíveis Exemplo: atributo país tem mais de 200 valores possíveis Muitos dos valores do atributo pode ter suporte muito baixo Solução potencial: Agregar valores de atributo de baixo suporte Se a distribuição dos valores do atributo é muito irregular Exemplo: 95% dos visitantes tem Buy = No Maioria dos itens será associada com o item (Buy=No) Solução potencial: abandonar os itens altamente freqüentes
!,) Diferentes tipos de regras: Age [21, 35) Salary [70k, 120k) Buy Salary [70k, 120k) Buy Age: µ = 28, σ = 4 Diferentes métodos: Baseados em discretização Baseados em estatística Baseados em não-discretização minapriori
!,) Usar discretização Não supervisionada: Faixa de igual largura Faixa de igual profundidade Agrupamento Supervisionada: Valores do atributo, v Classe v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 Anomalous 0 0 20 10 20 0 0 0 0 Normal 150 100 0 0 0 100 100 150 100 faixa 1 faixa 2 faixa 3
4.,% Tamanho dos intervalos discretizados afeta suporte e confiança {Refund = No, (Income = $51,250)} {Cheat = No} {Refund = No, (60K Income 80K)} {Cheat = No} {Refund = No, (0K Income 1B)} {Cheat = No} Intervalos muito pequenos pode não ter suporte suficiente Intervalos muito grandes pode não ter confiança suficiente Solução potencial: usar todos intervalos possíveis
4.,% Tempo de execução Se intervalo contém n valores, há em média O(n 2 ) faixas possíveis Regras em demasia {Refund = No, (Income = $51,250)} {Cheat = No} {Refund = No, (51K Income 52K)} {Cheat = No} {Refund = No, (50K Income 60K)} {Cheat = No}
$, #) Exemplo: Browser=Mozilla Buy=Yes Age: µ = 23 Conseqüente da regra consiste de uma variável contínua, caracterizada pelas suas estatísticas média, mediana, desvio padrão, etc. Abordagem: Separa a variável meta do resto dos dados Aplicar geração de conjuntos de itens freqüentes sobre o resto dos dados Para cada conjunto de itens freqüentes, calcular a estatística descritiva para a correspondente variável meta Conjunto de itens freqüentes torna-se uma regra pela introdução da variável meta como conseqüente da regra Aplicar testes estatísticos para determinar a interessabilidade da regra
$, #) Como determinar se uma regra de associação é interessante? Comparar a estatística para segmento da população coberto pela regra versus segmento da população não coberto pela regra: A B: µ versus A B: µ Teste de hipótese estatístico: Hipótese nula: H0: µ = µ + Hipótese alternativa: H1: µ > µ + Z tem média zero e variância 1 sob a hipótese nula Z µ ' µ = 2 2 s1 s2 + n n 1 2
$, #) Exemplo: r: Browser = Mozilla Buy = Yes Age: µ = 23 Regra é interessante se diferença entre µ e µ é maior que 5 anos (i.e., = 5) Para r, suponha n 1 = 50, s 1 = 3.5 Para r (complemento): n 2 = 250, s 2 = 6.5 Z = µ ' µ s n 2 1 1 + s n 2 2 2 = 30 23 5 2 2 3.5 6.5 + 50 250 = 3.11 Para teste unilateral com nível de confiança de 95%, valor crítico de Z para rejeitar a hipótese nula é 1.64 Como Z é maior que 1.64, r é uma regra interessante
5)+ Food Electronics Bread Milk Computers Home Wheat White Skim 2% Desktop Laptop Accessory TV DVD Foremost Kemps Printer Scanner
5)+ Por quê incorporar o conceito de hierarquia? Regras de níveis inferiores podem não ter suporte suficiente para aparecer em conjuntos de itens freqüentes Regras em níveis inferiores da hierarquia são específicas em demasia e.g., skim milk white bread, 2% milk wheat bread, skim milk wheat bread, etc. são indicativos da associação entre milk e bread
5)+ Como suporte e confiança variam ao longo do conceito de hierarquia? Se X é o item pai tanto para X 1 e X 2, então σ(x) σ(x 1 ) + σ(x 2 ) Se σ(x 1 Y 1 ) minsup, e X é pai de X 1, Y é pai de Y 1 então σ(x Y 1 ) minsup, σ(x 1 Y) minsup σ(x Y) minsup Se conf(x 1 Y 1 ) minconf, então conf(x 1 Y) minconf
5)+ Abordagem 1: Estender a formulação de regras de associação atuais pelo aumento de cada transição com com itens de nível superior Transação Original: {skim milk, wheat bread} Transação Aumentada: {skim milk, wheat bread, milk, bread, food} Questões: Itens que residem em níveis superiores tem contagem de suporte muito mais elevados se o limiar do suporte é baixo, padrões freqüentes em demasia envolvendo itens de níveis superiores Dimensionalidade dos dados aumentada
5)+ Abordagem 2: Gerar padrões freqüentes no nível mais superior primeiramente Então, gerar padrões freqüentes no próximo nível mais superior e assim por diante Questões: Requisitos de I/O aumentam dramaticamente pois é preciso realizar mais passagens sobre os dados Pode perder alguns padrões de associação entre níveis potencialmente interessantes
- Base de Dados Seqüenciais Linha Temporal 10 15 20 25 30 35 Objeto Timestamp Eventos A 10 2, 3, 5 A 20 6, 1 A 23 1 B 11 4, 5, 6 B 17 2 B 21 7, 8, 1, 2 B 28 1, 6 C 14 1, 8, 7 Objeto A: Objeto B: 2 3 5 4 5 6 6 1 2 7 8 1 2 1 1 6 Objeto C: 1 7 8
#"! - Base de Dados Seqüenciais Seqüência Elemento (Transação) Evento (Item) Cliente História de compra de um dado cliente Conjunto de itens comprados por um cliente no momento t Livros, produtos diários, CDs, etc Dados da Web Atividade de um visitante particular na Web Uma coleção de arquivos vistos por um visitante após um único clique Home page, índice da página, informação de contato, etc Dados de Eventos História de eventos gerados por um dado sensor Eventos disparados por um sensor no momento t Tipos de alarmes gerados pelos sensores Seqüência Genômica Seqüência de DNA de um tipo particular Um elemento da seqüência de DNA Bases A,T,G,C *+ 9:; '
-/ Uma seqüência é uma lista ordenada de elementos (transações) s = < e 1 e 2 e 3 > Cada elemento contém uma coleção de eventos (itens) e i = {i 1, i 2,, i k } Cada elemento é atribuído a um tempo ou a um local específico Comprimento de uma seqüência, s, é dado pelo número de elementos da seqüência Uma k-seqüência é uma seqüência que contém k eventos (itens)
#"! -/ Seqüência Web: < {Homepage} {Electronics} {Digital Cameras} {Canon Digital Camera} {Shopping Cart} {Order Confirmation} {Return to Shopping} > Seqüência de eventos iniciadores causando um acidente nuclear em 3-mile Island: (http://stellar-one.com/nuclear/staff_reports/summary_soe_the_initiating_event.htm) < {clogged resin} {outlet valve closure} {loss of feedwater} {condenser polisher outlet valve shut} {booster pumps trip} {main waterpump trips} {main turbine trips} {reactor pressure increases}> Seqüência de livros devolvidos na biblioteca: <{Fellowship of the Ring} {The Two Towers} {Return of the King}>
-,/ Uma seqüência <a 1 a 2 a n > está contida em outra seqüência <b 1 b 2 b m > (mn) se existem inteiros i 1 < i 2 < < i n tal que a 1 b i1, a 2 b i1,, a n b in Seqüência de Dados < {2,4} {3,5,6} {8} > < {1,2} {3,4} > < {2,4} {2,4} {2,5} > Subseqüência < {2} {3,5} > < {1} {2} > < {2} {4} > Contém? Sim Não Sim O suporte de uma subseqüência w é definido como a fração de dados seqüenciais que contém w Um padrão seqüencial é uma subseqüência freqüente (i.e., uma subseqüência cujo suporte éminsup)
(.- Dados: Uma base de dados de seqüências Um limiar de suporte mínimo especificado pelo usuário, minsup Tarefa: Encontrar todas as subseqüências com suporte minsup
(.- Dada uma seqüência: <{a b} {c d e} {f} {g h i}> Exemplos de subseqüências: <{a} {c d} {f} {g} >, < {c d e} >, < {b} {g} >, etc. Quantas k-subseqüências podem ser extraídas de uma dada n-seqüência? <{a b} {c d e} {f} {g h i}> n = 9 k=4: Y Y Y _ Y <{a} {d e} {i}> Resposta : n 9 = k 4 = 126
(.-#"! Objeto Timestamp Eventos A 1 1,2,4 A 2 2,3 A 3 5 B 1 1,2 B 2 2,3,4 C 1 1, 2 C 2 2,3,4 C 3 2,4,5 D 1 2 D 2 3, 4 D 3 4, 5 E 1 1, 3 E 2 2, 4, 5 Minsup = 50% Exemplos de Subseqüências Freqüentes: < {1,2} > s=60% < {2,3} > s=60% < {2,4}> s=80% < {3} {5}> s=80% < {1} {2} > s=80% < {2} {2} > s=60% < {1} {2,3} > s=60% < {2} {2,3} > s=60% < {1,2} {2,3} > s=60%
#" (.- Dados n eventos: i 1, i 2, i 3,, i n 1-subseqüências candidatas: <{i 1 }>, <{i 2 }>, <{i 3 }>,, <{i n }> 2-subseqüências candidatas: <{i 1, i 2 }>, <{i 1, i 3 }>,, <{i 1 } {i 1 }>, <{i 1 } {i 2 }>,, <{i n-1 } {i n }> 3-subseqüências candidatas: <{i 1, i 2, i 3 }>, <{i 1, i 2, i 4 }>,, <{i 1, i 2 } {i 1 }>, <{i 1, i 2 } {i 2 }>,, <{i 1 } {i 1, i 2 }>, <{i 1 } {i 1, i 3 }>,, <{i 1 } {i 1 } {i 1 }>, <{i 1 } {i 1 } {i 2 }>,
% -( 6-(7 Passo 1: Realizar primeira passagem sobre a base de dados de seqüências D para obter todas as seqüências freqüentes de 1-elemento Passo 2: Repetir até não encontrar novas seqüências freqüentes Geração de Candidatos: Unir pares de subseqüências freqüentes encontradas no (k-1)-ésimo passo para gerar seqüências candidatas que contém k itens Poda de Candidatos: Podar k-seqüências de candidatos que contém (k-1)-subseqüências não freqüentes Contagem de Suporte: Fazer nova passagem sobre a base de dados de seqüência D para encontrar o suporte para estas seqüências candidatas Eliminação de Candidatos: Eliminar k-seqüências candidatas cujo suporte atual é menor que minsup
Caso base (k=2): Unir duas 1-seqüência freqüentes <{i 1 }> e <{i 2 }> produzirá duas 2- seqüências candidatas: <{i 1 } {i 2 }> e <{i 1 i 2 }> Caso geral (k>2): Uma (k-1)-seqüência freqüente w 1 é unida com outra (k-1)- seqüência freqüente w 2 para produzir uma k-seqüência candidata se a subseqüência obtida pela remoção do primeiro evento em w 1 é a mesma que a subseqüência obtida pela remoção do último evento em w 2 O candidato resultante após união é dado pela seqüência w 1 estendida com o último evento de w 2. Se os dois últimos eventos em w 2 pertencem ao mesmo elemento, então o último evento em w 2 torna-se parte do último elemento em w 1 Caso contrário, o último evento em w 2 torna-se um elemento separado adicionado ao final de w 1
#"! Unindo as seqüências w 1 =<{1} {2 3} {4}> e w 2 =<{2 3} {4 5}> produzirá a seqüência candidata < {1} {2 3} {4 5}> pois os dois últimos eventos em w 2 (4 e 5) pertencem ao mesmo elemento Unindo as seqüências w 1 =<{1} {2 3} {4}> e w 2 =<{2 3} {4} {5}> produzirá a seqüência candidata < {1} {2 3} {4} {5}> pois os dois últimos eventos em w 2 (4 e 5) não pertencem ao mesmo elemento Não é necessário unir as seqüências w 1 =<{1} {2 6} {4}> e w 2 =<{1} {2} {4 5}> para produzir o candidato < {1} {2 6} {4 5}> pois se este último é um candidato viável, então ele pode ser obtido unindo w 1 com < {1} {2 6} {5}>
#"!-( 3-seqüências freqüentes < {1} {2} {3} > < {1} {2 5} > < {1} {5} {3} > < {2} {3} {4} > < {2 5} {3} > < {3} {4} {5} > < {5} {3 4} > Geração de Candidatos < {1} {2} {3} {4} > < {1} {2 5} {3} > < {1} {5} {3 4} > < {2} {3} {4} {5} > < {2 5} {3 4} > Poda de Candidatos < {1} {2 5} {3} >
.!67 {A B} {C} {D E} <= x g >n g x g : max-gap n g : min-gap <= m s m s : maximum span x g = 2, n g = 0, m s = 4 Seqüência de Dados < {2,4} {3,5,6} {4,7} {4,5} {8} > < {1} {2} {3} {4} {5}> < {1} {2,3} {3,4} {4,5}> < {1,2} {3} {2,3} {3,4} {2,4} {4,5}> Subseqüência < {6} {5} > < {1} {4} > < {2} {3} {5} > < {1,2} {5} > Contém? Sim Não Sim Não
(.-.! Abordagem 1: Minerar padrões seqüenciais sem restrições temporais Pós-processar os padrões descobertos Abordagem 2: Modificar GSP para podar diretamente candidatos que violam restrições temporais Questão: O princípio Apriori continua válido?
()!!! - Objeto Timestamp Eventos A 1 1,2,4 A 2 2,3 A 3 5 B 1 1,2 B 2 2,3,4 C 1 1, 2 C 2 2,3,4 C 3 2,4,5 D 1 2 D 2 3, 4 D 3 4, 5 E 1 1, 3 E 2 2, 4, 5 Suponha: x g = 1 (max-gap) n g = 0 (min-gap) m s = 5 (maximum span) minsup = 60% <{2} {5}> suporte = 40% mas <{2} {3} {5}> suporte = 60% Existe problema devido à restrição max-gap Sem problema se max-gap é infinito
-,/) s é uma subseqüência contígua de w = <e 1 >< e 2 > < e k > se qualquer destas condições acontecer: 1. s é obtida de w deletando um item de e 1 ou de e k 2. s é obtida de w deletando um item de qualquer elemento e i que contém mais de 2 itens 3. s é uma subseqüência contígua de s e s é uma subseqüência contígua de w (definição recursiva) Exemplos: s = < {1} {2} > é uma subseqüência contígua de < {1} {2 3}>, < {1 2} {2} {3}>, e < {3 4} {1 2} {2 3} {4} > não é uma subseqüência contígua de < {1} {3} {2}> e < {2} {1} {3} {2}>
( ( Sem restrição maxgap: Uma k-seqüência candidata é podada se pelo menos uma de suas (k-1)-subseqüências não é freqüente Com restrição maxgap: Uma k-seqüencia candidata é podada se pelo menos uma de suas (k-1)-subseqüências contíguas não é freqüente
.!67 {A B} {C} {D E} <= x g >n g <= ws <= m s x g : max-gap n g : min-gap ws: window size m s : maximum span x g = 2, n g = 0, ws = 1, m s = 5 Seqüência de Dados < {2,4} {3,5,6} {4,7} {4,6} {8} > < {1} {2} {3} {4} {5}> < {1,2} {2,3} {3,4} {4,5}> Subseqüência < {3} {5} > < {1,2} {3} > < {1,2} {3,4} > Contém? Não Sim Sim
( -! Dado um padrão candidato: <{a, c}> Qualquer seqüência de dados que contém < {a c} >, < {a} {c} > ( em que time({c}) time({a}) ws) < {c} {a} > (em que time({a}) time({c}) ws) contribuirá para a contagem do suporte do padrão candidato
8 Em alguns domínios, pode-se ter somente uma série temporal muito longa Exemplo: monitoramento de eventos de tráfego de rede para ataques monitoramento de sinais de alarme de telecomunicação Objetivo é encontrar seqüências freqüentes de eventos na série temporal Este problema também é conhecido como mineração de episódios freqüentes E1 E3 E1 E1 E2 E4 E1 E2 E1 E2 E4 E2 E3 E4 E2 E3 E5 E2 E3 E5 E2 E3 E1 Padrão: <E1> <E3>
# -! Linha Temporal do Objeto p p p p p q q q q q 1 2 3 4 5 6 7 Seqüência: (p) (q) Método Contagem do Suporte COBJ 1 CWIN 6 CMINWIN 4 Assume: x g = 2 (max-gap) n g = 0 (min-gap) ws = 0 (tamanho janela) m s = 2 (maximum span) CDIST_O 8 CDIST 5