Universidade Federal de Minas Gerais

Propaganda
Universidade Federal de Minas Gerais
Departamento de Ciência da Computação
Um estudo sobre a mineração de padrões seqüenciais
Danielle Santos da Silva e Patrícia Martins
1.Introdução
Com a grande quantidade de dados armazenados em
bancos de dados e data warehouses, torna-se cada
vez mais importante desenvolver ferramentas
potentes para análise e extração de conhecimentos
de interesse sobre os dados [1]. Data mining é um
processo de inferência de conhecimento de grande
quantidade de dados e um dos seus principais
problemas é a descoberta de padrões que ocorrem
freqüentemente em dados seqüenciais, e, para isso,
utiliza a técnica de mineração de padrões
seqüenciais [8], que foi introduzida em [7].
A tarefa da mineração de padrões seqüenciais é
encontrar subseqüências freqüentes em um banco de
dados de seqüências. Esta é uma atividade
desafiadora, já que a busca pode exigir o exame de
um número combinatorialmente explosivo de
padrões de subseqüências possíveis [4]. Essa técnica
possui diversas aplicações, incluindo a análise do
comportamento de clientes, padrões de acesso a
Web, análise do processo de experimentos
científicos, previsão de desastres naturais,
tratamento de doenças, teste de medicamentos,
análise de DNA, etc [6].
A maioria dos métodos desenvolvidos para a
mineração de padrões seqüenciais visa evitar a
geração de todas as combinações possíveis de
seqüências. Muitos estudos contribuíram para a
mineração eficiente de padrões seqüenciais ou
outros padrões freqüentes em dados relacionados
com o tempo [4] e levaram ao desenvolvimento de
diversos algoritmos, que podem ser classificados em
duas categorias [5]: (1) Abordagem de geração e
teste de candidatos, como o GSP e (2) Métodos de
crescimento de padrões, que tem como um de seus
representantes o FP-Growth A primeira categoria é
baseada diretamente na propriedade Apriori: se um
padrão com k itens não é freqüente, nenhum de seus
super-padrões com (k+1) ou mais itens pode ser
freqüente. São gerados candidatos iterarivamente e
suas freqüências, checadas no banco de dados. A
outra categoria de métodos foi proposta
recentemente e também utiliza a propriedade
Apriori, entretanto ao invés de gerar conjuntos de
candidatos, particiona recursivamente o banco de
dados em sub-bancos de acordo com os padrões
freqüentes encontrados e busca por padrões
freqüentes locais.
Nesse estudo, veremos as implicações do uso de
ambas as abordagens, com o objetivo de analisar as
suas características e aplicações em diferentes
contextos. Na seção 2, é fornecida uma definição
formal do problema de mineração de padrões
seqüenciais. Na seção 3, é apresentado um estudo
comparativo dos principais algoritmos pertencentes
a cada classe. As conclusões são mostradas na seção
4.
2.Definição do Problema
Seja X  i1 , i2 ,, im  um conjunto de literais
(itens). Um itemset é um conjunto não-vazio de
itens. Uma seqüência é uma lista ordenada de
itemsets. Denota-se uma seqüência s por
s1 s2 sn , onde s j é um itemset. Diz também
que s j é um elemento da seqüência. Denota-se um
elemento de uma seqüência por
x1 , x2 ,, xm  ,
onde x j é um item. Um item pode ocorrer apenas
uma vez em um elemento de uma seqüência,
contudo, podem ocorrer múltiplas vezes em
elementos diferentes. Um itemset pode ser
considerado como uma seqüência com um único
elemento. Assume-se, então, que itens em um
elemento de uma seqüência estão em ordem
lexicográfica [3].
O número de instâncias de itens em uma seqüência
é denominado tamanho da seqüência. Uma
seqüência de tamanho l é chamada de l -seqüência
[4].
Então
uma
seqüência
a1a2 an
subseqüência de outra seqüência
é
b1b2 bm
uma
se
tal
que
i1  i2    in
a1  bi1 , a 2  bi2 ,, a n  bin . Por exemplo, a
existir
inteiros
3 4,5 8 é uma subseqüência de
7 3,8 9 4,5,6 8 , já que 3  3,8 ,
4,5  4,5,6 e 8  8 . Contudo, a seqüência
3 5 não é uma subseqüência de 3,5 e
seqüência
vice-versa. Assim, a seqüência
b1b2 bm
é
chamada super- seqüência de a1a2 an .
seqüências cujo suporte é maior o suporte mínimo
especificado pelo usuário. Cada uma dessas
seqüências representa um padrão seqüencial
também chamado de seqüência freqüente.
Dada uma seqüência freqüente s  s1  sn , é útil
saber a “relação de suporte” entre os elementos da
seqüência, ou seja, qual fração das seqüências de
dados que suportam s1  s n suporta a seqüência
“s” inteira.
3. Métodos para a Mineração de Padrões
Seqüenciais
3.1 Geração e Teste de Candidatos
Um banco de dados de seqüências S é um conjunto
de tuplas
s _ id , s  , onde s _ id é um
identificador de seqüência e “s” é uma seqüência
[4]. Uma tupla s _ id , s  contém uma seqüência
“α” se “α” é uma subseqüência de “s”. Então, é
dado um banco de dados de seqüências D chamadas
seqüências de dados. Cada seqüência de dados é
uma lista de transações, ordenadas pelo aumento do
tempo de transação. Uma transação possui os
seguintes campos: identificação de seqüência,
identificação de transação, tempo de transação e os
itens presentes nessa transação. Espera-se que os
itens em uma transação sejam folhas em T, porém
isso não é necessariamente requerido.
Em [3], por questões de simplicidade, assume-se
que nenhuma seqüência de dados possui mais de
que uma transação com o mesmo tempo de
transação e utiliza o tempo de transação como um
identificador de transação. Também, não são
consideradas quantidades de itens em uma
transação.
Assim, o suporte para uma seqüência é definido
como uma fração do total de seqüências de dados
que “contêm” tal seqüência. Portanto, dado um
inteiro positivo ξ como suporte limite, uma
seqüência “α” é chamada de padrão seqüencial
freqüente, no bancos de dados de seqüência S, se a
seqüência é contida por pelo menos ξ tuplas no
banco.
Portanto, para contextualizar o problema pode-se
dizer que, dado um banco de dados de seqüências
de dados e uma taxonomia T, o problema de
minerar padrões seqüenciais é achar todas as
Algoritmos Apriori possuem estrutura baseada na
execução de múltiplos passos sobre os dados. Em
cada passo, começa-se com um conjunto semente de
um número grande de seqüências, chamadas de
seqüências candidatas. O suporte para essas
seqüências candidatas é achado durante a passada
sobre os dados. Ao final do passo, são determinadas
as maiores seqüências candidatas. Tais seqüências
compõem a semente para o próximo passo [3].
Como exemplos podemos citar os algoritmos GSP e
SPADE. O algoritmo GSP (Generalized Sequential
Patterns) escala linearmente com o número de
seqüências de dados e possui propriedades
escaláveis respeitando o número de transações por
seqüência de dados e o número de itens por
transação [3].
No caso do SPADE são utilizadas propriedades
combinatoriais para decompor o problema original
em subproblemas menores, que podem ser
independentemente resolvidos na memória principal
utilizando técnicas eficientes de procura e simples
operações de junção. Essa decomposição utiliza
classes de equivalências em seqüências freqüentes.
Dessa maneira o SPADE geralmente realiza apenas
três varreduras no banco de dados – uma para 1seqüências freqüentes, outras para 2-seqüências
freqüentes e mais uma para a geração de todas as
outras seqüências [9].
Para a melhor compreensão do método, o algoritmo
GSP será descrito. No primeiro passo do algoritmo,
todos os itens unitários (1-seqüência) são
encontrados. Dos itens mais freqüentes, um
conjunto de 2-seqüências candidatas é formado.
Outro passo é realizado para recolher o suporte
dessas seqüências. As 2-seqüências freqüentes são
utilizadas para gerar as 3-seqüências candidatas e o
processo é repetido até que nenhuma seqüência
freqüente seja encontrada. Existem dois passos
principais no algoritmo [9]:
1.
2.
Geração de candidatos: dado o conjunto de (k1)-seqüências freqüentes Fk 1 , os candidatos
para o próximo passo são gerados através da
auto-combinação de Fk 1 . Uma fase de poda
elimina qualquer seqüência em pelo menos
uma das subseqüências que não são freqüentes.
Para uma contagem mais rápida, as seqüências
candidatas são armazenadas em uma hash-tree.
Contagem de suporte: para achar todos os
candidatos contidos em uma seqüência de
entrada ε, conceitualmente todas as kseqüências de ε são geradas. Para cada uma
dessas seqüências uma procura é realizada na
hash-tree. Se um candidato na hash-tree casa
com
subseqüência,
seu
contador
é
incrementado.
A Figura 1, a seguir, apresenta um esboço do
algoritmo GSP.
Figura 1 - Algoritmo GSP [9]
3.2 Crescimento de Padrões
A abordagem de geração de candidatos atinge um
bom desempenho pela redução do número de
candidatos gerado. Entretanto, quando o limite
mínimo do suporte é baixo ou o tamanho dos
padrões gerados é grande, o algoritmo pode
continuar
tendo
custos
não-triviais,
independentemente de técnicas de implementação
detalhadas [10].
Para vencer essas dificuldades, uma nova
abordagem chamada crescimento de padrões
freqüentes foi desenvolvida. Suas características
são:
1. A geração de candidatos é substituída pela análise
de contagem de freqüência de conjuntos de dados
relevantes. Isso é possível porque o método
preserva os agrupamentos essenciais dos elementos
de dados originais para mineração.
2. Utiliza uma metodologia de divisão e conquista
para reduzir o espaço de busca. O conjunto de
dados e o conjunto de padrões a ser examinado
em cada passo é particionado.
3. Fatores como a redução substancial do tamanho
do banco de dados, devido à utilização de sua
projeção, e do espaço para manipulação de
conjuntos de candidatos em cada passo aliados à
capacidade de crescimento da memória
principal, tornaram possível colocar uma porção
substancial de dados na memória principal.
Vários
trabalhos
contribuíram
para
o
desenvolvimento da metodologia de crescimento de
padrões freqüentes. Os principais são citados
abaixo.
O FP-Growth (Frequent Pattern Growth) [10] é um
método eficiente e escalável para a mineração de
padrões freqüentes sejam eles curtos ou longos.
Utiliza uma estrutura chamada FP-Tree, baseada no
crescimento de fragmentos de padrões, que
armazena informação quantitativa sobre padrões
freqüentes de forma comprimida.
A idéia geral FreeSpan (Frequent pattern-projected
Sequential pattern mining) é usar itens freqüentes
para projetar recursivamente bancos de dados de
seqüências em um conjunto menor de bancos de
dados e crescer os fragmentos de subseqüências em
cada banco de dados projetado [11].
O PrefixSpan (Prefix-projected Sequential pattern
mining) explora a projeção de prefixos na
mineração de padrões seqüenciais. Sua idéia
principal é que, ao invés de projetar seqüências de
bancos de dados considerando-se todas as
ocorrências possíveis de subseqüências freqüentes,
a projeção seja baseada apenas em prefixos
freqüentes porque qualquer subseqüência crescente
pode sempre ser encontrada pelo crescimento de um
prefixo crescente [4].
Para ilustrar o funcionamento de um algoritmo que
utiliza abordagem de crescimento de padrões,
escolheu-se o PrefixSpan.
<(af)cbc>
<f> <(ab)(df)cb>, <cbc>
<eacb>, <eb>, <ebc>, <ec>,
<ecb>, <ef>, <efb>, <efc>,
<efcb>
<f>, <fb>, <fbc>, <fc>, <fcb>
Tabela 2: Bancos de dados projetados e padrões seqüenciais
Exemplo 1: Seja o banco de dados de seqüências S
dado pela Tabela 1 e o suporte mínimo igual a 2. O
conjunto de itens no banco de dados é {a, b, c, d, e,
f, g}. O problema da mineração de padrões
seqüenciais consiste em encontrar o conjunto
completo de padrões seqüenciais no banco de
dados.
Id_Sequencia
10
20
30
40
Seqüência
<a(abc)(ac)d(cf)>
<(ad)c(bc)(ae)>
<(cf)(ab)(df)cb>
<eg(af)cbc>
Tabela 1: Banco de dados de seqüência
Passo 1: Encontrar padrões seqüenciais de
tamanho-1. Rastreamento de S uma vez para
encontrar todos os itens freqüentes em seqüências.
O resultado é: <a> : 4, <b> : 4, <c> : 4, <d> : 3,
<e> : 3, e <f>: 4, onde <padrão>:contagem
representa o padrão e sua contagem de suporte
associada.
Passo 2: Dividir o espaço de busca. O conjunto
completo de padrões seqüenciais pode ser
particionado em seis subconjuntos, de acordo com
os prefixos: (1) aqueles que têm o prefixo <a>; ... ; e
(6) aqueles que têm o prefixo <f>.
Passo 3: Encontrar subconjuntos de padrões
seqüenciais. Os subconjuntos de padrões
seqüenciais podem ser minerados pela construção
de bancos de dados projetados e mineração de cada
um recursivamente.
A Tabela 2 apresenta o resultado final dos passos
executados sobre S.
Prefixo Banco de Dados Projetado
Padrões Seqüenciais
<a> <(abc)(ac)d(cf)>,
<a>, <aa>, <ab>, <a(bc)>,
<(_d)c(bc)(ae)>,<(_b)(df)c <a(bc)a>, <aba>, <abc>,
b>, <(_f)cbc>
<(ab)>, <(ab)c>, <(ab)d>,
<(ab)f>, <(ab)dc>, <ac>, <aca>,
<acb>, <acc>, <ad>, <adc>,
<af>
<b> <(_c)(ac)d(cf)>, <_c)(ae)>, <b>, <ba>, <bc>, <(bc)>,
<(dfcb>, <c>
<(bc)a>, <bd>, <bdc>, <bf>
<c> <(ac)d(cf)>, <(bc)(ae)>, <c>, <ca>, <cb>, <cc>
<b>, <bc>
<d> <(cf)>, <c(bc)(ae)>,
<d>, <db>, <dc>, <dcb>
<(_f)cb>
<e> <(_f)(ab)(df)cb>,
<e>, <ea>, <eab>, <eac>,
4.Conclusões
Os algoritmos que utilizam métodos Apriori
atingem bons ganhos de desempenho através da
redução do tamanho dos conjuntos de candidatos.
Contudo, trabalhos recentes demonstram que
algoritmos Apriori são inadequados em conjuntos
de dados que contêm padrões muito longos [12].
Além disso, em situações em que o número de
padrões freqüentes é abundante ou suportes
mínimos são muito baixos, tais algoritmos podem
apresentar os comportamentos a seguir:


Manipulação de um grande número de
conjuntos de candidatos
Repetição de varreduras em um banco de dados
e verificação de um grande conjunto de
candidatos pelo casamento de padrões,
especialmente para padrões longos.
Os algoritmos derivados da metodologia de
crescimento de padrões são mais eficientes e
escaláveis do que muitos outros métodos de
mineração de padrões freqüentes. Isso se deve aos
seguintes fatores: (1) adoção de estratégia de
divisão e conquista (2) integração do uso de
memória principal ao uso do disco para algoritmos
de projeção de bancos de dados; (3) bom uso da
propriedade Apriori, evitando a geração de um
grande número de candidatos [10].
Dessa forma, os algoritmos derivados da
metodologia de crescimento de padrões são
preferíveis em relação àqueles que utilizam métodos
Apriori.
5.Bibliografia
[1] Joshi, K. Analysis of Data Mining Algorithms,
1997. Disponível em:
http://userpages.umbc.edu/~kjoshi1/datamine/proj_rpt.htm#Introduction. Acesso em: julho
de 2003.
[2] Zaki, M. Sequence Mining in Categorical
Domains: Incorporating Constraints. In Proceedings
of the ninth international conference on Information
and knowledge management, 2000. Disponível em:
http://delivery.acm.org/10.1145/360000/354849/p42
2zaki.pdf?key1=354849&key2=1459001601&coll=p
ortal&dl=ACM&CFID=11111111&CFTOKEN=22
22222>. Acesso em: agosto de 2003.
[3] Srikant, R.; Agrawal, R. Mining Sequential
Patterns Generalizations and Performance
Improvements. In Proceedings of the Fifth Int'l
Conference on Extending Database Technology
(EDBT). Avignon, France, 1996. Disponível em:
http://www.almaden.ibm.com/software/quest/Public
ations/papers/edbt96.pdf . Acesso em: agosto de
2003.
[4] Pei, J.; Han, J.; Mortazavi-Asl, B.; Pinto, H.
PrefixSpan: Mining Sequential Patterns Efficiently
by Prefix-Projected Pattern Growth. In Proceedings
of the 2001 International Conference on Data
Engineering (ICDE'01), Heidelberg, Germany,
2001. Disponível em:
http://citeseer.nj.nec.com/cache/papers/cs/27046/htt
p:zSzzSzwwwfaculty.cs.uiuc.eduzSz~hanjzSzpdfzSzspan01.pdf/p
ei01prefixspan.pdf. Acesso em: agosto de 2003.
[5] J. Pei, J. Han, H. Lu, S. Nishio, S. Tang, and D.
Yang. H-Mine: Hyper-structure Mining of Frequent
Patterns in Large Databases. In Proceedings of the
2001 IEEE International Conference on Data
Mining (ICDM'01), San Jose, California, 2001.
Disponível em:
http://citeseer.nj.nec.com/cache/papers/cs/23715/htt
p:zSzzSzwww.cs.sfu.cazSz~peijianzSzpersonalzSzp
ublicationszSzhmine.pdf/h-mine-hyperstructure.pdf. Acesso em: agosto de 2003.
[6] Pinto, H.; Han, J.; Pei, J.; Wang, K. Multidimensional Sequential Pattern Mining,
Proceedings of the 27th International Conference
on Very Large Data Base (VLDB'01), Roma, Italy,
2001. Disponível em:
http://citeseer.nj.nec.com/cache/papers/cs/22412/ftp
:zSzzSzfas.sfu.cazSzpubzSzcszSztheseszSz2001zSz
HelenPintoMSc.pdf/pinto01multidimensional.pdf.
Acesso em: agosto de 2003.
[7] Agrawal, R.; Srikant, R. Mining Sequential
Patterns. In ICDE´95, pp. 3-14, Taipei, Taiwan,
1995. Disponível em:
http://citeseer.nj.nec.com/cache/papers/cs/2193/http:
zSzzSzwww.almaden.ibm.comzSzcszSzquestzSzpa
perszSzicde95.pdf/agrawal95mining.pdf. Acesso
em: agosto de 2003.
[8] Wojciechowski, M. Mining sequential data –
Abstract. Disponível em: http://www.sciences.univnantes.fr/info/perso/permanents/martinez/Researche
s/EDBT99/StudentWorks/MWojciechowski.html.
Acesso em: agosto de 2003.
[9] Zaki, M. SPADE: An Efficient Algorithm for
Mining Frequent Sequences, in Machine Learning
Journal, special issue on Unsupervised Learning
(Doug Fisher, ed.), pp 31-60, Vol. 42 Nos. 1/2,
2001. Disponível em:
http://www.cs.rpi.edu/~zaki/PS/MLJ00.ps.gz.
Acesso em: agosto de 2003.
[10] Han, J.; Pei, J.; Yin, Y. Mining Frequent
Patterns without candidate generation. Apresentação
em Data Mining and Knowledge Discovery: An
International Journal, Kluwer Academic
Publishers, 1999. Disponível em:
http://citeseer.nj.nec.com/cache/papers/cs/14568/ftp
:zSzzSzftp.fas.sfu.cazSzpubzSzcszSzhanzSzpdfzSzs
igmod00.pdf/han99mining.pdf. Acesso em: agosto
de 2003.
[11] Han, J.; Pei, J.; Mortazavi-Asl, B.; Chen, Q.;
Dayal, U.; Hsu, M. FreeSpan: Frequent patternprojected sequential pattern mining. In Proceedings
of the Sixth ACM SIGKDD International
Conference on Knowledge Discovery and Data
Mining (KDD'2000), Boston, MA, 2000. Disponível
em:
http://www.cse.buffalo.edu/faculty/jianpei/publicati
ons/freespan.pdf. Acesso em: agosto de 2003.
[12] Bayardo, R. Efficiently Mining Long Patterns
from databases. Proceedings of the ACM SIGMOD,
Seattle, WA, 1998. Disponível em:
http://www.almaden.ibm.com/software/quest/Public
ations/papers/sigmod98_max.pdf. Acesso em:
agosto de 2003.
[13] Pei, J. Pattern-growth methods for frequent
pattern mining. School of Computing Science,
Simon Fraser University, Canada, 2002. Disponível
em:
http://www.cse.buffalo.edu/faculty/jianpei/jianpei_t
hesis.pdf. Acesso em: agosto de 2003.
Download