Mineração de Dados Temporais Introdução Data Mining Sandra de Amo 05/11/2015 Pós-graduação em Ciência da Computação 2012 1 Mineração de Dados Temporais Fator tempo é importante ! • {Leite, Manteiga} só é frequente nas compras feitas entre 7:00 e 9:00. • A confiança da regra {Queijo Vinho} é alta nos finais de semana (comportamento cíclico). • A confiança da regra de associação Escolaridade = Superior Partido = PT vem decaindo nos últimos 10 anos. • Clientes que compram ipod frequentemente compram base para ipod depois de um mes da compra do ipod. 5-Nov-15 Escola de Verão - USP - São Carlos 2010 2 Panorama Geral : Dados Simbólicos versus Séries Temporais Dados simbólicos: elementos que evoluem no tempo são representados por símbolos. – Artigos comprados por um cliente ao longo do tempo: ipod, rádio, computador, base de ipod,... – Sintomas apresentados por um paciente ao longo do tratamento: febre, náusea, tontura,... – Eventos de uma linha de montagem: troca de turnos de funcionário, falha na execução da tarefa, congestionamento da linha,... 5-Nov-15 Escola de Verão - USP - São Carlos 2010 3 Panorama Geral : Dados Simbólicos versus Séries Temporais Dados numéricos (séries temporais): – Cotações de uma determinada ação ao longo do ano de 2009. – Temperaturas registradas numa determinada região no século XX. – Indice pluviométrico de uma determinada região do planeta na década de 90. – Colheita obtida (em toneladas) de um determinado cereal, numa determinada região, na década de 2000 a 2009. 5-Nov-15 Escola de Verão - USP - São Carlos 2010 4 Dados numéricos x Dados simbólicos S = (1, 4.5, 6, 2, 2.4, 7.1, 4, 2.4, 1, 4.8, 5.8, 1.8, 2.5, 7.2, 2, 2.4) dado Domínio dos valores dos dados é estruturado: totalmente ordenado 1 5-Nov-15 2 3 4 5 6 7 8 9 10 Escola de Verão - USP - São Carlos 2010 11 12 13 14 15 16 tempo 5 Série temporal: representação gráfica Permite utilizar técnicas de análise matemática e estatistica para detecção de formatos (shapes) especificos que se repetem com frequência ao longo do gráfico 5-Nov-15 Escola de Verão - USP - São Carlos 2010 6 Problemas tratados neste curso : Mineração de Padrões Temporais 1. Mineração de Regras de Associação Temporais 2. Mineração de Dados Sequenciais (simbólicos) 3. Mineração de Séries Temporais 05/11/2015 Pós-graduação em Ciência da Computação 2012 7 Um outro problema de Mineração Temporal = Classificação Temporal Dado: um conjunto de sequências (amostras de treinamento) [ (a1,...,an), classe 1] [ (b1,...,bn), classe 2] .... [ (z1,...,zn), classe 1] Objetivo: produzir um modelo de classificação sequência não classificada sequência classificada Aplicações As principais aplicações: dados são sequências numéricas ou sequências de vetores numéricos. • gestos – sequência de imagens = sequência de vetores numéricos – Objetivo: classificar um gesto em uma determinada classe: gesto de adeus, gesto de acolhida (“hello !”), gesto de dúvida, etc. • fala – sequência de fonemas (sinais sonoros) – Objetivo: transcrever sequências de sinais sonoros em sua representação escrita. • assinatura manual – sequência de coordenadas de pontos (x,y) no plano desenhadas por usuários num dispositivo (tábua) digital. – Objetivo: associar a uma dada assinatura manual um nome de usuário. Problema de Mineração de Regras Temporais Cíclicas [Özden et al 1998] • Base de dados = uma única sequência longa de itemsets D1, D2, …, Dn,… Di = conjunto das compras realizadas por clientes no instante i (unidade de tempo = hora, dia, semana, mes, …) – Clientes não são identificados 05/11/2015 Pós-graduação em Ciência da Computação 2012 10 Problema de Mineração de Regras Temporais Cíclicas • Padrão Temporal : Regra de Associação Cíclica – Regra X Y, onde X e Y são itemsets – XY tem bom suporte e boa confiança em certos instantes i que ocorrem periodicamente. – Exemplo: café pão-com-manteiga • tem boa confiança entre 7 e 9 da manhã. • Padrão se repete a cada 24 horas. 05/11/2015 Pós-graduação em Ciência da Computação 2012 11 Exemplo Suporte mínimo = 40% Confiança minima = 50 % 1 {a,b} {a,c,b} {c,b,a,d} {c,a} {b,d} Suporte = 3/5 Confiança = 3/4 2 {a,c,b} {d,c} {b,c,d} {c,b} {d,e} Suporte = 1/5 Confiança = 100% 3 {a,b} {a,c} {c,b,d} {d,b} {a,d,b} Suporte = 2/5 Confiança = 2/3 X 4 {a,c,e} {a,c} {a,e,c,d} {a,f,b} {b,d} Suporte = 1/5 Confiança = 1/4 X Regra : a b 05/11/2015 Pós-graduação em Ciência da Computação 2012 12 Conceitos de Base • Ciclo = (p,m) – p = período – m = offset = instante a partir do qual o padrão começa a se repetir periodicamente, 0 ≤ m < p • Regra de Associação Cíclica – (X Y, ciclo) – Medidas de Interesse : Suporte , Confiança (3,1) (3,2) (3,0) 1 0 05/11/2015 3 5 6 7 8 2 4 Como são os instantes i que fazem parte de um ciclo (p,m) ? i = m + kp, k = 0,1,… isto é : m = i mod p Pós-graduação em Ciência da Computação 2012 13 Formulação do Problema Mineração de Regras de Associação Cíclicas • Entrada – Uma sequência D0, ..., Dn-1 onde Di = conjunto de itemsets – Lmin > 0 , Lmax > 0 – α = nível mínimo de suporte – β = nível mínimo de confiança • Saída: Todas as regras de associação cíclicas (r,(p,m)) tais que : – Lmin ≤ p ≤ Lmax – Para todo i = j.p, e m ≤ i ≤ n-1, tem-se que • suporte(r) ≥ A e confiança(r) ≥ B em Di 05/11/2015 Pós-graduação em Ciência da Computação 2012 14 Algoritmo Sequencial • Fase 1: Encontra as regras Para cada instante i, aplica algoritmo Apriori (ou outro mais eficiente) e encontra todas as regras de associação X Y com suporte e confiança acima dos limites mínimos, com relação ao banco de transações Di Apriori é aplicado m vezes, onde m = comprimento da sequência D 05/11/2015 Pós-graduação em Ciência da Computação 2012 15 Algoritmo Sequencial • Armazenamento das regras em formato sequencial Para cada regra de associação r é associada uma sequência de bits de tamanho n (0 0 1 0 1 0 1 0 0 0 1 1 ... 1) 0 na posição i = a regra r não é boa em Di 1 na posição i = a regra r é boa em Di 05/11/2015 Pós-graduação em Ciência da Computação 2012 16 Algoritmo Sequencial • Fase 2: Detecta os ciclos Para cada sequência de bits S = (s1,s2, ... , sn) – C := conjunto de todos os ciclos, ciclo = (p,m), Lmin ≤ p ≤ Lmax, 0 ≤ m < p – Etapa 2.1 Para cada i = 0,...,n Se si = 0 : elimina de C todos os ciclos (p,m) Lmin ≤ p ≤ Lmax e m = i mod p – Etapa 2.2 Se C é não vazio: elimina ciclos inúteis - Para Lmin ≤ p ≤ Lmax - Para k = 0, ..., p-1 Se (p,k) ∈ C : elimina de C todos os ciclos (p.j, m) tais que k = m mod p 05/11/2015 Pós-graduação em Ciência da Computação 2012 17 Exemplo Seja S = (1 1 0 1 1 1 0 1 1 0) Lmin = 1 , Lmax = 3 C = { (1,0), (2,0), (2,1), (3,0), (3,1), (3,2) } 1 0 2 3 Etapa 2.1 : Ciclos eliminados i = 2 : (1,0), (2,0),(3,2) i = 6 : (1,0), (2,0),(3,0) i = 9 : (1,0), (2,1), (3,0) 05/11/2015 4 5 6 7 8 9 No final da Etapa 2.1: C = {(3,1)} Pós-graduação em Ciência da Computação 2012 18 Exemplo Sejam Lmin = 1, Lmax = 5 • Final da Etapa 2.1 C = {(2,0), (2,1), (3,2), (4,3) } • Etapa 2.2: Ciclo (2,0) : ciclos eliminados (2n,i) tal que n > 0 i ≡ 0 mod 2 Nada é eliminado Ciclo (2,1) : ciclos eliminados (2n,i) tal que n > 0, i ≡ 1 mod 2 É eliminado o ciclo (4,3) 1 0 05/11/2015 2 3 4 5 Pós-graduação em Ciência da Computação 2012 Ciclo supérfluo 6 7 8 9 19 Considerações de Performance • Algoritmo Sequencial é factível quando o conjunto das sequências representando as regras cabem na memória principal. • Um outro algoritmo mais eficiente: Algoritmo Interleaved Redução do tempo da fase do cálculo do suporte dos itemset Fase 1: Itemsets frequentes cíclicos são encontrados Fase 2: Regras de Associação cíclicas são encontradas 05/11/2015 Pós-graduação em Ciência da Computação 2012 20 Propriedade Importante – FASE 2 Um ciclo da regra X Y é um múltiplo de um ciclo do itemset X U Y Permite executar a geração das regras cíclicas a partir da detecção dos itemsets cíclicos 05/11/2015 Pós-graduação em Ciência da Computação 2012 21 Exemplo 1 {a,b} {a,c,b} {c,b,a,d} {c,a} {b,d} Suporte = 3/5 2 {a,c,b} {d,c} {b,c,d} {c,b} {d,e} Suporte = 1/5 3 Suporte mínimo = 40% Confiança minima = 50 % 4 {a,b} {a,c} {c,b,d} {d,b} {a,d,b} Suporte = 2/5 X {a,c,e} {a,c} {a,e,c,d} {a,f,b} {b,d} Suporte = 1/5 X Regra : a b 05/11/2015 Pós-graduação em Ciência da Computação 2012 22 Propriedades Importantes – FASE 1 – “Pulo” de ciclos : • Reduz o número de itemsets candidatos no cálculo do suporte em certos instantes. – “Poda” de ciclos: • Reduz o escopo dos ciclos candidatos para um determinado itemset baseado nos ciclos de seus subitemsets – Eliminação de ciclos: • Reduz o escopo dos ciclos candidatos para um determinado itemset baseado no fato de X não ser frequente em algum instante t 05/11/2015 Pós-graduação em Ciência da Computação 2012 23 Propriedades Importantes – Fase 1 1. “Pulo” de ciclos : técnica que evita o cálculo do suporte de um itemset candidato X nos instantes que não são parte do ciclo do itemset X Se o instante t não é parte de um ciclo do itemset X então X pode ser podado do conjunto de candidatos durante a fase da poda de Apriori executado no instante t. 2. Poda de ciclos : Se um itemset X tem um ciclo (p,m) então todos os seus subitemsets tem o ciclo (p,m). Os ciclos de um itemset X são múltiplos de ciclos de seus subitemsets 05/11/2015 Pós-graduação em Ciência da Computação 2012 24 Exemplo 1. Se (2,1) é o único ciclo de {A} Se (2,1) é o único ciclo de {B} Então os ciclos de {A,B} são (2,1) e seus múltiplos 2. Se (2,1) é o único ciclo de {A} e (2,0) é o único ciclo de {B} então {A,B} não tem ciclo nenhum (propriedade da poda de ciclos) Logo, não há necessidade de calcular o suporte de {A,B} em nenhum instante. (propriedade do pulo de ciclos) 05/11/2015 Pós-graduação em Ciência da Computação 2012 25 Propriedades Importantes – Fase 1 3. Eliminação de Ciclos: Se num instante i , sup(X) < minsup então X não pode ter nenhum ciclo (p,m), onde m = i mod p , Lmin ≤ p ≤ Lmax, 0 ≤ m < p Exemplo: Suponha que Lmax = 3 e suponha que o itemset X não é frequente nos instances 0, 1, 2 e 3. Então X não tem nenhum ciclo. Assim, não há necessidade de calcular o suporte de X para t > 3. 05/11/2015 Pós-graduação em Ciência da Computação 2012 26 Algoritmo Interleaved (Fase 1) K = 1 : todos os itemsets de tamanho 1 são gerados e seus ciclos detectados. K>1: 1. Gera candidatos (Apriori) juntamente com a lista de seus possíveis ciclos candidatos .(“poda ciclos”) Ck = { (X,Ciclos(X)) | X k-itemset , Ciclos(X) = ciclos candidatos de X 2. Para cada instante t = 0, …, n-1 2.1 Poda candidatos : se o instante t não faz parte de Ciclo(X) então candidato X é podado.(“pula ciclos”) 2.2 Poda candidatos (Apriori) 2.3 Cálculo do Suporte (Apriori) 2.4 Elimina ciclos: se sup(X) < minsup, elimina ciclos de Ciclos(X) 05/11/2015 Pós-graduação em Ciência da Computação 2012 27 Resultados Experimentais 05/11/2015 Pós-graduação em Ciência da Computação 2012 28 Referência Banu Ozden Sridhar Ramaswamy Avi Silberschatz Cyclic Association Rules. Proceeding ICDE '98 Proceedings of the Fourteenth International Conference on Data Engineering http://www.cse.ust.hk/~leichen/courses/comp630p/collection/r eference-2-10.pdf